# DIST: This is the distribution Makefile for ECL. configure can # DIST: make most of the changes to this file you might want, so try # DIST: that first. # 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@ # ========================= Last release ================================ VERSION=@ECL_VERSION@ WWW=http://ecls.sourceforge.net/ # ==================== 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@ # 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/h src/etc src/gmp src/config* src/install.sh src/Makefile.in \ src/util contrib/ src/clx src/tk src/gc src/*.in src/*.m4 src/gabriel \ src/tests/Makefile.in src/ansi-tests/Makefile.in msvc # ==================== Utility Programs for the Build ==================== # Allow the user to specify the install program. INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ # ============================= Build ============================== all: build/Makefile cd build; $(MAKE) .PHONY: all Makefile: Makefile.in build/config.status (cd build; ./config.status) # ==================== Installation ==================== INSTALL_TARGET = @INSTALL_TARGET@ install: build/Makefile cd build; $(MAKE) $(INSTALL_TARGET) uninstall: cd build; $(MAKE) uninstall # ==================== Documentation ==================== info: (cd ${srcdir}/doc; $(MAKE) info) dvi: (cd ${srcdir}/doc; $(MAKE) dvi) # ==================== 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 build; $(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 rm -fr build/config.status rm -f Makefile # `realclean' # Delete everything from the current directory that can be # reconstructed with this Makefile. # 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 TAGS tags: (cd ${srcdir}/src; \ etags c/*.[cd] h/*.h) check test: cd build; $(MAKE) test TAR_DIR=ecl-$(VERSION) doc: build/doc/index.html -mkdir doc cp build/doc/*.html doc build/doc/index.html: cd build/doc; $(MAKE) source-dist: $(TAR_DIR).tgz $(TAR_DIR)-tests.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) 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/ecl.spec |\ sed 's,ECL_VERSION,$(VERSION),;s,^#% '$${HOST}' ,,g;'|\ grep -v '^#% ' > $(rpmdir)/SPECS/ecl.spec; rpm -ba $(rpmdir)/SPECS/ecl.spec $(TAR_DIR).tgz: 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 $(TAR_DIR).tgz $(TAR_DIR) $(TAR_DIR)-tests.tgz: -rm -rf $(TAR_DIR) mkdir $(TAR_DIR) && \ mkdir $(TAR_DIR)/src && \ cp -rf src/ansi-tests $(TAR_DIR)/src && \ tar -cz --exclude '*~' --exclude '#*' --exclude 'CVS' -f $(TAR_DIR)-tests.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 build; $(MAKE) install prefix=$(prefix) su -c "chown -R root.root tmp && cd tmp; tar czf ../ecl-$(VERSION)-$(MACHINE).tgz * && cd .. && rm -rf tmp" # This creates a ZIP file with a flattened directory structure windows-dist: all cd build; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \ $(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR); \ zip -r $(TAR_DIR).zip $(TAR_DIR) windows-nsi: all cd build; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \ $(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR) `pwd`/src/util/ecl_nsi.sh `pwd`/src/util/ecl.nsi build/$(TAR_DIR) makensis.exe build/$(TAR_DIR)/ecl.nsi mv build/$(TAR_DIR)/Setup.exe ecl-$(VERSION).exe dist: cd dist; make-dist