aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Blandy1992-12-12 15:42:14 +0000
committerJim Blandy1992-12-12 15:42:14 +0000
commit78008d140e5a2cfdfcc61428cf5ee00ea3d50a1e (patch)
treebf684fb7397124716cef4657b93346a9e901c774
parentfd482be5a70c6ecd014e1cb511145fb913cabca0 (diff)
downloademacs-78008d140e5a2cfdfcc61428cf5ee00ea3d50a1e.tar.gz
emacs-78008d140e5a2cfdfcc61428cf5ee00ea3d50a1e.zip
* 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.
-rw-r--r--Makefile.in393
1 files changed, 280 insertions, 113 deletions
diff --git a/Makefile.in b/Makefile.in
index 755093ab8dd..2d131c64792 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -8,51 +8,83 @@
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
22SHELL = /bin/sh 38SHELL = /bin/sh
23 39
24# ==================== Where To Install Things ==================== 40# ==================== Things `configure' Might Edit ====================
25 41
42CC=cc
43CONFIG_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'.
26version=version-not-set 50version=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'.
27configname=configuration-name-not-set 54configname=configuration-name-not-set
28 55
56# ==================== Where To Install Things ====================
57
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.
34prefix=/usr/local 62prefix=/usr/local
35 63
64# Like `prefix', but used for architecture-specific files.
65exec_prefix=${prefix}
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).
38bindir=${prefix}/bin 69bindir=${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.
42datadir=${prefix}/lib/emacs/${version} 73datadir=${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
47statedir=${prefix}/lib/emacs 78# subdirectory of this.
79statedir=${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.
52libdir=${prefix}/${version}/${configname} 84libdir=${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.
55mandir=/usr/man/man1 87mandir=${prefix}/man/man1
56manext=.1 88manext=.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
@@ -61,22 +93,27 @@ manext=.1
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.
62infodir=${prefix}/info 94infodir=${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.
68srcdir=. 101srcdir=.
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
74lispdir=${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.
111lispdir=${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.
79locallisppath=${prefix}/lib/emacs/local-lisp 116locallisppath=${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
@@ -95,20 +132,20 @@ 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
99etcdir=${datadir}/etc 136# number, so the data files for multiple versions of Emacs may be
137# installed at once.
138etcdir=${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.
103lockdir=${statedir}/lock 142lockdir=${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.
106archlibdir=${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 148archlibdir=${libdir}/emacs/${version}/${configname}
110CC=cc
111CFLAGS=-g
112 149
113# ==================== Utility Programs for the Build ==================== 150# ==================== Utility Programs for the Build ====================
114 151
@@ -121,45 +158,118 @@ INSTALL_DATA = ${INSTALL}
121# ============================= Targets ============================== 158# ============================= Targets ==============================
122 159
123# Flags passed down to subdirectory makefiles. 160# Flags passed down to subdirectory makefiles.
124MFLAGS = CC='${CC}' CFLAGS='${CFLAGS}' 161MFLAGS =
162
163CFLAGS=${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.
129SUBDIR = lib-src src 168SUBDIR = lib-src src
130 169
131# Subdirectories to install, and where they'll go. 170# The makefiles of the directories in $SUBDIR.
132COPYDIR = arch-lib etc info lisp 171SUBDIR_MAKEFILES = lib-src/Makefile src/Makefile
133COPYDESTS = ${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.
175COPYDIR = etc ${srcdir}/info ${srcdir}/lisp
176COPYDESTS = ${etcdir} ${infodir} ${lispdir}
134 177
135all: src/paths.h ${SUBDIR} 178all: src/paths.h ${SUBDIR}
136 179
137removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/' 180removenullpaths=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.
140src/paths.h: Makefile src/paths.h.in 188src/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
151src: lib-src 199src: 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}' \
158install: 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.
212lib-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
236src/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
253oldXMenu/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
259Makefile:
260 ./config.status
261
262# ==================== Installation ====================
263
264install: 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 ; \
@@ -168,15 +278,27 @@ install: all mkdir lockdir
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
179install.sysv: all mkdir lockdir 297install.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 ; \
@@ -189,14 +311,25 @@ install.sysv: all mkdir lockdir
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
199install.xenix: all mkdir lockdir 328install.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 ; \
@@ -209,16 +342,30 @@ install.xenix: all mkdir lockdir
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
221install.aix: all mkdir lockdir 364install.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 ; \
@@ -231,71 +378,91 @@ install.aix: all mkdir lockdir
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.
243mkdir: FRC 400mkdir: 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
259lockdir:
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
272FRC: 404FRC:
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###
274clean mostlyclean: 421clean 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
282 429
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.
283distclean: 434distclean:
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 #*# *~
288 438
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.
289realclean: 444realclean:
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.
453extraclean:
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
294TAGS tags: lib-src 460TAGS 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
297check: 464check:
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
300dist: 467dist:
301 make-dist 468 cd ${srcdir}; make-dist