root/vendor/emacs-21.3.50-20041019/Makefile.in

Revision 3533, 28.0 kB (checked in by miyoshi, 4 years ago)

Initial import.

Line 
1 # DIST: This is the distribution Makefile for Emacs.  configure can
2 # DIST: make most of the changes to this file you might want, so try
3 # DIST: that first.
4
5 # Copyright (C) 1992,93,94,95,96,97,98,1999,2000,01,02,03,2004
6 #   Free Software Foundation, Inc.
7
8 # This file is part of GNU Emacs.
9
10 # GNU Emacs is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2, or (at your option)
13 # any later version.
14
15 # GNU Emacs is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 # GNU General Public License for more details.
19
20 # You should have received a copy of the GNU General Public License
21 # along with GNU Emacs; see the file COPYING.  If not, write to
22 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 # Boston, MA 02111-1307, USA.
24
25 # make all      to compile and build Emacs.
26 # make install  to install it.
27 # make TAGS     to update tags tables.
28 #
29 # make clean  or  make mostlyclean
30 #      Delete all files from the current directory that are normally
31 #      created by building the program.  Don't delete the files that
32 #      record the configuration.  Also preserve files that could be made
33 #      by building, but normally aren't because the distribution comes
34 #      with them.
35 #
36 #      Delete `.dvi' files here if they are not part of the distribution.
37 #
38 # make distclean
39 #      Delete all files from the current directory that are created by
40 #      configuring or building the program.  If you have unpacked the
41 #      source and built the program without creating any other files,
42 #      `make distclean' should leave only the files that were in the
43 #      distribution.
44 #
45 # make maintainer-clean
46 #      Delete everything from the current directory that can be
47 #      reconstructed with this Makefile.  This typically includes
48 #      everything deleted by distclean, plus more: .elc files,
49 #      C source files produced by Bison, tags tables, info files,
50 #      and so on.
51 #
52 # make extraclean
53 #      Still more severe - delete backup and autosave files, too.
54
55 SHELL = /bin/sh
56
57 # This may not work with certain non-GNU make's.  It only matters when
58 # inheriting a CDPATH not starting with the current directory.
59 CDPATH=
60
61 # If Make doesn't predefine MAKE, set it here.
62 @SET_MAKE@
63
64 # ==================== Things `configure' Might Edit ====================
65
66 CC=@CC@
67 CPP=@CPP@
68 C_SWITCH_SYSTEM=@c_switch_system@
69 ALLOCA=@ALLOCA@
70 LN_S=@LN_S@
71 CFLAGS=@CFLAGS@
72 LDFLAGS=@LDFLAGS@
73 CPPFLAGS=@CPPFLAGS@
74 C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
75 LD_SWITCH_X_SITE=@LD_SWITCH_X_SITE@
76 EXEEXT=@EXEEXT@
77
78 ### These help us choose version- and architecture-specific directories
79 ### to install files in.
80
81 ### This should be the number of the Emacs version we're building,
82 ### like `18.59' or `19.0'.
83 version=@version@
84
85 ### This should be the name of the configuration we're building Emacs
86 ### for, like `mips-dec-ultrix' or `sparc-sun-sunos'.
87 configuration=@configuration@
88
89 # ==================== Where To Install Things ====================
90
91 # The default location for installation.  Everything is placed in
92 # subdirectories of this directory.  The default values for many of
93 # the variables below are expressed in terms of this one, so you may
94 # not need to change them.  This defaults to /usr/local.
95 prefix=@prefix@
96
97 # Like `prefix', but used for architecture-specific files.
98 exec_prefix=@exec_prefix@
99
100 # Where to install Emacs and other binaries that people will want to
101 # run directly (like etags).
102 bindir=@bindir@
103
104 # Where to install architecture-independent data files.  ${lispdir}
105 # and ${etcdir} are subdirectories of this.
106 datadir=@datadir@
107
108 # Where to install and expect the files that Emacs modifies as it
109 # runs.  These files are all architecture-independent.
110 # Right now, this is not used.
111 sharedstatedir=@sharedstatedir@
112
113 # Where to install and expect executable files to be run by Emacs
114 # rather than directly by users, and other architecture-dependent
115 # data.  ${archlibdir} is a subdirectory of this.
116 libexecdir=@libexecdir@
117
118 # Where to install Emacs's man pages, and what extension they should have.
119 mandir=@mandir@
120 manext=.1
121 man1dir=$(mandir)/man1
122
123 # Where to install and expect the info files describing Emacs.  In the
124 # past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but
125 # since there are now many packages documented with the texinfo
126 # system, it is inappropriate to imply that it is part of Emacs.
127 infodir=@infodir@
128
129 # Directory for local state files for all programs.
130 localstatedir=@localstatedir@
131
132 # Where to look for bitmap files.
133 bitmapdir=@bitmapdir@
134
135 # Where to find the source code.  The source code for Emacs's C kernel is
136 # expected to be in ${srcdir}/src, and the source code for Emacs's
137 # utility programs is expected to be in ${srcdir}/lib-src.  This is
138 # set by the configure script's `--srcdir' option.
139
140 # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
141 srcdir=@srcdir@
142
143 # Tell make where to find source files; this is needed for the makefiles.
144 VPATH=@srcdir@
145
146 # Where to find the application default.
147 x_default_search_path=@x_default_search_path@
148
149 # Location to install Emacs.app on Mac OS X
150 carbon_appdir=@carbon_appdir@
151
152 # ==================== Emacs-specific directories ====================
153
154 # These variables hold the values Emacs will actually use.  They are
155 # based on the values of the standard Make variables above.
156
157 # Where to install the lisp files distributed with
158 # Emacs.  This includes the Emacs version, so that the
159 # lisp files for different versions of Emacs will install
160 # themselves in separate directories.
161 lispdir=@lispdir@
162
163 # Directories Emacs should search for lisp files specific
164 # to this site (i.e. customizations), before consulting
165 # ${lispdir}.  This should be a colon-separated list of
166 # directories.
167 locallisppath=@locallisppath@
168
169 # Where Emacs will search to find its lisp files.  Before
170 # changing this, check to see if your purpose wouldn't
171 # better be served by changing locallisppath.  This
172 # should be a colon-separated list of directories.
173 lisppath=@lisppath@
174
175 # Where Emacs will search for its lisp files while
176 # building.  This is only used during the process of
177 # compiling Emacs, to help Emacs find its lisp files
178 # before they've been installed in their final location.
179 # It's usually identical to lisppath, except that
180 # it does not include locallisppath, and the
181 # entry for the directory containing the installed lisp
182 # files has been replaced with ../lisp.  This should be a
183 # colon-separated list of directories.
184 buildlisppath=${srcdir}/lisp
185
186 # Where to install the other architecture-independent
187 # data files distributed with Emacs (like the tutorial,
188 # the cookie recipes and the Zippy database). This path
189 # usually contains the Emacs version number, so the data
190 # files for multiple versions of Emacs may be installed
191 # at once.
192 etcdir=@etcdir@
193
194 # Where to put executables to be run by Emacs rather than
195 # the user.  This path usually includes the Emacs version
196 # and configuration name, so that multiple configurations
197 # for multiple versions of Emacs may be installed at
198 # once.
199 archlibdir=@archlibdir@
200
201 # Where to put the docstring file.
202 docdir=@docdir@
203
204 # Where to install Emacs game score files.
205 gamedir=@gamedir@
206
207 # ==================== Utility Programs for the Build ====================
208
209 # Allow the user to specify the install program.
210 INSTALL = @INSTALL@
211 INSTALL_PROGRAM = @INSTALL_PROGRAM@
212 INSTALL_DATA = @INSTALL_DATA@
213 INSTALL_INFO = @INSTALL_INFO@
214 # By default, we uphold the dignity of our programs.
215 INSTALL_STRIP =
216
217 # ============================= Targets ==============================
218
219 # Program name transformation.
220 TRANSFORM = @program_transform_name@
221
222 # What emacs should be called when installed.
223 EMACS = `echo emacs${EXEEXT} | sed '$(TRANSFORM)'`
224 EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'`
225
226 # Subdirectories to make recursively.  `lisp' is not included
227 # because the compiled lisp files are part of the distribution.
228 # leim is not included because it needs special handling.
229 SUBDIR = lib-src src
230
231 # The makefiles of the directories in $SUBDIR.
232 SUBDIR_MAKEFILES = lib-src/Makefile man/Makefile lispref/Makefile lispintro/Makefile src/Makefile oldXMenu/Makefile lwlib/Makefile leim/Makefile
233
234 # Subdirectories to install, and where they'll go.
235 # lib-src's makefile knows how to install it, so we don't do that here.
236 # leim's makefile also knows how to install it, so we don't do that here.
237 # When installing the info files, we need to do special things to
238 # avoid nuking an existing dir file, so we don't do that here;
239 # instead, we have written out explicit code in the `install' targets.
240 COPYDIR = ${srcdir}/etc ${srcdir}/lisp
241 COPYDESTS = ${etcdir} ${lispdir}
242
243 all: ${SUBDIR} leim
244
245 removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g'
246
247 # Generate epaths.h from epaths.in.  This target is invoked by `configure'.
248 epaths-force: FRC
249         @(lisppath=`echo ${lisppath} | ${removenullpaths}` ;            \
250           buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ;  \
251           x_default_search_path=`echo ${x_default_search_path}`; \
252           gamedir=`echo ${gamedir}`; \
253           sed < ${srcdir}/src/epaths.in > epaths.h.$$$$         \
254           -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";'        \
255           -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \
256           -e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";'               \
257           -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";'                  \
258           -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";'                   \
259           -e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";'             \
260           -e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' \
261           -e 's;\(#.*PATH_GAME\).*$$;\1 "${gamedir}";' \
262           -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";' \
263           -e 's;/[*] *arch-tag:.*;/*;') &&              \
264         ${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h
265
266 # For parallel make, src should be build before leim.
267 # "export PARALLEL=0" is for SGI's Make, to prevent it from
268 # running more than 1 process in the leim directory, especially for
269 # the $TIT files there.
270 leim:   src ${SUBDIR_MAKEFILES} FRC
271         (export PARALLEL; PARALLEL=0; cd $@; $(MAKE) all $(MFLAGS) \
272           CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
273           LDFLAGS='${LDFLAGS}' MAKE='${MAKE}')
274
275 src:    lib-src FRC
276
277 lib-src: FRC src/config.stamp
278
279 .RECURSIVE: ${SUBDIR} leim
280
281 ${SUBDIR}: maybe_bootstrap ${SUBDIR_MAKEFILES} FRC
282         cd $@; $(MAKE) all $(MFLAGS) \
283           CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
284           LDFLAGS='${LDFLAGS}' MAKE='${MAKE}'
285
286 blessmail: ${SUBDIR_MAKEFILES} src FRC
287         cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) \
288           MAKE='${MAKE}' archlibdir='$(archlibdir)'
289
290 Makefile: $(srcdir)/Makefile.in config.status
291         ./config.status
292
293 config.status: ${srcdir}/configure
294         ./config.status --recheck
295
296 ${srcdir}/configure: @MAINT@ ${srcdir}/configure.in
297         cd ${srcdir} && autoconf
298
299 $(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in
300         @true
301 $(srcdir)/src/stamp-h.in: @MAINT@ ${srcdir}/configure.in
302         cd ${srcdir} && autoheader
303         rm -f $(srcdir)/src/stamp-h.in
304         echo timestamp > $(srcdir)/src/stamp-h.in
305
306 src/Makefile: $(srcdir)/src/Makefile.in config.status
307         ./config.status
308
309 src/config.stamp: $(srcdir)/src/config.in config.status
310         ./config.status
311         touch src/config.stamp
312
313 lib-src/Makefile: $(srcdir)/lib-src/Makefile.in config.status
314         ./config.status
315
316 man/Makefile: $(srcdir)/man/Makefile.in config.status
317         ./config.status
318
319 lispref/Makefile: $(srcdir)/lispref/Makefile.in config.status
320         ./config.status
321
322 lispintro/Makefile: $(srcdir)/lispintro/Makefile.in config.status
323         ./config.status
324
325 oldXMenu/Makefile: $(srcdir)/oldXMenu/Makefile.in config.status
326         ./config.status
327
328 lwlib/Makefile: $(srcdir)/lwlib/Makefile.in config.status
329         ./config.status
330
331 leim/Makefile: $(srcdir)/leim/Makefile.in config.status
332         ./config.status
333
334 # ==================== Installation ====================
335
336 ## If we let lib-src do its own installation, that means we
337 ## don't have to duplicate the list of utilities to install in
338 ## this Makefile as well.
339
340 ## On AIX, use tar xBf.
341 ## On Xenix, use tar xpf.
342
343 .PHONY: install mkdir
344
345 ## We delete each directory in ${COPYDESTS} before we copy into it;
346 ## that way, we can reinstall over directories that have been put in
347 ## place with their files read-only (perhaps because they are checked
348 ## into RCS).  In order to make this safe, we make sure that the
349 ## source exists and is distinct from the destination.
350 ### We do install-arch-indep first because
351 ### the executable needs the Lisp files and DOC file to work properly.
352 install: all install-arch-indep install-arch-dep install-leim blessmail
353         @true
354
355 ### Install the executables that were compiled specifically for this machine.
356 ### It would be nice to do something for a parallel make
357 ### to ensure that install-arch-indep finishes before this starts.
358 install-arch-dep: mkdir
359         (cd lib-src; \
360           $(MAKE) install $(MFLAGS) prefix=${prefix} \
361             exec_prefix=${exec_prefix} bindir=${bindir} \
362             libexecdir=${libexecdir} archlibdir=${archlibdir} \
363             INSTALL_STRIP=${INSTALL_STRIP})
364         ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} ${bindir}/$(EMACSFULL)
365         -chmod 1755  ${bindir}/$(EMACSFULL)
366         rm -f ${bindir}/$(EMACS)
367         -ln ${bindir}/$(EMACSFULL) ${bindir}/$(EMACS)
368         -unset CDPATH; \
369         for f in `cd lib-src && echo fns-*.el`; do \
370           if test -r lib-src/$$f ; then \
371             ${INSTALL_DATA} lib-src/$$f ${archlibdir}/$$f; \
372           else true; fi ; \
373         done
374         if test "${carbon_appdir}" != ""; then \
375           umask 022; mkdir -p ${carbon_appdir}/Emacs.app; \
376           (cd mac/Emacs.app; (tar -chf - . | \
377                 (cd ${carbon_appdir}/Emacs.app; umask 022; tar -xvf - \
378                         && cat > /dev/null))) || exit 1; \
379         fi
380
381 ### Install the files that are machine-independent.
382 ### Most of them come straight from the distribution;
383 ### the exception is the DOC-* files, which are copied
384 ## from the build directory.
385
386 ## Note that we copy DOC* and then delete DOC
387 ## as a workaround for a bug in tar on Ultrix 4.2.
388
389 ## If people complain about the h flag in tar command, take that out.
390 ## That flag is also used in leim/Makefile.in
391 install-arch-indep: mkdir info
392         -set ${COPYDESTS} ; \
393         unset CDPATH; \
394         for dir in ${COPYDIR} ; do \
395           if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \
396             rm -rf $$1 ; \
397           fi ; \
398           shift ; \
399         done
400         -set ${COPYDESTS} ; \
401         mkdir ${COPYDESTS} ; \
402         chmod ugo+rx ${COPYDESTS} ; \
403         unset CDPATH; \
404         for dir in ${COPYDIR} ; do \
405           dest=$$1 ; shift ; \
406           [ -d $${dir} ] \
407           && [ `(cd $${dir} && /bin/pwd)` != `(cd $${dest} && /bin/pwd)` ] \
408           && (echo "Copying $${dir} to $${dest}..." ; \
409               (cd $${dir}; tar -chf - . ) \
410                 | (cd $${dest}; umask 022; \
411                    tar -xvf - && cat > /dev/null) || exit 1; \
412               find $${dest} -exec chown $${LOGNAME:-$$USERNAME} {} ';' ;\
413               for subdir in `find $${dest} -type d ! -name RCS ! -name CVS -print` ; do \
414                 chmod a+rx $${subdir} ; \
415                 rm -rf $${subdir}/RCS ; \
416                 rm -rf $${subdir}/CVS ; \
417                 rm -f  $${subdir}/.cvsignore ; \
418                 rm -f  $${subdir}/.arch-inventory ; \
419                 rm -f  $${subdir}/\#* ; \
420                 rm -f  $${subdir}/.\#* ; \
421                 rm -f  $${subdir}/*~ ; \
422                 rm -f  $${subdir}/*.orig ; \
423                 rm -f  $${subdir}/[mM]akefile* ; \
424                 rm -f  $${subdir}/ChangeLog* ; \
425                 rm -f  $${subdir}/dired.todo ; \
426               done) ; \
427         done
428         -rm -f ${lispdir}/subdirs.el
429         $(srcdir)/update-subdirs ${lispdir}
430         if [ -f ${datadir}/emacs/${version}/site-lisp/subdirs.el ]; \
431         then true; \
432         else \
433           (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
434            echo "    (normal-top-level-add-subdirs-to-load-path))") \
435             > ${datadir}/emacs/${version}/site-lisp/subdirs.el; \
436         fi
437         chmod a+r ${datadir}/emacs/${version}/site-lisp/subdirs.el
438         -if [ -f ${datadir}/emacs/site-lisp/subdirs.el ]; \
439         then true; \
440         else \
441           (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
442            echo "    (normal-top-level-add-subdirs-to-load-path))") \
443             > ${datadir}/emacs/site-lisp/subdirs.el; \
444         fi
445         -chmod a+r ${datadir}/emacs/site-lisp/subdirs.el
446         -unset CDPATH; \
447         if [ `(cd ./etc; /bin/pwd)` != `(cd ${docdir}; /bin/pwd)` ]; \
448         then \
449            echo "Copying etc/DOC-* to ${docdir} ..." ; \
450            (cd ./etc; tar -chf - DOC*) \
451              |(cd ${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
452            (cd $(docdir); chown $${LOGNAME:-$$USERNAME} DOC*; chmod a+r DOC*; \
453             if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); \
454         else true; fi
455         -unset CDPATH; \
456         if [ -r ./lisp ] \
457            && [ -r ./lisp/simple.el ] \
458            && [ x`(cd ./lisp; /bin/pwd)` != x`(cd ${lispdir}; /bin/pwd)` ] \
459            && [ x`(cd ${srcdir}/lisp; /bin/pwd)` != x`(cd ./lisp; /bin/pwd)` ]; \
460         then \
461            echo "Copying lisp/*.el and lisp/*.elc to ${lispdir} ..." ; \
462            (cd lisp; tar -chf - *.el *.elc) \
463              |(cd ${lispdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
464            (cd ${lispdir}; find . -exec chown $${LOGNAME:-$$USERNAME} {} ';') ; \
465         else true; fi
466         -unset CDPATH; \
467         thisdir=`/bin/pwd`; \
468         if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
469         then \
470           (cd ${infodir};  \
471            if [ -f dir ]; then true; \
472            else \
473              (cd $${thisdir}; \
474               ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir; \
475               chmod a+r ${infodir}/dir); \
476            fi; \
477            cd ${srcdir}/info ; \
478            for f in ada-mode* autotype* calc* ccmode* cl* dired-x* ebrowse* ediff* efaq* eintr* elisp* emacs* emacs-mime* emacs-xtra* eshell* eudc* flymake* forms* gnus* idlwave* info* message* mh-e* pcl-cvs* pgg* reftex* sc* ses* sieve* speedbar* tramp* vip* widget* woman* smtpmail*; do \
479              (cd $${thisdir}; \
480               ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \
481               chmod a+r ${infodir}/$$f); \
482            done); \
483         else true; fi
484         -unset CDPATH; \
485         thisdir=`/bin/pwd`; \
486         if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
487         then \
488           for f in ada-mode autotype calc ccmode cl dired-x ebrowse ediff efaq elisp eintr emacs emacs-mime emacs-xtra eshell eudc flymake forms gnus idlwave info message mh-e pcl-cvs pgg reftex sc ses sieve speedbar tramp vip viper widget woman smtpmail; do \
489             (cd $${thisdir}; \
490              ${INSTALL_INFO} --info-dir=${infodir} ${infodir}/$$f); \
491           done; \
492         else true; fi
493         -chmod -R a+r ${datadir}/emacs ${COPYDESTS} ${infodir}
494         thisdir=`/bin/pwd`; \
495         cd ${srcdir}/etc; \
496         for page in emacs emacsclient etags ctags ; do \
497           (cd $${thisdir}; \
498            ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/$${page}${manext}; \
499            chmod a+r ${man1dir}/$${page}${manext}); \
500         done
501
502 ### Install LEIM files.  Although they are machine-independent, we
503 ### have separate target here instead of including it in
504 ### `install-arch-indep'.  People who extracted LEIM files after they
505 ### insalled Emacs itself can install only LEIM files by this target.
506 install-leim: leim/Makefile mkdir
507         cd leim; $(MAKE) install
508
509 ### Build Emacs and install it, stripping binaries while installing them.
510 install-strip:
511         $(MAKE) INSTALL_STRIP=-s install
512
513 ### Build all the directories we're going to install Emacs in.  Since
514 ### we may be creating several layers of directories (for example,
515 ### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use mkinstalldirs
516 ### instead of mkdir.  Not all systems' mkdir programs have the `-p' flag.
517 mkdir: FRC
518         if [ -d ${datadir} ]; then true; else \
519           $(srcdir)/mkinstalldirs ${datadir}; \
520           chmod a+r ${datadir};\
521         fi
522         $(srcdir)/mkinstalldirs ${COPYDESTS} ${infodir} ${man1dir} \
523           ${bindir} ${docdir} ${libexecdir} \
524           ${datadir}/emacs/site-lisp \
525           ${datadir}/emacs/${version}/site-lisp \
526           `echo ${locallisppath} | sed 's/:/ /g'`
527
528 ### Delete all the installed files that the `install' target would
529 ### create (but not the noninstalled files such as `make all' would
530 ### create).
531 ###
532 ### Don't delete the lisp and etc directories if they're in the source tree.
533 uninstall:
534         (cd lib-src;                                    \
535          $(MAKE) $(MFLAGS) uninstall                    \
536             prefix=${prefix} exec_prefix=${exec_prefix} \
537             bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir})
538         -unset CDPATH; \
539         for dir in ${lispdir} ${etcdir} ; do            \
540           if [ -d $${dir} ]; then                       \
541             case `(cd $${dir} ; /bin/pwd)` in           \
542               `(cd ${srcdir} ; /bin/pwd)`* ) ;;         \
543               * ) rm -rf $${dir} ;;                     \
544             esac ;                                      \
545             case $${dir} in                             \
546               ${datadir}/emacs/${version}/* )           \
547                 rm -rf ${datadir}/emacs/${version}      \
548               ;;                                        \
549             esac ;                                      \
550           fi ;                                          \
551         done
552         (cd ${archlibdir} && rm -f fns-*)
553         -rm -rf ${libexecdir}/emacs/${version}
554         (cd ${infodir} && rm -f cl* ada-mode* autotype* calc* ccmode* ebrowse* efaq* eintr elisp* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* tramp* widget* woman* dired-x* ediff* emacs* emacs-xtra* flymake* forms* gnus* info* mh-e* sc* ses* vip* smtpmail*)
555         (cd ${man1dir}  && rm -f emacs${manext} emacsclient${manext} etags${manext} ctags${manext})
556         (cd ${bindir}  && rm -f $(EMACSFULL) $(EMACS))
557
558
559 FRC:
560
561 # ==================== Cleaning up and miscellanea ====================
562
563 .PHONY: mostlyclean clean distclean maintainer-clean extraclean
564
565 ### `mostlyclean'
566 ###      Like `clean', but may refrain from deleting a few files that people
567 ###      normally don't want to recompile.  For example, the `mostlyclean'
568 ###      target for GCC does not delete `libgcc.a', because recompiling it
569 ###      is rarely necessary and takes a lot of time.
570 mostlyclean: FRC
571         (cd src;      $(MAKE) $(MFLAGS) mostlyclean)
572         (cd oldXMenu; $(MAKE) $(MFLAGS) mostlyclean)
573         (cd lwlib;    $(MAKE) $(MFLAGS) mostlyclean)
574         (cd lib-src;  $(MAKE) $(MFLAGS) mostlyclean)
575         -(cd man &&   $(MAKE) $(MFLAGS) mostlyclean)
576         -(cd lispref &&   $(MAKE) $(MFLAGS) mostlyclean)
577         -(cd lispintro &&   $(MAKE) $(MFLAGS) mostlyclean)
578         (cd leim;     $(MAKE) $(MFLAGS) mostlyclean)
579
580 ### `clean'
581 ###      Delete all files from the current directory that are normally
582 ###      created by building the program.  Don't delete the files that
583 ###      record the configuration.  Also preserve files that could be made
584 ###      by building, but normally aren't because the distribution comes
585 ###      with them.
586 ###
587 ###      Delete `.dvi' files here if they are not part of the distribution.
588 clean: FRC
589         (cd src;      $(MAKE) $(MFLAGS) clean)
590         (cd oldXMenu; $(MAKE) $(MFLAGS) clean)
591         (cd lwlib;    $(MAKE) $(MFLAGS) clean)
592         (cd lib-src;  $(MAKE) $(MFLAGS) clean)
593         -(cd man &&   $(MAKE) $(MFLAGS) clean)
594         -(cd lispref &&   $(MAKE) $(MFLAGS) clean)
595         -(cd lispintro &&   $(MAKE) $(MFLAGS) clean)
596         (cd leim;     $(MAKE) $(MFLAGS) clean)
597
598 ### `distclean'
599 ###      Delete all files from the current directory that are created by
600 ###      configuring or building the program.  If you have unpacked the
601 ###      source and built the program without creating any other files,
602 ###      `make distclean' should leave only the files that were in the
603 ###      distribution.
604 top_distclean=\
605         rm -f config.status config.cache config.log ; \
606         rm -f Makefile ${SUBDIR_MAKEFILES} ; \
607         if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi
608 distclean: FRC
609         (cd src;      $(MAKE) $(MFLAGS) distclean)
610         (cd oldXMenu; $(MAKE) $(MFLAGS) distclean)
611         (cd lwlib;    $(MAKE) $(MFLAGS) distclean)
612         (cd lib-src;  $(MAKE) $(MFLAGS) distclean)
613         (cd man &&    $(MAKE) $(MFLAGS) distclean)
614         (cd lispref &&    $(MAKE) $(MFLAGS) distclean)
615         (cd lispintro &&    $(MAKE) $(MFLAGS) distclean)
616         (cd leim;     $(MAKE) $(MFLAGS) distclean)
617         (cd lisp;     $(MAKE) $(MFLAGS) distclean)
618         ${top_distclean}
619
620 ### `maintainer-clean'
621 ###      Delete everything from the current directory that can be
622 ###      reconstructed with this Makefile.  This typically includes
623 ###      everything deleted by distclean, plus more: C source files
624 ###      produced by Bison, tags tables, info files, and so on.
625 ###
626 ###      One exception, however: `make maintainer-clean' should not delete
627 ###      `configure' even if `configure' can be remade using a rule in the
628 ###      Makefile.  More generally, `make maintainer-clean' should not delete
629 ###      anything that needs to exist in order to run `configure' and then
630 ###      begin to build the program.
631 maintainer-clean: FRC
632         (cd src;      $(MAKE) $(MFLAGS) maintainer-clean)
633         (cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean)
634         (cd lwlib;    $(MAKE) $(MFLAGS) maintainer-clean)
635         (cd lib-src;  $(MAKE) $(MFLAGS) maintainer-clean)
636         -(cd man &&   $(MAKE) $(MFLAGS) maintainer-clean)
637         -(cd lispref &&   $(MAKE) $(MFLAGS) maintainer-clean)
638         -(cd lispintro &&   $(MAKE) $(MFLAGS) maintainer-clean)
639         (cd leim;     $(MAKE) $(MFLAGS) maintainer-clean)
640         (cd lisp;     $(MAKE) $(MFLAGS) maintainer-clean)
641         ${top_distclean}
642
643 ### This doesn't actually appear in the coding standards, but Karl
644 ### says GCC supports it, and that's where the configuration part of
645 ### the coding standards seem to come from.  It's like distclean, but
646 ### it deletes backup and autosave files too.
647 extraclean:
648         for i in ${SUBDIR} leim; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done
649         ${top_distclean}
650         -rm -f config-tmp-*
651         -rm -f *~ \#*
652
653 ### Unlocking and relocking.  The idea of these productions is to reduce
654 ### hassles when installing an incremental tar of Emacs.  Do `make unlock'
655 ### before unlocking the file to take the write locks off all sources so
656 ### that tar xvof will overwrite them without fuss.  Then do `make relock'
657 ### afterward so that VC mode will know which files should be checked in
658 ### if you want to mung them.
659 ###
660 ### Note: it's no disaster if these productions miss a file or two; tar
661 ### and VC will swiftly let you know if this happens, and it is easily
662 ### corrected.
663 SOURCES = ChangeLog FTP INSTALL Makefile.in \
664         README configure make-dist move-if-change
665
666 .PHONY: unlock relock
667
668 unlock:
669         chmod u+w $(SOURCES)
670         -(cd elisp; chmod u+w Makefile README *.texi)
671         (cd etc; $(MAKE) $(MFLAGS) unlock)
672         (cd lib-src; $(MAKE) $(MFLAGS) unlock)
673         (cd lisp; $(MAKE) $(MFLAGS) unlock)
674         (cd lisp/term; chmod u+w README *.el)
675         (cd man; chmod u+w *texi* ChangeLog split-man)
676         (cd lispref; chmod u+w *texi* ChangeLog)
677         (cd lispintro; chmod u+w *texi* ChangeLog)
678         (cd oldXMenu; chmod u+w *.[ch] Makefile README)
679         (cd lwlib; chmod u+w *.[ch] Makefile README)
680         (cd src; $(MAKE) $(MFLAGS) unlock)
681
682 relock:
683         chmod u-w $(SOURCES)
684         -(cd elisp; chmod u-w Makefile README *.texi)
685         (cd etc; $(MAKE) $(MFLAGS) relock)
686         (cd lib-src; $(MAKE) $(MFLAGS) relock)
687         (cd lisp; $(MAKE) $(MFLAGS) relock)
688         (cd lisp/term; chmod u+w README *.el)
689         (cd man; chmod u+w *texi* ChangeLog split-man)
690         (cd lispref; chmod u+w *texi* ChangeLog)
691         (cd lispintro; chmod u+w *texi* ChangeLog)
692         (cd oldXMenu; chmod u+w *.[ch] Makefile README)
693         (cd lwlib; chmod u+w *.[ch] Makefile README)
694         (cd src; $(MAKE) $(MFLAGS) relock)
695
696 # The src subdir knows how to do the right thing
697 # even when the build directory and source dir are different.
698 TAGS tags: lib-src src
699         cd src; $(MAKE) tags
700
701 check:
702         @echo "We don't have any tests for GNU Emacs yet."
703
704 dist:
705         cd ${srcdir}; ./make-dist
706
707 .PHONY: info dvi dist check html
708 force-info:
709 # Note that man/Makefile knows how to
710 # put the info files in $(srcdir),
711 # so we can do ok running make in the build dir.
712 info: force-info
713         (cd man; $(MAKE) $(MFLAGS) info)
714         (cd lispref; $(MAKE) $(MFLAGS) info)
715         (cd lispintro; $(MAKE) $(MFLAGS) info)
716 dvi:
717         (cd man; $(MAKE) $(MFLAGS) dvi)
718         (cd lispref; $(MAKE) $(MFLAGS) elisp.dvi)
719         (cd lispintro; $(MAKE) $(MFLAGS) emacs-lisp-intro.dvi)
720
721 #### Bootstrapping.
722
723 ### This is meant for Emacs maintainers only.  It first cleans the
724 ### lisp subdirectory, removing all compiled Lisp files.  Then a
725 ### special emacs executable is built from Lisp sources, which is then
726 ### used to compile Lisp files.  The last step is a "normal" make.
727
728 .PHONY: bootstrap
729 .PHONY: maybe_bootstrap
730
731 maybe_bootstrap:
732         @bar="`echo $(srcdir)/lisp/*.elc`"; \
733         if [ \( "$$bar" = '$(srcdir)/lisp/*.elc' \) -o \( "$$bar" = '' \) ]; then \
734           echo "Your tree does not include the compiled Lisp files."; \
735           echo "You need to do \`make bootstrap' to build Emacs."; \
736           echo "Emacs now requires Texinfo version 4.2."; \
737           exit 1;\
738         fi
739
740 bootstrap: bootstrap-clean-before info FRC
741         (cd lisp; $(MAKE) $(MFLAGS) bootstrap-prepare)
742         (cd src; $(MAKE) $(MFLAGS) bootstrap)
743         (cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs${EXEEXT})
744         (cd src; $(MAKE) $(MFLAGS) mostlyclean)
745         $(MAKE) $(MFLAGS) all
746         (cd lisp; $(MAKE) $(MFLAGS) bootstrap-after)
747
748 ### Used for `bootstrap' to avoid deleting existing dumped Emacs executables.
749 bootstrap-clean-before: FRC
750         (cd src;      $(MAKE) $(MFLAGS) mostlyclean)
751         (cd oldXMenu; $(MAKE) $(MFLAGS) clean)
752         (cd lwlib;    $(MAKE) $(MFLAGS) clean)
753         (cd lib-src;  $(MAKE) $(MFLAGS) clean)
754         -(cd man &&   $(MAKE) $(MFLAGS) clean)
755         -(cd lispref &&   $(MAKE) $(MFLAGS) clean)
756         -(cd lispintro &&   $(MAKE) $(MFLAGS) clean)
757         (cd leim;     $(MAKE) $(MFLAGS) clean)
Note: See TracBrowser for help on using the browser.