Mercurial > emacs
comparison Makefile.in @ 1686:10650dfc82d0
* Makefile.in (install, install.sysv, install.xenix, install.aix):
Install the info files in ${infodir}. Install the executable
under both `emacs' and `emacs-VERSION'.
* Makefile.in: Doc fix.
* Makefile.in (exec_prefix): New variable, as per latest version
of coding standards.
(bindir, libdir): Use it, instead of `prefix'.
(lib-src/Makefile): Edit value of exec_prefix into lib-src/Makefile.
* Makefile.in (mandir): Make the default value for this depend on
$(prefix).
* Makefile.in (datadir, statedir, libdir): Make these all default
to ${prefix}/lib.
(lispdir, locallisppath, etcdir, lockdir, archlibdir): Adjusted
to compensate.
* Makefile.in (install, install.sysv, install.xenix, install.aix):
Install the etags and ctags man pages too.
* Makefile.in (distclean): Don't delete backup files; that's the
job of extraclean.
(extraclean): Like distclean, but deletes backup and autosave files.
Make path specification conform to GNU coding standards.
* configure (long_usage): Remove all traces of old arguments from
usage messages, and document the options we do accept in more
detail: -with-x... and --srcdir.
(options, boolean_opts): Deleted; we don't have enough options to
make this worthwhile.
(prefix, bindir, lisppath, datadir, libdir, lockdir): Deleted,
along with the code which supported them; these should be set as
arguments to the top-level make.
(config_h_opts): Since this no longer doubles as a list of option
names, make them upper case; this simplifies the code which uses
them to build the sed command to edit src/config.h. Change the
code which sets them.
(cc, g, O): Don't allow the user to set these using options; they
should be specified using `CC=' and `CFLAGS=' arguments to the
top-level make. Just choose reasonable default values for them,
and edit them into Makefile.in's default CC and CONFIG_CFLAGS
values.
(gnu_malloc, rel_alloc): Don't allow the user to set these using
options; use them whenever the configuration files say they're
possible.
Simplify the argument processing loop. Don't accept abbreviations
for option names; these might conflict with other configuration
options in the future.
Add some support for the `--srcdir' option. Check for the sources
in . and .. if `--srcdir' is omitted. If the directories we will
compile in don't exist yet, create them under the current directory.
Note that the rest of the build process doesn't really support
this.
Edit only the top Makefile. That should edit the others. Edit
into the makefile: `version', from lisp/version.el, `configname'
and `srcdir' from the configuration arguments, `CC' and
`CONFIG_CFLAGS' as guessed from the presence or absence of GCC in
the user's path, and LOADLIBES as gleaned from the system
description files.
Simplify the report generated; it doesn't need to include any
description of paths now.
Make `config.status' exec configure instead of just calling it, so
there's no harm in overwriting `config.status'.
* Makefile.in (version, configname): New variables, used to choose
the default values for datadir and libdir.
Path variables rearranged into two clearer groups:
- In the first group are the variables specified by the GNU coding
standards (prefix, bindir, datadir, statedir, libdir, mandir,
manext, infodir, and srcdir).
- In the second are the variables actually used for Emacs's paths
(lispdir, locallisppath, lisppath, buildlisppath, etcdir, lockdir,
archlibdir), which depend on the first category.
datadir and libdir default to directories under
${prefix}/lib/emacs instead of ${prefix}/emacs, by popular
demand.
etcdir and lispdir default to subdirectories of datadir.
archlibdir defaults to libdir.
The new installation tree is a bit deeper than it used to be, so
use the new make-path program in lib-src to build them all.
Always build a new src/paths.h.tmp and then move-if-change it to
src/paths.h, to avoid unnecessary rebuilds while responding to the
right changes.
Remove all mention of arch-lib. Run utility commands from
lib-src, and let the executables be copied into archlibdir when
Emacs is installed.
Add targets for src/Makefile, lib-src/Makefile, and
oldXMenu/Makefile, editing the values of the path variables into
them.
Let lib-src do its own installation.
(datadir): Default to putting data files under
${prefix}/lib/emacs/${version}, not /usr/local/emacs.
(emacsdir): Variable deleted; it would only be confusing to use.
(lispdir, etcdir): Default to ${datadir}/lisp.
(mkdir): Use make-path for this.
(lockdir): Do this in mkdir.
(Makefile): New target.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Sat, 12 Dec 1992 15:42:14 +0000 |
parents | bd3afc204773 |
children | e0acfb7b804d |
comparison
equal
deleted
inserted
replaced
1685:8d7fc70d3103 | 1686:10650dfc82d0 |
---|---|
6 # make install to install it. | 6 # make install to install it. |
7 # make install.sysv to install on system V. Note that on system V you | 7 # make install.sysv to install on system V. Note that on system V you |
8 # must change mandir to /usr/local/man/man1. | 8 # must change mandir to /usr/local/man/man1. |
9 # make install.xenix to install on Xenix. | 9 # make install.xenix to install on Xenix. |
10 # make install.aix to install on AIX. | 10 # make install.aix to install on AIX. |
11 # make tags to update tags tables. | 11 # make TAGS to update tags tables. |
12 # | 12 # |
13 # make distclean to delete everything that wasn't in the distribution. | 13 # make clean or make mostlyclean |
14 # This is a very dangerous thing to do! It removes backup files, | 14 # Delete all files from the current directory that are normally |
15 # among other things. | 15 # created by building the program. Don't delete the files that |
16 # make clean | 16 # record the configuration. Also preserve files that could be made |
17 # This is a little less dangerous. | 17 # by building, but normally aren't because the distribution comes |
18 # make dist | 18 # with them. |
19 # This produces a tar file from the current source tree suitable | 19 # |
20 # for redistribution. | 20 # Delete `.dvi' files here if they are not part of the distribution. |
21 # | |
22 # make distclean | |
23 # Delete all files from the current directory that are created by | |
24 # configuring or building the program. If you have unpacked the | |
25 # source and built the program without creating any other files, | |
26 # `make distclean' should leave only the files that were in the | |
27 # distribution. | |
28 # | |
29 # make realclean | |
30 # Delete everything from the current directory that can be | |
31 # reconstructed with this Makefile. This typically includes | |
32 # everything deleted by distclean, plus more: C source files | |
33 # produced by Bison, tags tables, info files, and so on. | |
34 # | |
35 # make extraclean | |
36 # Still more severe - delete backup and autosave files, too. | |
21 | 37 |
22 SHELL = /bin/sh | 38 SHELL = /bin/sh |
23 | 39 |
40 # ==================== Things `configure' Might Edit ==================== | |
41 | |
42 CC=cc | |
43 CONFIG_CFLAGS=-g | |
44 | |
45 ### These help us choose version- and architecture-specific directories | |
46 ### to install files in. | |
47 | |
48 ### This should be the number of the Emacs version we're building, | |
49 ### like `18.59' or `19.0'. | |
50 version=version-not-set | |
51 | |
52 ### This should be the name of the configuration we're building Emacs | |
53 ### for, like `mips-dec-ultrix' or `sparc-sun-sunos'. | |
54 configname=configuration-name-not-set | |
55 | |
24 # ==================== Where To Install Things ==================== | 56 # ==================== Where To Install Things ==================== |
25 | 57 |
26 version=version-not-set | |
27 configname=configuration-name-not-set | |
28 | |
29 # The default location for installation. Everything is placed in | 58 # The default location for installation. Everything is placed in |
30 # subdirectories of this directory. This directory must exist when | 59 # subdirectories of this directory. The default values for many of |
31 # you start installation. The default values for many of the | 60 # the variables below are expressed in terms of this one, so you may |
32 # variables below are expressed in terms of this one, so you may not | 61 # not need to change them. |
33 # need to change them. | |
34 prefix=/usr/local | 62 prefix=/usr/local |
63 | |
64 # Like `prefix', but used for architecture-specific files. | |
65 exec_prefix=${prefix} | |
35 | 66 |
36 # Where to install Emacs and other binaries that people will want to | 67 # Where to install Emacs and other binaries that people will want to |
37 # run directly (like etags). | 68 # run directly (like etags). |
38 bindir=${prefix}/bin | 69 bindir=${exec_prefix}/bin |
39 | 70 |
40 # Where to install architecture-independent data files. ${lispdir} | 71 # Where to install architecture-independent data files. ${lispdir} |
41 # and ${etcdir} are below this. | 72 # and ${etcdir} are subdirectories of this. |
42 datadir=${prefix}/lib/emacs/${version} | 73 datadir=${prefix}/lib |
43 | 74 |
44 # Where to install and expect the files that Emacs modifies as it | 75 # Where to install and expect the files that Emacs modifies as it |
45 # runs. These files are all architecture-independent. Right now, | 76 # runs. These files are all architecture-independent. Right now, the |
46 # the only such data is the locking directory. | 77 # only such data is the locking directory; ${lockdir} is a |
47 statedir=${prefix}/lib/emacs | 78 # subdirectory of this. |
79 statedir=${prefix}/lib | |
48 | 80 |
49 # Where to install and expect executable files to be run by Emacs | 81 # Where to install and expect executable files to be run by Emacs |
50 # rather than directly by users, and other architecture-dependent | 82 # rather than directly by users, and other architecture-dependent |
51 # data. | 83 # data. ${archlibdir} is a subdirectory of this. |
52 libdir=${prefix}/${version}/${configname} | 84 libdir=${exec_prefix}/lib |
53 | 85 |
54 # Where to install Emacs's man pages, and what extension they should have. | 86 # Where to install Emacs's man pages, and what extension they should have. |
55 mandir=/usr/man/man1 | 87 mandir=${prefix}/man/man1 |
56 manext=.1 | 88 manext=.1 |
57 | 89 |
58 # Where to install and expect the info files describing Emacs. In the | 90 # Where to install and expect the info files describing Emacs. In the |
59 # past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but | 91 # past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but |
60 # since there are now many packages documented with the texinfo | 92 # since there are now many packages documented with the texinfo |
61 # system, it is inappropriate to imply that it is part of Emacs. | 93 # system, it is inappropriate to imply that it is part of Emacs. |
62 infodir=${prefix}/info | 94 infodir=${prefix}/info |
63 | 95 |
64 # Where to find the source code. The source code for Emacs's C kernel | 96 # Where to find the source code - setting this to anything but |
65 # is expected to be in ${srcdir}/src, and the source code for Emacs's | 97 # . doesn't work yet. The source code for Emacs's C kernel is |
66 # utility programs is expected to be in ${srcdir}/lib-src. | 98 # expected to be in ${srcdir}/src, and the source code for Emacs's |
67 # This is set by the configure script's `--srcdir' option. | 99 # utility programs is expected to be in ${srcdir}/lib-src. This is |
100 # set by the configure script's `--srcdir' option. | |
68 srcdir=. | 101 srcdir=. |
69 | 102 |
70 | |
71 # ==================== Emacs-specific directories ==================== | 103 # ==================== Emacs-specific directories ==================== |
72 | 104 |
73 # Where to install the elisp files distributed with Emacs. | 105 # These variables hold the values Emacs will actually use. They are |
74 lispdir=${datadir}/lisp | 106 # based on the values of the standard Make variables above. |
107 | |
108 # Where to install the elisp files distributed with Emacs. This | |
109 # includes the Emacs version, so that the lisp files for different | |
110 # versions of Emacs will install themselves in separate directories. | |
111 lispdir=${datadir}/emacs/${version}/lisp | |
75 | 112 |
76 # Directories Emacs should search for elisp files specific to this | 113 # Directories Emacs should search for elisp files specific to this |
77 # site (i.e. customizations), before consulting ${lispdir}. This | 114 # site (i.e. customizations), before consulting ${lispdir}. This |
78 # should be a colon-separated list of directories. | 115 # should be a colon-separated list of directories. |
79 locallisppath=${prefix}/lib/emacs/local-lisp | 116 locallisppath=${datadir}/emacs/local-lisp |
80 | 117 |
81 # Where Emacs will search to find its elisp files. Before changing | 118 # Where Emacs will search to find its elisp files. Before changing |
82 # this, check to see if your purpose wouldn't better be served by | 119 # this, check to see if your purpose wouldn't better be served by |
83 # changing locallisppath. This should be a colon-separated list of | 120 # changing locallisppath. This should be a colon-separated list of |
84 # directories. | 121 # directories. |
93 # directories. | 130 # directories. |
94 buildlisppath=../lisp | 131 buildlisppath=../lisp |
95 | 132 |
96 # Where to install the other architecture-independent data files | 133 # Where to install the other architecture-independent data files |
97 # distributed with Emacs (like the tutorial, the cookie recipes and | 134 # distributed with Emacs (like the tutorial, the cookie recipes and |
98 # the Zippy database). | 135 # the Zippy database). This path usually contains the Emacs version |
99 etcdir=${datadir}/etc | 136 # number, so the data files for multiple versions of Emacs may be |
137 # installed at once. | |
138 etcdir=${datadir}/emacs/${version}/etc | |
100 | 139 |
101 # Where to create and expect the locking directory, where the Emacs | 140 # Where to create and expect the locking directory, where the Emacs |
102 # locking code keeps track of which files are currently being edited. | 141 # locking code keeps track of which files are currently being edited. |
103 lockdir=${statedir}/lock | 142 lockdir=${statedir}/emacs/lock |
104 | 143 |
105 # Where to put executables to be run by Emacs rather than the user. | 144 # Where to put executables to be run by Emacs rather than the user. |
106 archlibdir=${libdir} | 145 # This path usually includes the Emacs version and configuration name, |
107 | 146 # so that multiple configurations for multiple versions of Emacs may |
108 # ==================== Things `configure' might edit ==================== | 147 # be installed at once. |
109 | 148 archlibdir=${libdir}/emacs/${version}/${configname} |
110 CC=cc | |
111 CFLAGS=-g | |
112 | 149 |
113 # ==================== Utility Programs for the Build ==================== | 150 # ==================== Utility Programs for the Build ==================== |
114 | 151 |
115 # Allow the user to specify the install program. | 152 # Allow the user to specify the install program. |
116 INSTALL = install | 153 INSTALL = install |
119 INSTALL_DATA = ${INSTALL} | 156 INSTALL_DATA = ${INSTALL} |
120 | 157 |
121 # ============================= Targets ============================== | 158 # ============================= Targets ============================== |
122 | 159 |
123 # Flags passed down to subdirectory makefiles. | 160 # Flags passed down to subdirectory makefiles. |
124 MFLAGS = CC='${CC}' CFLAGS='${CFLAGS}' | 161 MFLAGS = |
162 | |
163 CFLAGS=${CONFIG_CFLAGS} | |
125 | 164 |
126 # Subdirectories to make recursively. `lisp' is not included | 165 # Subdirectories to make recursively. `lisp' is not included |
127 # because the compiled lisp files are part of the distribution | 166 # because the compiled lisp files are part of the distribution |
128 # and you cannot remake them without installing Emacs first. | 167 # and you cannot remake them without installing Emacs first. |
129 SUBDIR = lib-src src | 168 SUBDIR = lib-src src |
130 | 169 |
131 # Subdirectories to install, and where they'll go. | 170 # The makefiles of the directories in $SUBDIR. |
132 COPYDIR = arch-lib etc info lisp | 171 SUBDIR_MAKEFILES = lib-src/Makefile src/Makefile |
133 COPYDESTS = ${libdir} ${datadir} ${infodir} ${lispdir} | 172 |
173 # Subdirectories to install, and where they'll go. lib-src's makefile | |
174 # knows how to install it, so we don't do that here. | |
175 COPYDIR = etc ${srcdir}/info ${srcdir}/lisp | |
176 COPYDESTS = ${etcdir} ${infodir} ${lispdir} | |
134 | 177 |
135 all: src/paths.h ${SUBDIR} | 178 all: src/paths.h ${SUBDIR} |
136 | 179 |
137 removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/' | 180 removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/' |
138 | 181 |
182 # We force the rebuilding of src/paths.h because the user might give | |
183 # make different values for the various directories. Since we use | |
184 # move-if-change, src/paths.h only actually changes if the user did | |
185 # something notable, so the only unnecessary work we do is in building | |
186 # src/paths.h.tmp, which isn't much. | |
139 # Note that sed is not in /bin on 386bsd. | 187 # Note that sed is not in /bin on 386bsd. |
140 src/paths.h: Makefile src/paths.h.in | 188 src/paths.h: Makefile ${srcdir}/src/paths.h.in FRC |
141 lisppath=`echo ${lisppath} | ${removenullpaths}` ; \ | 189 lisppath=`echo ${lisppath} | ${removenullpaths}` ; \ |
142 buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \ | 190 buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \ |
143 sed < src/paths.h.in > src/paths.h.tmp \ | 191 sed < ${srcdir}/src/paths.h.in > src/paths.h.tmp \ |
144 -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \ | 192 -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \ |
145 -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \ | 193 -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \ |
146 -e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";' \ | 194 -e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";' \ |
147 -e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";' \ | 195 -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";' \ |
148 -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";' | 196 -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";' |
149 ./move-if-change src/paths.h.tmp src/paths.h | 197 ${srcdir}/move-if-change src/paths.h.tmp src/paths.h |
150 | 198 |
151 src: lib-src | 199 src: lib-src |
152 | 200 |
153 .RECURSIVE: ${SUBDIR} | 201 .RECURSIVE: ${SUBDIR} |
154 | 202 |
155 ${SUBDIR}: FRC | 203 ${SUBDIR}: ${SUBDIR_MAKEFILES} FRC |
156 cd $@; make ${MFLAGS} all | 204 cd $@; make all ${MFLAGS} \ |
157 | 205 CC='${CC}' CFLAGS='${CFLAGS}' \ |
158 install: all mkdir lockdir | 206 srcdir='${srcdir}/$@' libdir='${libdir}' |
207 | |
208 ## We build the makefiles for the subdirectories here so that we can | |
209 ## edit the values for the path variables into them. This means that | |
210 ## when the user has built them from this makefile once, they will use | |
211 ## the right default values for the path variables. | |
212 lib-src/Makefile: ${srcdir}/lib-src/Makefile.in Makefile | |
213 echo "Producing \`lib-src/Makefile' from \`${srcdir}/lib-src/Makefile.in'." | |
214 rm -f lib-src/Makefile.tmp | |
215 (echo "# This file is generated from \`${srcdir}/lib-src/Makefile.in'." ; \ | |
216 echo "# If you are thinking about editing it, you should seriously consider" ; \ | |
217 echo "# running \`make lib-src/Makefile' at the top of the" ; \ | |
218 echo "# Emacs build tree instead, or editing" ; \ | |
219 echo "# \`${srcdir}/lib-src/Makefile.in' itself." ; \ | |
220 /bin/sed < ${srcdir}/lib-src/Makefile.in \ | |
221 -e 's|^\(version *=\).*$$|\1'"${version}"'|' \ | |
222 -e 's|^\(configname *=\).*$$|\1'"${configname}"'|' \ | |
223 -e 's|^\(prefix *=\).*$$|\1'"${prefix}"'|' \ | |
224 -e 's|^\(exec_prefix *=\).*$$|\1'"${exec_prefix}"'|' \ | |
225 -e 's|^\(libdir *=\).*$$|\1'"${libdir}"'|' \ | |
226 -e 's|^\(srcdir *=\).*$$|\1'"${srcdir}"'|' \ | |
227 -e 's|^\(archlibdir *=\).*$$|\1'"${archlibdir}"'|' \ | |
228 -e 's|^CC *=.*$$|CC='"${CC}"'|' \ | |
229 -e 's|^CONFIG_CFLAGS *=.*$$|CONFIG_CFLAGS='"${CONFIG_CFLAGS}"'|' \ | |
230 -e 's|^LOADLIBES *=.*$$|LOADLIBES='"${libsrc_libs}"'|' \ | |
231 -e '/^# DIST: /d') > lib-src/Makefile.tmp | |
232 ${srcdir}/move-if-change lib-src/Makefile.tmp lib-src/Makefile | |
233 # Remind people not to edit this. | |
234 chmod -w lib-src/Makefile | |
235 | |
236 src/Makefile: ${srcdir}/src/Makefile.in Makefile | |
237 echo "Producing \`src/Makefile' from \`${srcdir}/src/Makefile.in'." | |
238 rm -f src/Makefile.tmp | |
239 (echo "# This file is generated from \`${srcdir}/src/Makefile.in'." ; \ | |
240 echo "# If you are thinking about editing it, you should seriously consider" ; \ | |
241 echo "# running \`make src/Makefile' at the top of the" ; \ | |
242 echo "# Emacs build tree instead, or editing" ; \ | |
243 echo "# \`${srcdir}/src/Makefile.in' itself." ; \ | |
244 /bin/sed < ${srcdir}/src/Makefile.in \ | |
245 -e 's|^\(srcdir *=\).*$$|\1'"${srcdir}"'|' \ | |
246 -e 's|^CC *=.*$$|CC='"${CC}"'|' \ | |
247 -e 's|^CONFIG_CFLAGS *=.*$$|CONFIG_CFLAGS='"${CONFIG_CFLAGS}"'|' \ | |
248 -e '/^# DIST: /d') > src/Makefile.tmp | |
249 ${srcdir}/move-if-change src/Makefile.tmp src/Makefile | |
250 # Remind people not to edit this. | |
251 chmod -w src/Makefile | |
252 | |
253 oldXMenu/Makefile: ${srcdir}/oldXMenu/Makefile Makefile | |
254 echo "Producing \`src/Makefile' from \`${srcdir}/src/Makefile.in'." | |
255 rm -f src/Makefile.tmp | |
256 cp "${srcdir}"/oldXMenu/Makefile oldXMenu/Makefile | |
257 | |
258 | |
259 Makefile: | |
260 ./config.status | |
261 | |
262 # ==================== Installation ==================== | |
263 | |
264 install: all mkdir | |
265 ## If we let lib-src do its own installation, that means we | |
266 ## don't have to duplicate the list of utilities to install in | |
267 ## this Makefile as well. | |
268 (cd lib-src; make install ${MFLAGS} bindir=${bindir} libdir=${libdir}) | |
159 -set ${COPYDESTS} ; \ | 269 -set ${COPYDESTS} ; \ |
160 for dir in ${COPYDIR} ; do \ | 270 for dir in ${COPYDIR} ; do \ |
161 dest=$$1 ; shift ; \ | 271 dest=$$1 ; shift ; \ |
162 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ | 272 if [ `(cd $${dir}; /bin/pwd)` != `(cd $${dest}; /bin/pwd)` ]; then \ |
163 (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xf - ) ; \ | 273 (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xf - ) ; \ |
164 for subdir in `find $${dest} -type d ! -name RCS -print` ; do \ | 274 for subdir in `find $${dest} -type d ! -name RCS -print` ; do \ |
165 rm -rf $${subdir}/RCS ; \ | 275 rm -rf $${subdir}/RCS ; \ |
166 rm -f $${subdir}/\#* ; \ | 276 rm -f $${subdir}/\#* ; \ |
167 rm -f $${subdir}/*~ ; \ | 277 rm -f $${subdir}/*~ ; \ |
168 done ; \ | 278 done ; \ |
169 fi ; \ | 279 fi ; \ |
170 done | 280 done |
171 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/emacsclient ${bindir}/emacsclient | 281 (cd info ; \ |
172 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/etags ${bindir}/etags | 282 if [ ! -f ${infodir}/dir ]; then \ |
173 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/ctags ${bindir}/ctags | 283 ${INSTALL_DATA} ${INSTALLFLAGS} -m 444 ./dir ${infodir}/dir ; \ |
174 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c -m 1755 src/xemacs ${bindir}/xemacs | 284 fi ; \ |
175 ${INSTALL_DATA} ${INSTALLFLAGS} -c -m 444 etc/emacs.1 ${mandir}/emacs.1 | 285 for f in *.info* ; do \ |
286 ${INSTALL_DATA} ${INSTALLFLAGS} -m 444 $$f ${infodir}/$$f ; \ | |
287 done) | |
288 for page in emacs etags ctags ; do \ | |
289 ${INSTALL_DATA} ${INSTALLFLAGS} -m 444 etc/$${page}.1 \ | |
290 ${mandir}/$${page}${manext} ; \ | |
291 done | |
292 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -m 1755 src/xemacs \ | |
293 ${bindir}/emacs-${version} | |
176 -rm -f ${bindir}/emacs | 294 -rm -f ${bindir}/emacs |
177 mv ${bindir}/xemacs ${bindir}/emacs | 295 ln ${bindir}/emacs-${version} ${bindir}/emacs |
178 | 296 |
179 install.sysv: all mkdir lockdir | 297 install.sysv: all mkdir |
298 ## If we let lib-src do its own installation, that means we | |
299 ## don't have to duplicate the list of utilities to install in | |
300 ## this Makefile as well. | |
301 (cd lib-src; make install ${MFLAGS} bindir=${bindir} libdir=${libdir}) | |
180 -set ${COPYDESTS} ; \ | 302 -set ${COPYDESTS} ; \ |
181 for dir in ${COPYDIR} ; do \ | 303 for dir in ${COPYDIR} ; do \ |
182 dest=$$1 ; shift ; \ | 304 dest=$$1 ; shift ; \ |
183 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ | 305 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ |
184 (cd $${dir}; find . -print | cpio -pdum ${dest} ) ; \ | 306 (cd $${dir}; find . -print | cpio -pdum ${dest} ) ; \ |
187 rm -f $${subdir}/\#* ; \ | 309 rm -f $${subdir}/\#* ; \ |
188 rm -f $${subdir}/*~ ; \ | 310 rm -f $${subdir}/*~ ; \ |
189 done ; \ | 311 done ; \ |
190 fi ; \ | 312 fi ; \ |
191 done | 313 done |
192 -cpset arch-lib/emacsclient ${bindir}/emacsclient 755 bin bin | 314 -(cd info ; \ |
193 -cpset arch-lib/etags ${bindir}/etags 755 bin bin | 315 if [ ! -f ${infodir}/dir ]; then \ |
194 -cpset arch-lib/ctags ${bindir}/ctags 755 bin bin | 316 cpset ./dir ${infodir} 444 bin bin ; \ |
195 -cpset etc/emacs.1 ${mandir}/emacs.1 444 bin bin | 317 fi ; \ |
318 for f in *.info* ; do \ | |
319 cpset $$f ${infodir} 444 bin bin ; \ | |
320 done) | |
321 -for page in emacs etags ctags ; do \ | |
322 cpset etc/$${page}.1 ${mandir}/$${page}${manext} 444 bin bin ; \ | |
323 done | |
196 -/bin/rm -f ${bindir}/emacs | 324 -/bin/rm -f ${bindir}/emacs |
197 -cpset src/xemacs ${bindir}/emacs 1755 bin bin | 325 -cpset src/xemacs ${bindir}/emacs-${version} 1755 bin bin |
326 -ln ${bindir}/emacs-${version} ${bindir}/emacs | |
198 | 327 |
199 install.xenix: all mkdir lockdir | 328 install.xenix: all mkdir |
329 ## If we let lib-src do its own installation, that means we | |
330 ## don't have to duplicate the list of utilities to install in | |
331 ## this Makefile as well. | |
332 (cd lib-src; make install ${MFLAGS} bindir=${bindir} libdir=${libdir}) | |
200 -set ${COPYDESTS} ; \ | 333 -set ${COPYDESTS} ; \ |
201 for dir in ${COPYDIR} ; do \ | 334 for dir in ${COPYDIR} ; do \ |
202 dest=$$1 ; shift ; \ | 335 dest=$$1 ; shift ; \ |
203 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ | 336 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ |
204 (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xpf - ) ; \ | 337 (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xpf - ) ; \ |
207 rm -f $${subdir}/\#* ; \ | 340 rm -f $${subdir}/\#* ; \ |
208 rm -f $${subdir}/*~ ; \ | 341 rm -f $${subdir}/*~ ; \ |
209 done ; \ | 342 done ; \ |
210 fi ; \ | 343 fi ; \ |
211 done | 344 done |
212 cp arch-lib/etags arch-lib/ctags arch-lib/emacsclient ${bindir} | 345 (cd info ; \ |
213 chmod 755 ${bindir}/etags ${bindir}/ctags ${bindir}/emacsclient | 346 if [ ! -f ${infodir}/dir ]; then \ |
214 cp etc/emacs.1 ${mandir}/emacs.1 | 347 cp ./dir ${infodir} ; \ |
215 chmod 444 ${mandir}/emacs.1 | 348 chmod 444 ${infodir}/dir ; \ |
349 fi ; \ | |
350 for f in *.info* ; do \ | |
351 cp $$f ${infodir} ; \ | |
352 chmod 444 ${infodir}/$$f ; \ | |
353 done) | |
354 for page in emacs etags ctags ; do \ | |
355 cp etc/$${page}.1 ${mandir}/$${page}${manext} ; \ | |
356 chmod 444 ${mandir}/$${page}${manext} ; \ | |
357 done | |
216 -mv -f ${bindir}/emacs ${bindir}/emacs.old | 358 -mv -f ${bindir}/emacs ${bindir}/emacs.old |
217 cp src/xemacs ${bindir}/emacs | 359 cp src/xemacs ${bindir}/emacs-${version} |
360 ln ${bindir}/emacs-${version} ${bindir}/emacs | |
218 chmod 1755 ${bindir}/emacs | 361 chmod 1755 ${bindir}/emacs |
219 -rm -f ${bindir}/emacs.old | 362 -rm -f ${bindir}/emacs.old |
220 | 363 |
221 install.aix: all mkdir lockdir | 364 install.aix: all mkdir |
365 ## If we let lib-src do its own installation, that means we | |
366 ## don't have to duplicate the list of utilities to install in | |
367 ## this Makefile as well. | |
368 (cd lib-src; make install ${MFLAGS} bindir=${bindir} libdir=${libdir}) | |
222 -set ${COPYDESTS} ; \ | 369 -set ${COPYDESTS} ; \ |
223 for dir in ${COPYDIR} ; do \ | 370 for dir in ${COPYDIR} ; do \ |
224 dest=$$1 ; shift ; \ | 371 dest=$$1 ; shift ; \ |
225 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ | 372 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ |
226 (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xBf - ) ; \ | 373 (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xBf - ) ; \ |
229 rm -f $${subdir}/\#* ; \ | 376 rm -f $${subdir}/\#* ; \ |
230 rm -f $${subdir}/*~ ; \ | 377 rm -f $${subdir}/*~ ; \ |
231 done ; \ | 378 done ; \ |
232 fi ; \ | 379 fi ; \ |
233 done | 380 done |
234 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/emacsclient | 381 (cd info ; \ |
235 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/etags | 382 if [ ! -f ${infodir}/dir ]; then \ |
236 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/ctags | 383 ${INSTALL_DATA} ${INSTALLFLAGS} -M 444 -f ${infodir} ./dir ; \ |
384 fi ; \ | |
385 for f in *.info* ; do \ | |
386 ${INSTALL_DATA} ${INSTALLFLAGS} -M 444 -f ${infodir} $$f ; \ | |
387 done) | |
237 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -M 1755 -f ${bindir} src/xemacs | 388 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -M 1755 -f ${bindir} src/xemacs |
238 ${INSTALL_DATA} ${INSTALLFLAGS} -M 444 -f ${mandir} etc/emacs.1 | 389 mv ${bindir}/xemacs ${bindir}/emacs-${version} |
390 for page in emacs etags ctags ; do \ | |
391 ${INSTALL_DATA} ${INSTALLFLAGS} -M 444 -f ${mandir} etc/$${page}.1 ;\ | |
392 done | |
239 -rm -f ${bindir}/emacs | 393 -rm -f ${bindir}/emacs |
240 mv ${bindir}/xemacs ${bindir}/emacs | 394 ln ${bindir}/emacs-${version} ${bindir}/emacs |
241 | 395 |
242 # Build all the directories | 396 ### Build all the directories we're going to install Emacs in. Since |
397 ### we may be creating several layers of directories (for example, | |
398 ### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use make-path | |
399 ### instead of mkdir. Not all systems' mkdirs have the `-p' flag. | |
243 mkdir: FRC | 400 mkdir: FRC |
244 # If any of the directories are below ${emacsdir}, create it. | 401 ./lib-src/make-path ${COPYDESTS} ${lockdir} |
245 -for dir in ${COPYDESTS}; do \ | 402 chmod 777 ${COPYDESTS} ${lockdir} |
246 case "$${dir}" in \ | |
247 ${emacsdir}/* ) \ | |
248 if [ ! -d ${emacsdir} ]; then \ | |
249 mkdir ${emacsdir} ; \ | |
250 chmod 777 ${emacsdir} ; \ | |
251 fi ; \ | |
252 break\ | |
253 ;; \ | |
254 esac ; \ | |
255 done | |
256 -mkdir ${COPYDESTS} | |
257 -chmod 777 ${COPYDESTS} | |
258 | |
259 lockdir: | |
260 # If the lockdir needs ${emacsdir}, create it. | |
261 -case "${lockdir}" in \ | |
262 ${statedir}/* ) \ | |
263 if [ ! -d ${emacsdir} ]; then \ | |
264 mkdir ${emacsdir} ; \ | |
265 chmod 777 ${emacsdir} ; \ | |
266 fi \ | |
267 ;; \ | |
268 esac | |
269 -mkdir ${LOCKDIR} | |
270 -chmod 777 ${LOCKDIR} | |
271 | 403 |
272 FRC: | 404 FRC: |
273 | 405 |
406 | |
407 # ==================== Cleaning up and miscellanea ==================== | |
408 | |
409 ### `clean' | |
410 ### Delete all files from the current directory that are normally | |
411 ### created by building the program. Don't delete the files that | |
412 ### record the configuration. Also preserve files that could be made | |
413 ### by building, but normally aren't because the distribution comes | |
414 ### with them. | |
415 ### `mostlyclean' | |
416 ### Like `clean', but may refrain from deleting a few files that | |
417 ### people normally don't want to recompile. For example, the | |
418 ### `mostlyclean' target for GCC does not delete `libgcc.a', because | |
419 ### recompiling it is rarely necessary and takes a lot of time. | |
420 ### | |
274 clean mostlyclean: | 421 clean mostlyclean: |
275 cd src; make clean | 422 cd src; make clean |
276 if [ `/bin/pwd` != `(cd ${emacsdir}; /bin/pwd)` ] ; then \ | 423 cd lib-src; make clean |
277 (cd etc; make clean); \ | 424 cd oldXMenu; make clean |
278 (cd lib-src; make clean); \ | 425 if [ `(cd ${etcdir} ; /bin/pwd` != `(cd etc; /bin/pwd)` ] ; then \ |
426 cd etc; make clean; \ | |
279 else true; \ | 427 else true; \ |
280 fi | 428 fi |
281 cd oldXMenu; make clean | 429 |
282 | 430 ### `distclean' |
431 ### Delete all files from the current directory that are created by | |
432 ### configuring or building the program. This should leave only the | |
433 ### files that would be in the distribution. | |
283 distclean: | 434 distclean: |
284 for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} distclean); done | 435 for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} distclean); done |
285 -(cd lock; rm *) | 436 -(cd lock; rm *) |
286 -rm config.status config-tmp-* | 437 -rm config.status config-tmp-* |
287 -rm #*# *~ | 438 |
288 | 439 ### `realclean' |
440 ### Delete everything from the current directory that can be | |
441 ### reconstructed with this makefile. This typically includes | |
442 ### everything deleted by distclean, plus more: C source files | |
443 ### produced by Bison, tags tables, info files, and so on. | |
289 realclean: | 444 realclean: |
290 for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} realclean); done | 445 for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} realclean); done |
291 (cd lock; rm *) | 446 (cd lock; rm *) |
292 rm config.status | 447 rm config.status |
293 | 448 |
449 ### This doesn't actually appear in the coding standards, but Karl | |
450 ### says GCC supports it, and that's where the configuration part of | |
451 ### the coding standards seem to come from. It's like distclean, but | |
452 ### it deletes backup and autosave files too. | |
453 extraclean: | |
454 for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} extraclean); done | |
455 -(cd lock; rm *) | |
456 -rm config.status config-tmp-* | |
457 -rm -f *~ \#* | |
458 | |
459 | |
294 TAGS tags: lib-src | 460 TAGS tags: lib-src |
295 cd src; ../arch-lib/etags *.[ch] ../lisp/*.el ../lisp/term/*.el | 461 (cd ${srcdir} ; lib-src/etags --output=./src/TAGS \ |
462 src/*.[ch] lisp/*.el lisp/term/*.el) | |
296 | 463 |
297 check: | 464 check: |
298 @echo "We don't have any tests for GNU Emacs yet." | 465 @echo "We don't have any tests for GNU Emacs yet." |
299 | 466 |
300 dist: | 467 dist: |
301 make-dist | 468 cd ${srcdir}; make-dist |