(emerge-recenter, emerge-operate-on-windows):
[bpt/emacs.git] / Makefile.in
index 969fcb8..71e2a0a 100644 (file)
@@ -59,9 +59,6 @@ version=@version@
 ### for, like `mips-dec-ultrix' or `sparc-sun-sunos'.
 configuration=@configuration@
 
-### Libraries which should be edited into lib-src/Makefile.
-libsrc_libs=@libsrc_libs@
-
 # ==================== Where To Install Things ====================
 
 # The default location for installation.  Everything is placed in
@@ -138,7 +135,8 @@ lisppath=@lisppath@
 # building.  This is only used during the process of
 # compiling Emacs, to help Emacs find its lisp files
 # before they've been installed in their final location.
-# It's usually identical to lisppath, except that the
+# It's usually identical to lisppath, except that 
+# it does not include locallisppath, and the
 # entry for the directory containing the installed lisp
 # files has been replaced with ../lisp.  This should be a
 # colon-separated list of directories.
@@ -195,37 +193,56 @@ SUBDIR_MAKEFILES = lib-src/Makefile src/Makefile oldXMenu/Makefile lwlib/Makefil
 COPYDIR = ${srcdir}/etc ${srcdir}/lisp
 COPYDESTS = ${etcdir} ${lispdir}
 
-all:   src/paths.h ${SUBDIR} blessmail
+all:   paths-force ${SUBDIR}
+
+removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g'
 
-removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/'
+# 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 > 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 paths.h.tmp$$$$ src/paths.h
 
-# We force the rebuilding of src/paths.h because the user might give
+# 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.
+# 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
+# We depend on src/paths.h here to prevent simultaneous execution of
+# that rule and this one, in a parallel make.
+# It is possible for paths.h to be updated twice--but that would happen anyway.
+paths-force: FRC src/paths.h
        @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              \
+         sed < ${srcdir}/src/paths.h.in > 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
+         -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";') &&             \
+       ${srcdir}/move-if-change paths.h.tmp$$$$ src/paths.h
 
-src:   lib-src FRC.src
+src:   lib-src FRC 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
+lib-src: FRC src/paths.h
 
 .RECURSIVE: ${SUBDIR}
 
@@ -234,7 +251,7 @@ ${SUBDIR}: ${SUBDIR_MAKEFILES} FRC
          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
@@ -289,7 +306,7 @@ install-arch-dep: mkdir
 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 ; \
@@ -311,10 +328,10 @@ install-arch-indep: mkdir
         done
        if [ `(cd ./etc; /bin/pwd)` != `(cd ${docdir}; /bin/pwd)` ]; \
        then \
-          echo "Copying etc/DOC* ..." ; \
-          (cd etc; tar -cf - DOC*)|(cd ${docdir}; umask 0; tar -xvf - ); \
+          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 ; \
@@ -325,7 +342,7 @@ install-arch-indep: mkdir
             (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
 
@@ -333,10 +350,10 @@ install-arch-indep: mkdir
 ### we may be creating several layers of directories (for example,
 ### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use make-path
 ### instead of mkdir.  Not all systems' mkdirs have the `-p' flag.
-mkdir: FRC.mkdir
+mkdir: FRC
        ./lib-src/make-path ${COPYDESTS} ${lockdir} ${infodir} ${mandir} \
          ${bindir} ${datadir} ${docdir} ${libdir} \
-         `echo ${locallisppath} | sed 's/:/ /'`
+         `echo ${locallisppath} | sed 's/:/ /g'`
        -chmod 777 ${lockdir}
 
 ### Delete all the installed files that the `install' target would
@@ -351,8 +368,8 @@ uninstall:
            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                             \
@@ -364,13 +381,10 @@ uninstall:
        done
        (cd ${infodir}; rm -f cl* emacs* forms* info* vip*)
        (cd ${mandir};  rm -f emacs.1 etags.1 ctags.1)
-       (cd ${bindir};  rm -f emacs-${version} emacs)
+       (cd ${bindir};  rm -f emacs-${version} $(EMACS))
 
 
-### Some makes seem to remember that they've built something called FRC,
-### so you can only use a given FRC once per makefile.
-FRC FRC.src.paths.h FRC.src FRC.lib-src FRC.mkdir:
-FRC.mostlyclean FRC.clean FRC.distclean FRC.realclean:
+FRC:
 
 # ==================== Cleaning up and miscellanea ====================
 
@@ -381,12 +395,12 @@ FRC.mostlyclean FRC.clean FRC.distclean FRC.realclean:
 ###      normally don't want to recompile.  For example, the `mostlyclean'
 ###      target for GCC does not delete `libgcc.a', because recompiling it
 ###      is rarely necessary and takes a lot of time.
-mostlyclean: FRC.mostlyclean
+mostlyclean: FRC
        (cd src;      $(MAKE) $(MFLAGS) mostlyclean)
        (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
@@ -396,12 +410,12 @@ mostlyclean: FRC.mostlyclean
 ###      with them.
 ### 
 ###      Delete `.dvi' files here if they are not part of the distribution.
-clean: FRC.clean
+clean: FRC
        (cd src;      $(MAKE) $(MFLAGS) clean)
        (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
@@ -413,12 +427,12 @@ top_distclean=\
        rm -f config.status build-install ; \
        rm -f Makefile ${SUBDIR_MAKEFILES} ; \
        (cd lock ; rm -f *)
-distclean: FRC.distclean
+distclean: FRC
        (cd src;      $(MAKE) $(MFLAGS) distclean)
        (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}
        
 
@@ -433,12 +447,12 @@ distclean: FRC.distclean
 ###      Makefile.  More generally, `make realclean' should not delete
 ###      anything that needs to exist in order to run `configure' and then
 ###      begin to build the program.
-realclean: FRC.realclean
+realclean: FRC
        (cd src;      $(MAKE) $(MFLAGS) realclean)
        (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