COPYDIR = ${srcdir}/etc ${srcdir}/lisp
COPYDESTS = ${etcdir} ${lispdir}
-all: src/paths.h ${SUBDIR} blessmail
+all: paths-force ${SUBDIR}
removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/'
-# We force the rebuilding of src/paths.h because the user might give
+# Note that sed is not in /bin on 386bsd.
+src/paths.h: Makefile ${srcdir}/src/paths.h.in
+ @echo "Producing \`src/paths.h' from \`src/paths.h.in'."
+ @(lisppath=`echo ${lisppath} | ${removenullpaths}` ; \
+ buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \
+ sed < ${srcdir}/src/paths.h.in > src/paths.h.tmp \
+ -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \
+ -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \
+ -e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";' \
+ -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";' \
+ -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";' \
+ -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";' \
+ -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";')
+ @${srcdir}/move-if-change src/paths.h.tmp src/paths.h
+
+# For `make all',
+# we force the rebuilding of src/paths.h because the user might give
# make different values for the various directories. Since we use
# move-if-change, src/paths.h only actually changes if the user did
# something notable, so the only unnecessary work we do is in building
# src/paths.h.tmp, which isn't much.
# Note that sed is not in /bin on 386bsd.
-src/paths.h: Makefile ${srcdir}/src/paths.h.in FRC.src.paths.h
+paths-force: FRC.src.paths.h
@echo "Producing \`src/paths.h' from \`src/paths.h.in'."
@(lisppath=`echo ${lisppath} | ${removenullpaths}` ; \
buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \
-e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";')
@${srcdir}/move-if-change src/paths.h.tmp src/paths.h
-src: lib-src FRC.src
+src: lib-src FRC.src src/paths.h
+# This ought to depend on src/paths.h, so that in parallel make
+# src/paths.h will be available for the compilations in lib-src.
+# But that causes trouble in `make install' if a different prefix
+# is specified at that time.
lib-src: FRC.lib-src src/paths.h
.RECURSIVE: ${SUBDIR}
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
LDFLAGS='${LDFLAGS}' MAKE='${MAKE}'
-blessmail: ${SUBDIR_MAKEFILES} FRC
+blessmail: ${SUBDIR_MAKEFILES} src FRC
cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) MAKE='${MAKE}'
Makefile: Makefile.in config.status
## source exists and is distinct from the destination.
## We don't depend on `all', but rather on ${SUBDIR}, so that we won't
## ever modify src/paths.h.
-install: ${SUBDIR} install-arch-dep install-arch-indep;
+install: ${SUBDIR} install-arch-dep install-arch-indep blessmail;
### Note that we copy the DOC-* files from the build etc directory
### as well as lots of things from ${srcdir}/etc.
install-arch-indep: mkdir
-set ${COPYDESTS} ; \
for dir in ${COPYDIR} ; do \
- if [ `(cd $$1 && pwd)` != `(cd $${dir} && pwd)` ] ; then \
+ if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \
rm -rf $$1 ; \
fi ; \
shift ; \
echo "Copying etc/DOC* ..." ; \
(cd etc; tar -cf - DOC*)|(cd ${docdir}; umask 0; tar -xvf - ); \
else true; fi
- thisdir=`pwd`; \
+ thisdir=`/bin/pwd`; \
if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
then \
(cd ${srcdir}/info ; \
(cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f); \
done); \
else true; fi
- thisdir=`pwd`; cd ${srcdir}/etc; for page in emacs etags ctags ; do \
+ thisdir=`/bin/pwd`; cd ${srcdir}/etc; for page in emacs etags ctags ; do \
(cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${mandir}/$${page}${manext}); \
done
bindir=${bindir} libdir=${libdir} archlibdir=${archlibdir})
for dir in ${lispdir} ${etcdir} ; do \
if [ -d $${dir} ]; then \
- case `(cd $${dir} ; pwd)` in \
- `(cd ${srcdir} ; pwd)`* ) ;; \
+ case `(cd $${dir} ; /bin/pwd)` in \
+ `(cd ${srcdir} ; /bin/pwd)`* ) ;; \
* ) rm -rf $${dir} ;; \
esac ; \
case $${dir} in \
(cd oldXMenu; $(MAKE) $(MFLAGS) mostlyclean)
(cd lwlib; $(MAKE) $(MFLAGS) mostlyclean)
(cd lib-src; $(MAKE) $(MFLAGS) mostlyclean)
- -(cd man; $(MAKE) $(MFLAGS) mostlyclean)
+ -(cd man && $(MAKE) $(MFLAGS) mostlyclean)
### `clean'
### Delete all files from the current directory that are normally
(cd oldXMenu; $(MAKE) $(MFLAGS) clean)
(cd lwlib; $(MAKE) $(MFLAGS) clean)
(cd lib-src; $(MAKE) $(MFLAGS) clean)
- -(cd man; $(MAKE) $(MFLAGS) clean)
+ -(cd man && $(MAKE) $(MFLAGS) clean)
### `distclean'
### Delete all files from the current directory that are created by
(cd oldXMenu; $(MAKE) $(MFLAGS) distclean)
(cd lwlib; $(MAKE) $(MFLAGS) distclean)
(cd lib-src; $(MAKE) $(MFLAGS) distclean)
- (cd man; $(MAKE) $(MFLAGS) distclean)
+ (cd man && $(MAKE) $(MFLAGS) distclean)
${top_distclean}
(cd oldXMenu; $(MAKE) $(MFLAGS) realclean)
(cd lwlib; $(MAKE) $(MFLAGS) realclean)
(cd lib-src; $(MAKE) $(MFLAGS) realclean)
- -(cd man; $(MAKE) $(MFLAGS) realclean)
+ -(cd man && $(MAKE) $(MFLAGS) realclean)
${top_distclean}
### This doesn't actually appear in the coding standards, but Karl