Mercurial > emacs
annotate Makefile.in @ 1678:62ecf0c5b54c
Give subprocess creation a way to find a valid current directory
for subprocesses when the buffer's default-directory is a handled
name.
* fileio.c (Funhandled_file_name_directory): New function.
(Qunhandled_file_name_directory): New file-name-handler operation.
(syms_of_fileio): Defsubr Sunhandled_file_name_directory, and
initialize and staticpro Qunhandled_file_name_directory.
* callproc.c (Fcall_process): Call Funhandled_file_name_directory
on the buffer's default directory. Do it earlier in the function
so there's less to GCPRO.
* process.c (create_process): Don't check the validity of the
buffer's default directory here...
(Fstart_process): Instead, do it here; if we call
Funhandled_file_name_directory here, there's less GCPROing to do.
* callproc.c (Fcall_process_region): Return the value returned by
Fcall_process.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Sat, 12 Dec 1992 15:31:32 +0000 |
parents | bd3afc204773 |
children | 10650dfc82d0 |
rev | line source |
---|---|
617 | 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. | |
491 | 4 |
617 | 5 # make all to compile and build Emacs. |
6 # make install to install it. | |
7 # make install.sysv to install on system V. Note that on system V you | |
8 # must change mandir to /usr/local/man/man1. | |
9 # make install.xenix to install on Xenix. | |
596 | 10 # make install.aix to install on AIX. |
617 | 11 # make tags to update tags tables. |
491 | 12 # |
617 | 13 # make distclean to delete everything that wasn't in the distribution. |
1111 | 14 # This is a very dangerous thing to do! It removes backup files, |
15 # among other things. | |
491 | 16 # make clean |
617 | 17 # This is a little less dangerous. |
621 | 18 # make dist |
19 # This produces a tar file from the current source tree suitable | |
20 # for redistribution. | |
491 | 21 |
22 SHELL = /bin/sh | |
23 | |
617 | 24 # ==================== Where To Install Things ==================== |
25 | |
1647
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
26 version=version-not-set |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
27 configname=configuration-name-not-set |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
28 |
617 | 29 # The default location for installation. Everything is placed in |
30 # subdirectories of this directory. This directory must exist when | |
31 # you start installation. The default values for many of the | |
32 # variables below are expressed in terms of this one, so you may not | |
33 # need to change them. | |
34 prefix=/usr/local | |
35 | |
36 # Where to install Emacs and other binaries that people will want to | |
37 # run directly (like etags). | |
621 | 38 bindir=${prefix}/bin |
491 | 39 |
1647
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
40 # Where to install architecture-independent data files. ${lispdir} |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
41 # and ${etcdir} are below this. |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
42 datadir=${prefix}/lib/emacs/${version} |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
43 |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
44 # Where to install and expect the files that Emacs modifies as it |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
45 # runs. These files are all architecture-independent. Right now, |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
46 # the only such data is the locking directory. |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
47 statedir=${prefix}/lib/emacs |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
48 |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
49 # Where to install and expect executable files to be run by Emacs |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
50 # rather than directly by users, and other architecture-dependent |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
51 # data. |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
52 libdir=${prefix}/${version}/${configname} |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
53 |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
54 # Where to install Emacs's man pages, and what extension they should have. |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
55 mandir=/usr/man/man1 |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
56 manext=.1 |
617 | 57 |
1647
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
58 # Where to install and expect the info files describing Emacs. In the |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
59 # past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
60 # since there are now many packages documented with the texinfo |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
61 # system, it is inappropriate to imply that it is part of Emacs. |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
62 infodir=${prefix}/info |
491 | 63 |
1647
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
64 # Where to find the source code. The source code for Emacs's C kernel |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
65 # is expected to be in ${srcdir}/src, and the source code for Emacs's |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
66 # utility programs is expected to be in ${srcdir}/lib-src. |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
67 # This is set by the configure script's `--srcdir' option. |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
68 srcdir=. |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
69 |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
70 |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
71 # ==================== Emacs-specific directories ==================== |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
72 |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
73 # Where to install the elisp files distributed with Emacs. |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
74 lispdir=${datadir}/lisp |
617 | 75 |
76 # Directories Emacs should search for elisp files specific to this | |
621 | 77 # site (i.e. customizations), before consulting ${lispdir}. This |
617 | 78 # should be a colon-separated list of directories. |
1647
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
79 locallisppath=${prefix}/lib/emacs/local-lisp |
491 | 80 |
617 | 81 # 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 | |
83 # changing locallisppath. This should be a colon-separated list of | |
84 # directories. | |
621 | 85 lisppath=${locallisppath}:${lispdir} |
491 | 86 |
621 | 87 # Where Emacs will search for its elisp files while building. This is |
617 | 88 # only used during the process of compiling Emacs, to help Emacs find |
89 # its lisp files before they've been installed in their final | |
90 # location. It's usually identical to lisppath, except that the entry | |
91 # for the directory containing the installed lisp files has been | |
92 # replaced with ../lisp. This should be a colon-separated list of | |
93 # directories. | |
621 | 94 buildlisppath=../lisp |
491 | 95 |
1647
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
96 # Where to install the other architecture-independent data files |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
97 # distributed with Emacs (like the tutorial, the cookie recipes and |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
98 # the Zippy database). |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
99 etcdir=${datadir}/etc |
617 | 100 |
101 # Where to create and expect the locking directory, where the Emacs | |
102 # locking code keeps track of which files are currently being edited. | |
621 | 103 lockdir=${statedir}/lock |
491 | 104 |
1647
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
105 # Where to put executables to be run by Emacs rather than the user. |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
106 archlibdir=${libdir} |
491 | 107 |
1647
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
108 # ==================== Things `configure' might edit ==================== |
617 | 109 |
1647
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
110 CC=cc |
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
111 CFLAGS=-g |
491 | 112 |
617 | 113 # ==================== Utility Programs for the Build ==================== |
114 | |
115 # Allow the user to specify the install program. | |
116 INSTALL = install | |
117 INSTALLFLAGS = -c | |
118 INSTALL_PROGRAM = ${INSTALL} | |
119 INSTALL_DATA = ${INSTALL} | |
120 | |
121 # ============================= Targets ============================== | |
491 | 122 |
123 # Flags passed down to subdirectory makefiles. | |
1647
bd3afc204773
Now partially conforms with GNU coding standards. I'm only checking
Jim Blandy <jimb@redhat.com>
parents:
1111
diff
changeset
|
124 MFLAGS = CC='${CC}' CFLAGS='${CFLAGS}' |
491 | 125 |
126 # Subdirectories to make recursively. `lisp' is not included | |
127 # because the compiled lisp files are part of the distribution | |
128 # and you cannot remake them without installing Emacs first. | |
617 | 129 SUBDIR = lib-src src |
491 | 130 |
617 | 131 # Subdirectories to install, and where they'll go. |
132 COPYDIR = arch-lib etc info lisp | |
621 | 133 COPYDESTS = ${libdir} ${datadir} ${infodir} ${lispdir} |
491 | 134 |
135 all: src/paths.h ${SUBDIR} | |
136 | |
617 | 137 removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/' |
138 | |
1035 | 139 # Note that sed is not in /bin on 386bsd. |
617 | 140 src/paths.h: Makefile src/paths.h.in |
621 | 141 lisppath=`echo ${lisppath} | ${removenullpaths}` ; \ |
142 buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \ | |
1111 | 143 sed < src/paths.h.in > src/paths.h.tmp \ |
617 | 144 -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \ |
621 | 145 -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \ |
146 -e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";' \ | |
147 -e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";' \ | |
624 | 148 -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";' |
638 | 149 ./move-if-change src/paths.h.tmp src/paths.h |
491 | 150 |
151 src: lib-src | |
152 | |
153 .RECURSIVE: ${SUBDIR} | |
154 | |
155 ${SUBDIR}: FRC | |
156 cd $@; make ${MFLAGS} all | |
157 | |
158 install: all mkdir lockdir | |
617 | 159 -set ${COPYDESTS} ; \ |
160 for dir in ${COPYDIR} ; do \ | |
161 dest=$$1 ; shift ; \ | |
162 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ | |
163 (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xf - ) ; \ | |
164 for subdir in `find $${dest} -type d ! -name RCS -print` ; do \ | |
165 rm -rf $${subdir}/RCS ; \ | |
166 rm -f $${subdir}/\#* ; \ | |
167 rm -f $${subdir}/*~ ; \ | |
168 done ; \ | |
169 fi ; \ | |
170 done | |
171 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/emacsclient ${bindir}/emacsclient | |
172 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/etags ${bindir}/etags | |
173 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/ctags ${bindir}/ctags | |
174 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c -m 1755 src/xemacs ${bindir}/xemacs | |
175 ${INSTALL_DATA} ${INSTALLFLAGS} -c -m 444 etc/emacs.1 ${mandir}/emacs.1 | |
176 -rm -f ${bindir}/emacs | |
177 mv ${bindir}/xemacs ${bindir}/emacs | |
491 | 178 |
179 install.sysv: all mkdir lockdir | |
617 | 180 -set ${COPYDESTS} ; \ |
181 for dir in ${COPYDIR} ; do \ | |
182 dest=$$1 ; shift ; \ | |
183 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ | |
184 (cd $${dir}; find . -print | cpio -pdum ${dest} ) ; \ | |
185 for subdir in `find $${dest} -type d ! -name RCS -print` ; do \ | |
186 rm -rf $${subdir}/RCS ; \ | |
187 rm -f $${subdir}/\#* ; \ | |
188 rm -f $${subdir}/*~ ; \ | |
189 done ; \ | |
190 fi ; \ | |
191 done | |
192 -cpset arch-lib/emacsclient ${bindir}/emacsclient 755 bin bin | |
193 -cpset arch-lib/etags ${bindir}/etags 755 bin bin | |
194 -cpset arch-lib/ctags ${bindir}/ctags 755 bin bin | |
195 -cpset etc/emacs.1 ${mandir}/emacs.1 444 bin bin | |
196 -/bin/rm -f ${bindir}/emacs | |
197 -cpset src/xemacs ${bindir}/emacs 1755 bin bin | |
491 | 198 |
199 install.xenix: all mkdir lockdir | |
617 | 200 -set ${COPYDESTS} ; \ |
201 for dir in ${COPYDIR} ; do \ | |
202 dest=$$1 ; shift ; \ | |
203 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ | |
204 (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xpf - ) ; \ | |
205 for subdir in `find $${dest} -type d ! -name RCS -print` ; do \ | |
206 rm -rf $${subdir}/RCS ; \ | |
207 rm -f $${subdir}/\#* ; \ | |
208 rm -f $${subdir}/*~ ; \ | |
209 done ; \ | |
210 fi ; \ | |
211 done | |
212 cp arch-lib/etags arch-lib/ctags arch-lib/emacsclient ${bindir} | |
213 chmod 755 ${bindir}/etags ${bindir}/ctags ${bindir}/emacsclient | |
214 cp etc/emacs.1 ${mandir}/emacs.1 | |
215 chmod 444 ${mandir}/emacs.1 | |
216 -mv -f ${bindir}/emacs ${bindir}/emacs.old | |
217 cp src/xemacs ${bindir}/emacs | |
218 chmod 1755 ${bindir}/emacs | |
219 -rm -f ${bindir}/emacs.old | |
491 | 220 |
596 | 221 install.aix: all mkdir lockdir |
617 | 222 -set ${COPYDESTS} ; \ |
223 for dir in ${COPYDIR} ; do \ | |
224 dest=$$1 ; shift ; \ | |
225 if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \ | |
226 (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xBf - ) ; \ | |
227 for subdir in `find $${dest} -type d ! -name RCS -print` ; do \ | |
228 rm -rf $${subdir}/RCS ; \ | |
229 rm -f $${subdir}/\#* ; \ | |
230 rm -f $${subdir}/*~ ; \ | |
231 done ; \ | |
232 fi ; \ | |
233 done | |
234 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/emacsclient | |
235 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/etags | |
236 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/ctags | |
237 ${INSTALL_PROGRAM} ${INSTALLFLAGS} -M 1755 -f ${bindir} src/xemacs | |
238 ${INSTALL_DATA} ${INSTALLFLAGS} -M 444 -f ${mandir} etc/emacs.1 | |
239 -rm -f ${bindir}/emacs | |
240 mv ${bindir}/xemacs ${bindir}/emacs | |
596 | 241 |
617 | 242 # Build all the directories |
491 | 243 mkdir: FRC |
617 | 244 # If any of the directories are below ${emacsdir}, create it. |
245 -for dir in ${COPYDESTS}; do \ | |
246 case "$${dir}" in \ | |
247 ${emacsdir}/* ) \ | |
248 if [ ! -d ${emacsdir} ]; then \ | |
704 | 249 mkdir ${emacsdir} ; \ |
250 chmod 777 ${emacsdir} ; \ | |
617 | 251 fi ; \ |
252 break\ | |
253 ;; \ | |
254 esac ; \ | |
255 done | |
256 -mkdir ${COPYDESTS} | |
257 -chmod 777 ${COPYDESTS} | |
491 | 258 |
259 lockdir: | |
617 | 260 # If the lockdir needs ${emacsdir}, create it. |
261 -case "${lockdir}" in \ | |
262 ${statedir}/* ) \ | |
263 if [ ! -d ${emacsdir} ]; then \ | |
704 | 264 mkdir ${emacsdir} ; \ |
265 chmod 777 ${emacsdir} ; \ | |
617 | 266 fi \ |
267 ;; \ | |
268 esac | |
491 | 269 -mkdir ${LOCKDIR} |
270 -chmod 777 ${LOCKDIR} | |
271 | |
272 FRC: | |
273 | |
617 | 274 clean mostlyclean: |
275 cd src; make clean | |
749 | 276 if [ `/bin/pwd` != `(cd ${emacsdir}; /bin/pwd)` ] ; then \ |
277 (cd etc; make clean); \ | |
278 (cd lib-src; make clean); \ | |
617 | 279 else true; \ |
280 fi | |
281 cd oldXMenu; make clean | |
282 | |
283 distclean: | |
284 for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} distclean); done | |
285 -(cd lock; rm *) | |
286 -rm config.status config-tmp-* | |
287 -rm #*# *~ | |
288 | |
289 realclean: | |
290 for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} realclean); done | |
291 (cd lock; rm *) | |
292 rm config.status | |
293 | |
294 TAGS tags: lib-src | |
491 | 295 cd src; ../arch-lib/etags *.[ch] ../lisp/*.el ../lisp/term/*.el |
617 | 296 |
297 check: | |
298 @echo "We don't have any tests for GNU Emacs yet." | |
621 | 299 |
300 dist: | |
301 make-dist |