# DIST: This is the distribution Makefile for MKCL. configure can # DIST: make most of the changes to this file you might want, so try # DIST: that first. # # # Copyright (c) 2010, Jean-Claude Beaudoin. # Copyright by a number of previous anonymous authors # presumed to be the same as for the rest of MKCL. # # MKCL is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 3 of the License, or (at your option) any later version. # # See file './Copyright' for full details. # # # make all to compile and build Emacs. # make install to install it. # make TAGS to update tags tables. # # make clean or make mostlyclean # Delete all files from the current directory that are normally # created by building the program. Don't delete the files that # record the configuration. Also preserve files that could be made # by building, but normally aren't because the distribution comes # with them. # # Delete `.dvi' files here if they are not part of the distribution. # # make distclean # Delete all files from the current directory that are created by # configuring or building the program. If you have unpacked the # source and built the program without creating any other files, # `make distclean' should leave only the files that were in the # distribution. # # make realclean # Delete everything from the current directory that can be # reconstructed with this Makefile. This typically includes # everything deleted by distclean. SHELL = /bin/sh MACHINE = @MACHINE_VERSION@ # ========================= Last release ================================ VERSION=@PACKAGE_VERSION@ WWW= ADDRESS= # ==================== Things `configure' Might Edit ==================== # Where to find the source code. # This is set by the configure script's `--srcdir' option. srcdir=@srcdir@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ infodir=@infodir@ mandir=@mandir@ libdir=@libdir@ datarootdir=@datarootdir@ # What to release TAR_CONTENTS=Makefile.in README.1st LGPL ANNOUNCEMENT Copyright doc \ configure src/c src/cmp src/clos src/CHANGELOG src/lsp src/doc \ src/mkcl src/gmp src/config* src/install.sh src/Makefile.in \ src/util contrib/ src/clx src/gc src/*.in src/*.m4 src/gabriel \ src/tests/Makefile.in src/ansi-tests/Makefile.in msvc examples # ==================== Utility Programs for the Build ==================== # Allow the user to specify the install program. @SET_MAKE@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ # ============================= Build ============================== all: cd src; $(MAKE) depend all .PHONY: all Makefile: Makefile.in src/config.status (cd src; ./config.status) depend: cd src; $(MAKE) depend # ==================== Installation ==================== INSTALL_TARGET = @INSTALL_TARGET@ install: src/Makefile cd src; $(MAKE) $(INSTALL_TARGET) uninstall: cd src; $(MAKE) uninstall # ==================== Cleaning up and miscellanea ==================== # `clean' # Delete all files from the current directory that are normally # created by building the program. Don't delete the files that # record the configuration. Also preserve files that could be made # by building, but normally aren't because the distribution comes # with them. # clean: cd src; $(MAKE) clean # `distclean' # Delete all files from the current directory that are created by # configuring or building the program. If you have unpacked the # source and built the program without creating any other files, # `make distclean' should leave only the files that were in the # distribution. distclean: clean cd src; $(MAKE) distclean rm -f Makefile # `realclean' # Delete everything from the current directory that can be # reconstructed with 'configure' and this Makefile.in. # One exception, however: `make realclean' should not delete # `configure' even if `configure' can be remade using a rule in the # Makefile. More generally, `make realclean' should not delete # anything that needs to exist in order to run `configure' and then # begin to build the program. realclean: distclean rm -f *~ cd src; $(MAKE) realclean # ==================== Various means of distribution ==================== TAR_DIR=mkcl-$(VERSION) doc: src/doc/index.html -mkdir doc (cd src/doc; make html); cp src/doc/*.html doc src/doc/index.html: cd src/doc; $(MAKE) source-dist: $(TAR_DIR).tgz rpmdir=$(shell rpm --showrc | grep '^-[0-9]*:.*[^{]_topdir' | sed 's,^.*topdir[ ]*\(.*\)[ ]*,\1,') rpmbuild=$(shell if [ -z `which rpmbuild` ]; then echo "rpm"; else echo "rpmbuild"; fi) # OBSOLETE!!! # rpm: doc # -rm -rf $(TAR_DIR) # mkdir $(TAR_DIR) $(TAR_DIR)/src \ # $(TAR_DIR)/src/tests $(TAR_DIR)/src/ansi-tests && \ # for i in $(TAR_CONTENTS); do cp -rf $$i $(TAR_DIR)/$$i; done && \ # tar -cz --exclude '*~' --exclude '#*' --exclude 'CVS' -f $(rpmdir)/SOURCES/$(TAR_DIR).tgz $(TAR_DIR) # if [ -f /etc/SuSE-release ]; then HOST=SUSE; else HOST=REDHAT; fi; \ # cat src/util/mkcl.spec |\ # sed 's,MKCL_VERSION,$(VERSION),;s,^#% '$${HOST}' ,,g;'|\ # grep -v '^#% ' > $(rpmdir)/SPECS/mkcl.spec; # rpm -ba $(rpmdir)/SPECS/mkcl.spec $(TAR_DIR): git clone .git $(TAR_DIR) $(TAR_DIR).tgz: $(TAR_DIR) cd $(TAR_DIR) && git pull && git reset --hard tar -cz --exclude .git -f $(TAR_DIR).tgz $(TAR_DIR) binary-dist: all su -c "rm -rf tmp" mkdir tmp for i in tmp$(bindir) tmp$(infodir) tmp$(mandir) tmp$(libdir); do \ (echo $$i; IFS="/"; \for k in $$i; do echo $$k; (test -d $$k || mkdir $$k); chmod 755 $$k; cd $$k; done); \ done prefix=`pwd`/tmp; cd src; $(MAKE) install prefix=$(prefix) su -c "chown -R root.root tmp && cd tmp; tar czf ../mkcl-$(VERSION)-$(MACHINE).tgz * && cd .. && rm -rf tmp" # This creates a ZIP file with a flattened directory structure windows-dist: all cd src; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \ $(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR); \ zip -r $(TAR_DIR).zip $(TAR_DIR) windows-nsi: all cd src; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \ $(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR) `pwd`/src/util/mkcl_nsi.sh `pwd`/src/util/mkcl.nsi src/$(TAR_DIR) makensis.exe src/$(TAR_DIR)/mkcl.nsi mv src/$(TAR_DIR)/Setup.exe mkcl-$(VERSION).exe