1997-04-11 11:56:09 +00:00
|
|
|
#
|
|
|
|
# Maintenance productions for the Lisp directory
|
|
|
|
#
|
1999-10-07 23:29:39 +00:00
|
|
|
|
|
|
|
# You can specify a different executable on the make command line,
|
|
|
|
# e.g. "make EMACS=../src/emacs ...".
|
|
|
|
|
|
|
|
EMACS = emacs
|
|
|
|
|
|
|
|
# Command line flags for Emacs. This must include --multibyte,
|
|
|
|
# otherwise some files will not compile.
|
|
|
|
|
|
|
|
EMACSOPT = --no-init-file --no-site-file --multibyte -batch
|
|
|
|
|
1997-04-11 11:56:09 +00:00
|
|
|
SOURCES = *.el COPYING Makefile
|
1998-05-03 08:24:36 +00:00
|
|
|
lisptagsfiles1 = [a-zA-Z]*.el
|
|
|
|
lisptagsfiles2 = [a-zA-Z]*/[a-zA-Z]*.el
|
1997-07-25 03:10:59 +00:00
|
|
|
ETAGS = ../lib-src/etags
|
1997-04-11 11:56:09 +00:00
|
|
|
|
1999-10-07 23:29:39 +00:00
|
|
|
# Leave this in. I don't know if some utility depends on it.
|
|
|
|
|
1997-05-20 19:38:31 +00:00
|
|
|
dontcompilefiles: bindings.el blessmail.el bruce.el cus-load.el cus-start.el
|
1997-08-05 05:29:21 +00:00
|
|
|
dontcompilefiles: forms-d2.el forms-pass.el
|
1997-06-28 03:09:27 +00:00
|
|
|
dontcompilefiles: latin-1.el latin-2.el latin-3.el latin-4.el latin-5.el
|
1997-05-20 19:38:31 +00:00
|
|
|
dontcompilefiles: loaddefs.el loadup.el mule-conf.el patcomp.el
|
|
|
|
dontcompilefiles: paths.el sc.el subdirs.el term-nasty.el version.el
|
1999-07-29 21:49:04 +00:00
|
|
|
dontcompilefiles: generic-x.el latin-8.el latin-9.el
|
1997-05-20 19:38:31 +00:00
|
|
|
|
1999-10-07 23:29:39 +00:00
|
|
|
# Files which should not be compiled. All file names must be relative
|
|
|
|
# to the `lisp' directory.
|
|
|
|
|
|
|
|
DONTCOMPILE = bindings.el mail/blessmail.el play/bruce.el cus-load.el \
|
|
|
|
cus-start.el forms-d2.el forms-pass.el \
|
|
|
|
international/latin-1.el international/latin-2.el \
|
|
|
|
international/latin-3.el international/latin-4.el \
|
|
|
|
international/latin-5.el \
|
|
|
|
loaddefs.el loadup.el international/mule-conf.el patcomp.el \
|
|
|
|
paths.el mail/sc.el subdirs.el term-nasty.el version.el \
|
|
|
|
generic-x.el international/latin-8.el international/latin-9.el
|
|
|
|
|
|
|
|
# All Lisp source files in the current directory.
|
|
|
|
|
|
|
|
EL = $(lisptagsfiles1) $(lisptagsfiles2)
|
|
|
|
|
|
|
|
# The actual Emacs command run in the targets below.
|
|
|
|
|
|
|
|
emacs = $(EMACS) $(EMACSOPT)
|
|
|
|
|
|
|
|
|
1997-04-11 13:14:52 +00:00
|
|
|
doit:
|
|
|
|
|
1997-05-12 00:06:03 +00:00
|
|
|
custom-deps: doit
|
1997-05-12 00:51:53 +00:00
|
|
|
subdirs=`find . -type d -print`; \
|
|
|
|
for file in $$subdirs; do \
|
1999-08-21 17:46:37 +00:00
|
|
|
case $$file in */Old | */RCS | */CVS | */=* ) ;; \
|
1997-05-12 00:51:53 +00:00
|
|
|
*) wins="$$wins $$file" ;; \
|
|
|
|
esac; \
|
|
|
|
done; \
|
1998-04-24 21:17:17 +00:00
|
|
|
echo Directories: $$wins; \
|
1999-10-07 23:29:39 +00:00
|
|
|
$(emacs) -l cus-dep -f custom-make-dependencies $$wins
|
1997-04-11 19:40:29 +00:00
|
|
|
|
1997-05-12 00:06:03 +00:00
|
|
|
finder-data: doit
|
1997-05-12 00:51:53 +00:00
|
|
|
subdirs=`find . -type d -print`; \
|
|
|
|
for file in $$subdirs; do \
|
1999-08-21 17:46:37 +00:00
|
|
|
case $$file in */Old | */RCS | */CVS | */=* ) ;; \
|
1997-05-12 00:51:53 +00:00
|
|
|
*) wins="$$wins $$file" ;; \
|
|
|
|
esac; \
|
|
|
|
done; \
|
1998-04-24 21:17:17 +00:00
|
|
|
echo Directories: $$wins; \
|
1999-10-07 23:29:39 +00:00
|
|
|
$(emacs) -l finder -f finder-compile-keywords-make-dist $$wins
|
1997-04-11 19:40:29 +00:00
|
|
|
|
|
|
|
autoloads: doit
|
1997-05-12 00:51:53 +00:00
|
|
|
subdirs=`find . -type d -print`; \
|
|
|
|
for file in $$subdirs; do \
|
1999-08-21 17:46:37 +00:00
|
|
|
case $$file in */Old | */RCS | */CVS | */=* ) ;; \
|
1997-05-12 00:51:53 +00:00
|
|
|
*) wins="$$wins $$file" ;; \
|
|
|
|
esac; \
|
|
|
|
done; \
|
1998-04-24 21:17:17 +00:00
|
|
|
echo Directories: $$wins; \
|
1999-10-07 23:29:39 +00:00
|
|
|
$(emacs) -f batch-update-autoloads $$wins
|
1997-05-12 00:51:53 +00:00
|
|
|
|
1997-05-12 00:59:57 +00:00
|
|
|
update-subdirs: doit
|
|
|
|
subdirs=`find . -type d -print`; \
|
|
|
|
for file in $$subdirs; do \
|
1999-08-21 17:46:37 +00:00
|
|
|
case $$file in */Old | */RCS | */CVS | */=* ) ;; \
|
1997-05-12 00:59:57 +00:00
|
|
|
*) wins="$$wins $$file" ;; \
|
|
|
|
esac; \
|
|
|
|
done; \
|
|
|
|
for file in $$wins; do \
|
|
|
|
../update-subdirs $$file; \
|
|
|
|
done;
|
|
|
|
|
1997-05-12 00:51:53 +00:00
|
|
|
updates: doit
|
|
|
|
subdirs=`find . -type d -print`; \
|
|
|
|
for file in $$subdirs; do \
|
1999-08-21 17:46:37 +00:00
|
|
|
case $$file in */Old | */RCS | */CVS | */=* ) ;; \
|
1997-05-12 00:51:53 +00:00
|
|
|
*) wins="$$wins $$file" ;; \
|
|
|
|
esac; \
|
|
|
|
done; \
|
1997-05-12 00:59:57 +00:00
|
|
|
for file in $$wins; do \
|
|
|
|
../update-subdirs $$file; \
|
|
|
|
done; \
|
1998-04-24 21:17:17 +00:00
|
|
|
echo Directories: $$wins; \
|
1999-10-07 23:29:39 +00:00
|
|
|
$(emacs) -l cus-dep -f custom-make-dependencies $$wins; \
|
|
|
|
$(emacs) -l finder -f finder-compile-keywords-make-dist $$wins; \
|
|
|
|
$(emacs) -f batch-update-autoloads $$wins
|
1997-04-11 13:14:52 +00:00
|
|
|
|
1998-05-03 08:24:36 +00:00
|
|
|
TAGS: $(lisptagsfiles1) $(lisptagsfiles2)
|
|
|
|
${ETAGS} $(lisptagsfiles1) $(lisptagsfiles2)
|
|
|
|
|
|
|
|
TAGS-LISP: $(lispsource)$(lisptagsfiles1) $(lispsource)$(lisptagsfiles2)
|
|
|
|
${ETAGS} -o TAGS-LISP \
|
|
|
|
$(lispsource)$(lisptagsfiles1) $(lispsource)$(lisptagsfiles2)
|
1999-10-07 23:29:39 +00:00
|
|
|
|
|
|
|
# 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).
|
1999-10-08 21:54:44 +00:00
|
|
|
# Files must be compiled one by one, otherwise apparently
|
|
|
|
# eval-when-compile's in some Lisp files make problems in files being
|
|
|
|
# compiled later. 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.
|
1999-10-07 23:29:39 +00:00
|
|
|
|
|
|
|
compile: doit
|
1999-10-08 21:54:44 +00:00
|
|
|
wd=`pwd`; \
|
|
|
|
find $$wd -name "*.elc" | xargs chmod +w; \
|
|
|
|
subdirs=`find $$wd -type d -print`; \
|
|
|
|
for dir in $$subdirs; do \
|
|
|
|
case $$dir in \
|
|
|
|
*/Old | */RCS | */CVS | */=* ) ;; \
|
|
|
|
*) loadpath="$$loadpath \"$$dir\"" ;; \
|
|
|
|
esac; \
|
|
|
|
done; \
|
|
|
|
loadpath="(setq load-path '($$loadpath))"; \
|
1999-10-07 23:29:39 +00:00
|
|
|
dont_compile=`echo $(DONTCOMPILE)`; \
|
|
|
|
for el in $(EL); do \
|
|
|
|
compile_it=y; \
|
|
|
|
for dont in $$dont_compile; do \
|
|
|
|
if test $$el = $$dont; then \
|
|
|
|
compile_it=n; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
if test $$compile_it = y; then \
|
1999-10-08 21:54:44 +00:00
|
|
|
$(emacs) --eval "$$loadpath" -f batch-byte-compile $$el; \
|
1999-10-07 23:29:39 +00:00
|
|
|
else \
|
|
|
|
echo "Don't compile $$el"; \
|
|
|
|
fi; \
|
1999-10-08 21:54:44 +00:00
|
|
|
done
|
1999-10-07 23:29:39 +00:00
|
|
|
|
|
|
|
# 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 .
|
|
|
|
|
|
|
|
# Build loaddefs.el but with an Emacs executable which was not built
|
|
|
|
# in the current directory tree. The problem in this case is that
|
|
|
|
# autoload.el reads and writes loaddefs.el in its `source-directory'.
|
|
|
|
# If that's different from the current directory tree, we can't build
|
|
|
|
# loaddefs.el.
|
|
|
|
|
|
|
|
autoloads-with-other-emacs: doit
|
|
|
|
subdirs=`find . -type d -print`; \
|
|
|
|
for file in $$subdirs; do \
|
|
|
|
case $$file in */Old | */RCS | */CVS | */=* ) ;; \
|
|
|
|
*) wins="$$wins $$file" ;; \
|
|
|
|
esac; \
|
|
|
|
done; \
|
|
|
|
echo Directories: $$wins; \
|
|
|
|
$(emacs) --eval '(setq source-directory ".")' \
|
|
|
|
-f batch-update-autoloads $$wins
|
|
|
|
|
|
|
|
# Makefile ends here.
|