annotate lisp/Makefile @ 28406:451721e784a8

Stop assuming interval pointers and lisp objects can be distinguished by inspection. Beginnings of support for expensive internal consistency checks. * config.in (ENABLE_CHECKING): Undef. * lisp.h (struct interval): Replace "parent" field with a union of interval pointer and Lisp_Object; add new bitfield to use as discriminant. Change other flag fields to bitfields. (CHECK): New macro for consistency checking. If ENABLE_CHECKING is defined and the supplied test fails, print a message and abort. (eassert): New macro. Use CHECK to provide an assert-like facility. * intervals.h (NULL_INTERVAL_P): Now applies only to real interval pointers; abort if the value looks like a lisp object. (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT, SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT): Modify for new interval parent definition. * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE, UNMARK_BALANCE_INTERVALS): Update references that need an addressable lisp object in the interval structure. (die): New function. (suppress_checking): New variable. * intervals.c (interval_start_pos): Just return 0 if there's no parent object.
author Ken Raeburn <raeburn@raeburn.org>
date Wed, 29 Mar 2000 22:14:34 +0000
parents 71e534c8c5cf
children 57aeae00b4df
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17392
7cb4b3489fac Initial revision
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
diff changeset
1 #
7cb4b3489fac Initial revision
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
diff changeset
2 # Maintenance productions for the Lisp directory
7cb4b3489fac Initial revision
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
diff changeset
3 #
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
4
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
5 # You can specify a different executable on the make command line,
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
6 # e.g. "make EMACS=../src/emacs ...".
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
7
26183
00e23959ec43 (compile-files): Fixed the "tr" strings.
Gerd Moellmann <gerd@gnu.org>
parents: 26145
diff changeset
8 EMACS = ../src/emacs
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
9
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
10 # Command line flags for Emacs. This must include --multibyte,
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
11 # otherwise some files will not compile.
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
12
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
13 EMACSOPT = --no-init-file --no-site-file --multibyte -batch
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
14
17392
7cb4b3489fac Initial revision
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
diff changeset
15 SOURCES = *.el COPYING Makefile
21924
e37aa6f8f583 (TAGS-LISP): New target.
Richard M. Stallman <rms@gnu.org>
parents: 21756
diff changeset
16 lisptagsfiles1 = [a-zA-Z]*.el
e37aa6f8f583 (TAGS-LISP): New target.
Richard M. Stallman <rms@gnu.org>
parents: 21756
diff changeset
17 lisptagsfiles2 = [a-zA-Z]*/[a-zA-Z]*.el
18962
7ea81fba3548 (ETAGS): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 18692
diff changeset
18 ETAGS = ../lib-src/etags
17392
7cb4b3489fac Initial revision
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
diff changeset
19
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
20 # Files which should not be compiled. All file names must be relative
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
21 # to the `lisp' directory.
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
22 # - emacs-lisp/cl-specs.el: only contains `def-edebug-spec's so there's
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
23 # no point compiling it, although it doesn't hurt.
26145
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
24
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
25 DONTCOMPILE = bindings.el mail/blessmail.el play/bruce.el cus-load.el \
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
26 cus-start.el forms-d2.el forms-pass.el \
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
27 international/latin-1.el international/latin-2.el \
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
28 international/latin-3.el international/latin-4.el \
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
29 international/latin-5.el \
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
30 loaddefs.el loadup.el international/mule-conf.el patcomp.el \
27503
884246071553 (DONTCOMPILE): Remove term-nasty.el; doesn't seem to exist.
Gerd Moellmann <gerd@gnu.org>
parents: 26636
diff changeset
31 paths.el mail/sc.el subdirs.el version.el \
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
32 generic-x.el international/latin-8.el international/latin-9.el \
26636
36564a827d06 Makefile (DONTCOMPILE): Add term/internal.el
Eli Zaretskii <eliz@gnu.org>
parents: 26183
diff changeset
33 emacs-lisp/cl-specs.el finder-inf.el term/internal.el
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
34
28306
71e534c8c5cf (COMPILE_FIRST): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 28291
diff changeset
35 # Files to compile before others during a bootstrap. This is done
71e534c8c5cf (COMPILE_FIRST): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 28291
diff changeset
36 # to speed up the bootstrap process.
71e534c8c5cf (COMPILE_FIRST): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 28291
diff changeset
37
71e534c8c5cf (COMPILE_FIRST): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 28291
diff changeset
38 COMPILE_FIRST = emacs-lisp/bytecomp.el emacs-lisp/byte-opt.el subr.el
71e534c8c5cf (COMPILE_FIRST): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 28291
diff changeset
39
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
40 # The actual Emacs command run in the targets below.
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
41
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
42 emacs = $(EMACS) $(EMACSOPT)
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
43
25961
24f775e3facc (setwins): abstract out the command to find subdirectories
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25941
diff changeset
44 # Common command to find subdirectories
24f775e3facc (setwins): abstract out the command to find subdirectories
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25941
diff changeset
45
25964
2a98301789cd (setwins): generalized a little.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25961
diff changeset
46 setwins=subdirs=`find $$wd -type d -print`; \
25961
24f775e3facc (setwins): abstract out the command to find subdirectories
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25941
diff changeset
47 for file in $$subdirs; do \
24f775e3facc (setwins): abstract out the command to find subdirectories
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25941
diff changeset
48 case $$file in */Old | */RCS | */CVS | */CVS/* | */=* ) ;; \
24f775e3facc (setwins): abstract out the command to find subdirectories
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25941
diff changeset
49 *) wins="$$wins $$file" ;; \
24f775e3facc (setwins): abstract out the command to find subdirectories
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25941
diff changeset
50 esac; \
24f775e3facc (setwins): abstract out the command to find subdirectories
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25941
diff changeset
51 done
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
52
17394
b793e8f5a9c2 Added cus-load.el target.
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 17392
diff changeset
53 doit:
b793e8f5a9c2 Added cus-load.el target.
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 17392
diff changeset
54
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
55 cus-load.el:
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
56 touch $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
57 custom-deps: cus-load.el doit
25964
2a98301789cd (setwins): generalized a little.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25961
diff changeset
58 wd=.; $(setwins); \
21756
ed07a8592f60 (custom-deps, updates): Allow cus-dep to be compiled.
Richard M. Stallman <rms@gnu.org>
parents: 21753
diff changeset
59 echo Directories: $$wins; \
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
60 $(emacs) -l cus-dep -f custom-make-dependencies $$wins
17399
04fc73bb3416 (finder-inf.el, autoloads): New targets.
Richard M. Stallman <rms@gnu.org>
parents: 17394
diff changeset
61
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
62 finder-inf.el:
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
63 echo "(provide 'finder-inf)" >> $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
64 finder-data: finder-inf.el doit
25964
2a98301789cd (setwins): generalized a little.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25961
diff changeset
65 wd=.; $(setwins); \
21756
ed07a8592f60 (custom-deps, updates): Allow cus-dep to be compiled.
Richard M. Stallman <rms@gnu.org>
parents: 21753
diff changeset
66 echo Directories: $$wins; \
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
67 $(emacs) -l finder -f finder-compile-keywords-make-dist $$wins
17399
04fc73bb3416 (finder-inf.el, autoloads): New targets.
Richard M. Stallman <rms@gnu.org>
parents: 17394
diff changeset
68
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
69 loaddefs.el:
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
70 echo ";;; loaddefs.el --- automatically extracted autoloads" >> $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
71 echo ";;" >> $@; echo ";;; Code:" >> $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
72 echo " " >> $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
73 echo ";;; Local Variables:" >> $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
74 echo ";;; version-control: never" >> $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
75 echo ";;; no-byte-compile: t" >> $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
76 echo ";;; no-update-autoloads: t" >> $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
77 echo ";;; End:" >> $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
78 echo ";;; loaddefs.el ends here" >> $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
79 autoloads: loaddefs.el doit
25964
2a98301789cd (setwins): generalized a little.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25961
diff changeset
80 wd=.; $(setwins); \
21756
ed07a8592f60 (custom-deps, updates): Allow cus-dep to be compiled.
Richard M. Stallman <rms@gnu.org>
parents: 21753
diff changeset
81 echo Directories: $$wins; \
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
82 $(emacs) --eval '(setq generated-autoload-file "'`pwd`'/loaddefs.el")' -f batch-update-autoloads $$wins
17746
e3508d038aee (autoloads, custom-deps, finder-data):
Richard M. Stallman <rms@gnu.org>
parents: 17743
diff changeset
83
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
84 subdirs.el:
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
85 $(MAKE) $(MFLAGS) update-subdirs
17748
689e217c6c8e (update-subdirs): New target.
Richard M. Stallman <rms@gnu.org>
parents: 17746
diff changeset
86 update-subdirs: doit
25964
2a98301789cd (setwins): generalized a little.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25961
diff changeset
87 wd=.; $(setwins); \
17748
689e217c6c8e (update-subdirs): New target.
Richard M. Stallman <rms@gnu.org>
parents: 17746
diff changeset
88 for file in $$wins; do \
689e217c6c8e (update-subdirs): New target.
Richard M. Stallman <rms@gnu.org>
parents: 17746
diff changeset
89 ../update-subdirs $$file; \
689e217c6c8e (update-subdirs): New target.
Richard M. Stallman <rms@gnu.org>
parents: 17746
diff changeset
90 done;
689e217c6c8e (update-subdirs): New target.
Richard M. Stallman <rms@gnu.org>
parents: 17746
diff changeset
91
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
92 updates: update-subdirs autoloads finder-data custom-deps
17394
b793e8f5a9c2 Added cus-load.el target.
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 17392
diff changeset
93
21924
e37aa6f8f583 (TAGS-LISP): New target.
Richard M. Stallman <rms@gnu.org>
parents: 21756
diff changeset
94 TAGS: $(lisptagsfiles1) $(lisptagsfiles2)
e37aa6f8f583 (TAGS-LISP): New target.
Richard M. Stallman <rms@gnu.org>
parents: 21756
diff changeset
95 ${ETAGS} $(lisptagsfiles1) $(lisptagsfiles2)
e37aa6f8f583 (TAGS-LISP): New target.
Richard M. Stallman <rms@gnu.org>
parents: 21756
diff changeset
96
e37aa6f8f583 (TAGS-LISP): New target.
Richard M. Stallman <rms@gnu.org>
parents: 21756
diff changeset
97 TAGS-LISP: $(lispsource)$(lisptagsfiles1) $(lispsource)$(lisptagsfiles2)
e37aa6f8f583 (TAGS-LISP): New target.
Richard M. Stallman <rms@gnu.org>
parents: 21756
diff changeset
98 ${ETAGS} -o TAGS-LISP \
e37aa6f8f583 (TAGS-LISP): New target.
Richard M. Stallman <rms@gnu.org>
parents: 21756
diff changeset
99 $(lispsource)$(lisptagsfiles1) $(lispsource)$(lisptagsfiles2)
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
100
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
101 .el.elc: subdirs.el
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
102 -EMACSLOADPATH=`pwd` $(emacs) -f batch-byte-compile $<
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
103
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
104 $(DONTCOMPILE:.el=.elc):
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
105 -rm -f $@
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
106
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
107 # Compile all Lisp files, except those from DONTCOMPILE. This
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
108 # compiles files unconditionally. All .elc files are made writable
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
109 # before compilation in case we checked out read-only (CVS option -r).
28049
25ba68b7cbdb (compile-files): Compile files one by one because
Gerd Moellmann <gerd@gnu.org>
parents: 27503
diff changeset
110 # Files MUST be compiled one by one. If we compile several files in a
25ba68b7cbdb (compile-files): Compile files one by one because
Gerd Moellmann <gerd@gnu.org>
parents: 27503
diff changeset
111 # row we can't make sure that the compilation environment is clean.
25ba68b7cbdb (compile-files): Compile files one by one because
Gerd Moellmann <gerd@gnu.org>
parents: 27503
diff changeset
112 # We also set the load-path of the Emacs used for compilation to the
25ba68b7cbdb (compile-files): Compile files one by one because
Gerd Moellmann <gerd@gnu.org>
parents: 27503
diff changeset
113 # current directory and its subdirectories, to make sure require's and
25ba68b7cbdb (compile-files): Compile files one by one because
Gerd Moellmann <gerd@gnu.org>
parents: 27503
diff changeset
114 # load's in the files being compiled find the right files.
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
115
26145
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
116 compile-files: subdirs.el doit
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
117 find . -name "*.elc" -print | xargs chmod +w; \
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
118 wd=.; $(setwins); \
26183
00e23959ec43 (compile-files): Fixed the "tr" strings.
Gerd Moellmann <gerd@gnu.org>
parents: 26145
diff changeset
119 elpat=`echo $$wins | tr ' ' '\012\012' | \
26112
a2591ab1ddaf (dontcompilefiles): Obsoleted.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25972
diff changeset
120 sed -e 's|\(.\)$$|\1/|' -e 's|^\./||' -e 's|$$|*.el|'`; \
28306
71e534c8c5cf (COMPILE_FIRST): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 28291
diff changeset
121 els=`echo $$elpat $(DONTCOMPILE) $(COMPILE_FIRST) | \
71e534c8c5cf (COMPILE_FIRST): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 28291
diff changeset
122 tr ' ' '\012\012' | sort | uniq -u`; \
71e534c8c5cf (COMPILE_FIRST): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 28291
diff changeset
123 for el in $(COMPILE_FIRST) $$els; do \
28049
25ba68b7cbdb (compile-files): Compile files one by one because
Gerd Moellmann <gerd@gnu.org>
parents: 27503
diff changeset
124 echo Compiling $$el; \
25ba68b7cbdb (compile-files): Compile files one by one because
Gerd Moellmann <gerd@gnu.org>
parents: 27503
diff changeset
125 EMACSLOADPATH=`pwd` $(emacs) -f batch-byte-compile $$el ;\
25ba68b7cbdb (compile-files): Compile files one by one because
Gerd Moellmann <gerd@gnu.org>
parents: 27503
diff changeset
126 done
25941
aff7b4b37817 (bootstrap-compile): New target. Compile Lisp
Gerd Moellmann <gerd@gnu.org>
parents: 25936
diff changeset
127
26145
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
128 # Backup compiled Lisp files in elc.tar.gz. If that file already
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
129 # exists, make a backup of it.
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
130
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
131 backup-compiled-files:
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
132 -mv elc.tar.gz elc.tar.gz~
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
133 tar czf elc.tar.gz *.elc */*.elc
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
134
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
135 # Compile Lisp files, but save old compiled files first.
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
136
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
137 compile: backup-compiled-files compile-files
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
138
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
139 # Recompile all Lisp files which are newer than their .elc files.
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
140 # Note that this doesn't create .elc files. It only recompiles if an
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
141 # .elc is present.
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
142
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
143 recompile: doit
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
144 $(emacs) -f batch-byte-recompile-directory .
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
145
28291
a4faa7999de1 (bootstrap-clean): If $(emacs) exists, build
Gerd Moellmann <gerd@gnu.org>
parents: 28049
diff changeset
146 # Prepare a bootstrap in the lisp subdirectory. Build loaddefs.el,
a4faa7999de1 (bootstrap-clean): If $(emacs) exists, build
Gerd Moellmann <gerd@gnu.org>
parents: 28049
diff changeset
147 # because it's not sure it's up-to-date, and if it's not, that might
a4faa7999de1 (bootstrap-clean): If $(emacs) exists, build
Gerd Moellmann <gerd@gnu.org>
parents: 28049
diff changeset
148 # lead to errors during the bootstrap because something fails to
a4faa7999de1 (bootstrap-clean): If $(emacs) exists, build
Gerd Moellmann <gerd@gnu.org>
parents: 28049
diff changeset
149 # autoload as expected. Remove compiled Lisp files so that
a4faa7999de1 (bootstrap-clean): If $(emacs) exists, build
Gerd Moellmann <gerd@gnu.org>
parents: 28049
diff changeset
150 # bootstrap-emacs will be built from sources only.
26145
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
151
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
152 bootstrap-clean:
28291
a4faa7999de1 (bootstrap-clean): If $(emacs) exists, build
Gerd Moellmann <gerd@gnu.org>
parents: 28049
diff changeset
153 if test -f $(emacs); then $(MAKE) $(MFLAGS) autoloads; fi
26145
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
154 -rm -f *.elc */*.elc
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
155
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
156 # Generate/update files for the bootstrap process.
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
157
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
158 bootstrap: compile-files autoloads custom-deps
760a5b91fe7f (compile-files, backup-compiled-files): New targets.
Gerd Moellmann <gerd@gnu.org>
parents: 26112
diff changeset
159
25917
663097d932a4 (EMACSOPT, DONTCOMPILE, EL): New.
Gerd Moellmann <gerd@gnu.org>
parents: 25340
diff changeset
160 # Makefile ends here.