Mercurial > emacs
diff lisp/Makefile.in @ 29657:cdef08609770
*** empty log message ***
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Wed, 14 Jun 2000 20:26:14 +0000 |
parents | |
children | 97ed659aea4e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/Makefile.in Wed Jun 14 20:26:14 2000 +0000 @@ -0,0 +1,183 @@ +# +# Maintenance productions for the Lisp directory +# + +lisp=@srcdir@ +VPATH=@srcdir@ + +# You can specify a different executable on the make command line, +# e.g. "make EMACS=../src/emacs ...". + +EMACS = ../src/emacs + +# Command line flags for Emacs. This must include --multibyte, +# otherwise some files will not compile. + +EMACSOPT = -batch --no-site-file --multibyte + +SOURCES = *.el COPYING Makefile +lisptagsfiles1 = $(lisp)/[a-zA-Z]*.el +lisptagsfiles2 = $(lisp)/[a-zA-Z]*/[a-zA-Z]*.el +ETAGS = ../lib-src/etags + +# Files which should not be compiled. +# - emacs-lisp/cl-specs.el: only contains `def-edebug-spec's so there's +# no point compiling it, although it doesn't hurt. + +DONTCOMPILE = \ + $(lisp)/bindings.el \ + $(lisp)/cus-load.el \ + $(lisp)/cus-start.el \ + $(lisp)/emacs-lisp/cl-specs.el \ + $(lisp)/finder-inf.el \ + $(lisp)/forms-d2.el \ + $(lisp)/forms-pass.el \ + $(lisp)/generic-x.el \ + $(lisp)/international/latin-1.el \ + $(lisp)/international/latin-2.el \ + $(lisp)/international/latin-3.el \ + $(lisp)/international/latin-4.el \ + $(lisp)/international/latin-5.el \ + $(lisp)/international/latin-8.el \ + $(lisp)/international/latin-9.el \ + $(lisp)/international/mule-conf.el \ + $(lisp)/loaddefs.el \ + $(lisp)/loadup.el \ + $(lisp)/mail/blessmail.el \ + $(lisp)/mail/sc.el \ + $(lisp)/patcomp.el \ + $(lisp)/paths.el \ + $(lisp)/play/bruce.el \ + $(lisp)/subdirs.el \ + $(lisp)/term/internal.el \ + $(lisp)/version.el + +# Files to compile before others during a bootstrap. This is done +# to speed up the bootstrap process. + +COMPILE_FIRST = \ + $(lisp)/emacs-lisp/byte-opt.el \ + $(lisp)/emacs-lisp/bytecomp.el \ + $(lisp)/subr.el + +# The actual Emacs command run in the targets below. + +emacs = $(EMACS) $(EMACSOPT) + +# Common command to find subdirectories + +setwins=subdirs=`find $$wd -type d -print`; \ + for file in $$subdirs; do \ + case $$file in */Old | */RCS | */CVS | */CVS/* | */=* ) ;; \ + *) wins="$$wins $$file" ;; \ + esac; \ + done + +doit: + +cus-load.el: + touch $@ +custom-deps: cus-load.el doit + wd=$(lisp); $(setwins); \ + echo Directories: $$wins; \ + $(emacs) -l cus-dep -f custom-make-dependencies $$wins + +finder-inf.el: + echo "(provide 'finder-inf)" >> $@ +finder-data: finder-inf.el doit + wd=$(lisp); $(setwins); \ + echo Directories: $$wins; \ + $(emacs) -l finder -f finder-compile-keywords-make-dist $$wins + +loaddefs.el: + echo ";;; loaddefs.el --- automatically extracted autoloads" >> $@ + echo ";;" >> $@; echo ";;; Code:" >> $@ + echo "" >> $@ + echo ";;; Local Variables:" >> $@ + echo ";;; version-control: never" >> $@ + echo ";;; no-byte-compile: t" >> $@ + echo ";;; no-update-autoloads: t" >> $@ + echo ";;; End:" >> $@ + echo ";;; loaddefs.el ends here" >> $@ +autoloads: loaddefs.el doit + wd=$(lisp); $(setwins); \ + echo Directories: $$wins; \ + $(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins + +subdirs.el: + $(MAKE) $(MFLAGS) update-subdirs +update-subdirs: doit + wd=$(lisp); $(setwins); \ + for file in $$wins; do \ + $(srcdir)/update-subdirs $$file; \ + done; + +updates: update-subdirs autoloads finder-data custom-deps + +TAGS: $(lisptagsfiles1) $(lisptagsfiles2) + ${ETAGS} $(lisptagsfiles1) $(lisptagsfiles2) + +TAGS-LISP: $(lispsource)$(lisptagsfiles1) $(lispsource)$(lisptagsfiles2) + ${ETAGS} -o TAGS-LISP \ + $(lispsource)$(lisptagsfiles1) $(lispsource)$(lisptagsfiles2) + +.el.elc: subdirs.el + -EMACSLOADPATH=$(lisp) $(emacs) -f batch-byte-compile $< + +$(DONTCOMPILE:.el=.elc): + -rm -f $@ + +# Compile all Lisp files, except those from DONTCOMPILE. This +# compiles files unconditionally. All .elc files are made writable +# before compilation in case we checked out read-only (CVS option -r). +# Files MUST be compiled one by one. If we compile several files in a +# row we can't make sure that the compilation environment is clean. +# We also set the load-path of the Emacs used for compilation to the +# current directory and its subdirectories, to make sure require's and +# load's in the files being compiled find the right files. + +compile-files: subdirs.el doit + find $(lisp) -name "*.elc" -print | xargs chmod +w; \ + wd=$(lisp); $(setwins); \ + elpat=`echo $$wins | tr ' ' '\012\012' | \ + sed -e 's|\(.\)$$|\1/|' -e 's|^\./||' -e 's|$$|*.el|'`; \ + els=`echo $$elpat $(DONTCOMPILE) $(COMPILE_FIRST) | \ + tr ' ' '\012\012' | sort | uniq -u`; \ + for el in $(COMPILE_FIRST) $$els; do \ + echo Compiling $$el; \ + EMACSLOADPATH=$(lisp) $(emacs) -f batch-byte-compile $$el; \ + done + +# Backup compiled Lisp files in elc.tar.gz. If that file already +# exists, make a backup of it. + +backup-compiled-files: + -mv $(lisp)/elc.tar.gz $(lisp)/elc.tar.gz~ + -tar czf $(lisp)/elc.tar.gz $(lisp)/*.elc $(lisp)/*/*.elc + +# Compile Lisp files, but save old compiled files first. + +compile: backup-compiled-files compile-files + +# Recompile all Lisp files which are newer than their .elc files. +# Note that this doesn't create .elc files. It only recompiles if an +# .elc is present. + +recompile: doit + $(emacs) -f batch-byte-recompile-directory $(lisp) + +# Prepare a bootstrap in the lisp subdirectory. Build loaddefs.el, +# because it's not sure it's up-to-date, and if it's not, that might +# lead to errors during the bootstrap because something fails to +# autoload as expected. Remove compiled Lisp files so that +# bootstrap-emacs will be built from sources only. + +bootstrap-clean: + if test -f $(EMACS); then $(MAKE) $(MFLAGS) autoloads; fi + -rm -f $(lisp)/*.elc $(lisp)/*/*.elc + +# Generate/update files for the bootstrap process. + +bootstrap: autoloads compile-files custom-deps + +# Makefile ends here.