(Fconstrain_to_field): Make sure we don't violate the
[bpt/emacs.git] / Makefile.in
index c459018..0abe54f 100644 (file)
@@ -108,6 +108,8 @@ bitmapdir=@bitmapdir@
 # expected to be in ${srcdir}/src, and the source code for Emacs's
 # utility programs is expected to be in ${srcdir}/lib-src.  This is
 # set by the configure script's `--srcdir' option.
+
+# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
 srcdir=@srcdir@
 
 # Tell make where to find source files; this is needed for the makefiles.
@@ -174,6 +176,7 @@ docdir=@docdir@
 INSTALL = @INSTALL@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
+INSTALL_INFO = install-info
 # By default, we uphold the dignity of our programs.
 INSTALL_STRIP =
 
@@ -203,12 +206,12 @@ all: ${SUBDIR}
 
 removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g'
 
-# Generate paths.h from paths.in.  This target is invoked by `configure'.
-paths-force: FRC
+# Generate epaths.h from epaths.in.  This target is invoked by `configure'.
+epaths-force: FRC
        @(lisppath=`echo ${lisppath} | ${removenullpaths}` ;            \
          buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ;  \
          x_default_search_path=`echo ${x_default_search_path}`; \
-         sed < ${srcdir}/src/paths.in > paths.h.$$$$           \
+         sed < ${srcdir}/src/epaths.in > epaths.h.$$$$         \
          -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";'        \
          -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \
          -e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";'               \
@@ -217,7 +220,7 @@ paths-force: FRC
          -e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";'             \
          -e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' \
          -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') &&                \
-       ${srcdir}/move-if-change paths.h.$$$$ src/paths.h
+       ${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h
 
 # For parallel make, src should be build before leim.
 leim:   src
@@ -237,29 +240,35 @@ blessmail: ${SUBDIR_MAKEFILES} src FRC
        cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) \
          MAKE='${MAKE}' archlibdir='$(archlibdir)'
 
-Makefile: Makefile.in config.status
+Makefile: $(srcdir)/Makefile.in config.status
        ./config.status
 
-src/Makefile: src/Makefile.in config.status
+config.status: configure
+       ./config.status --recheck
+
+${srcdir}/configure: configure.in
+       cd ${srcdir} && autoconf
+
+src/Makefile: $(srcdir)/src/Makefile.in config.status
        ./config.status
 
-src/config.stamp: src/config.in config.status
+src/config.stamp: $(srcdir)/src/config.in config.status
        ./config.status
        touch src/config.stamp
 
-lib-src/Makefile: lib-src/Makefile.in config.status
+lib-src/Makefile: $(srcdir)/lib-src/Makefile.in config.status
        ./config.status
 
-man/Makefile: man/Makefile.in config.status
+man/Makefile: $(srcdir)/man/Makefile.in config.status
        ./config.status
 
-oldXMenu/Makefile: oldXMenu/Makefile.in config.status
+oldXMenu/Makefile: $(srcdir)/oldXMenu/Makefile.in config.status
        ./config.status
 
-lwlib/Makefile: lwlib/Makefile.in config.status
+lwlib/Makefile: $(srcdir)/lwlib/Makefile.in config.status
        ./config.status
 
-leim/Makefile: leim/Makefile.in config.status
+leim/Makefile: $(srcdir)/leim/Makefile.in config.status
        ./config.status
 
 # ==================== Installation ====================
@@ -296,6 +305,10 @@ install-arch-dep: mkdir
        -chmod 1755  ${bindir}/emacs-${version}
        rm -f ${bindir}/$(EMACS)
        -ln ${bindir}/emacs-${version} ${bindir}/$(EMACS)
+       unset CDPATH; \
+       for f in `cd lib-src && echo fns-*.el`; do \
+         ${INSTALL_DATA} lib-src/$$f ${archlibdir}/$$f; \
+       done
 
 ### Install the files that are machine-independent.
 ### Most of them come straight from the distribution;
@@ -306,6 +319,7 @@ install-arch-dep: mkdir
 ## as a workaround for a bug in tar on Ultrix 4.2.
 install-arch-indep: mkdir
        -set ${COPYDESTS} ; \
+       unset CDPATH; \
        for dir in ${COPYDIR} ; do \
          if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \
            rm -rf $$1 ; \
@@ -315,6 +329,7 @@ install-arch-indep: mkdir
        -set ${COPYDESTS} ; \
        mkdir ${COPYDESTS} ; \
        chmod ugo+rx ${COPYDESTS} ; \
+       unset CDPATH; \
        for dir in ${COPYDIR} ; do \
          dest=$$1 ; shift ; \
          [ -d $${dir} ] \
@@ -323,6 +338,7 @@ install-arch-indep: mkdir
              (cd $${dir}; tar -cf - . ) \
                |(cd $${dest};umask 022; tar -xvf - && cat > /dev/null); \
              for subdir in `find $${dest} -type d ! -name RCS -print` ; do \
+               chmod a+rx $${subdir} ; \
                rm -rf $${subdir}/RCS ; \
                rm -rf $${subdir}/CVS ; \
                rm -f  $${subdir}/\#* ; \
@@ -336,14 +352,31 @@ install-arch-indep: mkdir
        done
        -rm -f ${lispdir}/subdirs.el
        $(srcdir)/update-subdirs ${lispdir}
-       -chmod -R a+r ${COPYDESTS}
+       if [ -f ${datadir}/emacs/${version}/site-lisp/subdirs.el ]; \
+       then true; \
+       else \
+         (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
+          echo "    (normal-top-level-add-subdirs-to-load-path))") \
+           > ${datadir}/emacs/${version}/site-lisp/subdirs.el; \
+       fi
+       chmod a+r ${datadir}/emacs/${version}/site-lisp/subdirs.el
+       -if [ -f ${datadir}/emacs/site-lisp/subdirs.el ]; \
+       then true; \
+       else \
+         (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
+          echo "    (normal-top-level-add-subdirs-to-load-path))") \
+           > ${datadir}/emacs/site-lisp/subdirs.el; \
+       fi
+       -chmod a+r ${datadir}/emacs/site-lisp/subdirs.el
+       unset CDPATH; \
        if [ `(cd ./etc; /bin/pwd)` != `(cd ${docdir}; /bin/pwd)` ]; \
        then \
           echo "Copying etc/DOC-* to ${docdir} ..." ; \
           (cd ./etc; tar -cf - DOC*) \
             |(cd ${docdir}; umask 0; tar -xvf - && cat > /dev/null); \
-          (cd $(docdir); chmod a+r DOC*; rm DOC) \
+          (cd $(docdir); chmod a+r DOC*; rm DOC); \
        else true; fi
+       unset CDPATH; \
        if [ -r ./lisp ] \
           && [ -r ./lisp/simple.el ] \
           && [ x`(cd ./lisp; /bin/pwd)` != x`(cd ${lispdir}; /bin/pwd)` ] \
@@ -353,23 +386,34 @@ install-arch-indep: mkdir
           (cd lisp; tar -cf - *.el *.elc) \
             |(cd ${lispdir}; umask 0; tar -xvf - && cat > /dev/null); \
        else true; fi
+       unset CDPATH; \
        thisdir=`/bin/pwd`; \
        if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
        then \
          (cd ${infodir};  \
-          if [ -f dir ]; then \
-            if [ ! -f dir.old ]; then mv -f dir dir.old; \
-            else mv -f dir dir.bak; fi; \
+          if [ -f dir ]; then true; \
+          else \
+            (cd $${thisdir}; \
+             ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir; \
+             chmod a+r ${infodir}/dir); \
           fi; \
           cd ${srcdir}/info ; \
-          (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir); \
-          (cd $${thisdir}; chmod a+r ${infodir}/dir); \
-          for f in ccmode* cl* dired-x* ediff* emacs* forms* gnus* info* message* mh-e* sc* vip* widget*; do \
+          for f in ada-mode* ccmode* cl* dired-x* ediff* emacs* forms* gnus* info* message* mh-e* reftex* sc* vip* widget*; do \
             (cd $${thisdir}; \
              ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \
              chmod a+r ${infodir}/$$f); \
           done); \
        else true; fi
+       -unset CDPATH; \
+       thisdir=`/bin/pwd`; \
+       if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
+       then \
+         for f in ada-mode ccmode cl dired-x ediff emacs forms gnus info message mh-e reftex sc vip viper widget; do \
+           (cd $${thisdir}; \
+            ${INSTALL_INFO} --dir-file=${infodir}/dir --info-file=${infodir}/$$f); \
+         done; \
+       else true; fi
+       -chmod -R a+r ${datadir}/emacs ${COPYDESTS} ${infodir}
        thisdir=`/bin/pwd`; \
        cd ${srcdir}/etc; \
        for page in emacs etags ctags ; do \
@@ -394,8 +438,14 @@ install-strip:
 ### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use mkinstalldirs
 ### instead of mkdir.  Not all systems' mkdir programs have the `-p' flag.
 mkdir: FRC
+       if [ -d ${datadir} ]; then true; else \
+         $(srcdir)/mkinstalldirs ${datadir}; \
+         chmod a+r ${datadir};\
+       fi
        $(srcdir)/mkinstalldirs ${COPYDESTS} ${infodir} ${man1dir} \
-         ${bindir} ${datadir} ${docdir} ${libexecdir} \
+         ${bindir} ${docdir} ${libexecdir} \
+         ${datadir}/emacs/site-lisp \
+         ${datadir}/emacs/${version}/site-lisp \
          `echo ${locallisppath} | sed 's/:/ /g'`
 
 ### Delete all the installed files that the `install' target would
@@ -408,6 +458,7 @@ uninstall:
         $(MAKE) $(MFLAGS) uninstall                    \
            prefix=${prefix} exec_prefix=${exec_prefix} \
            bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir})
+       unset CDPATH; \
        for dir in ${lispdir} ${etcdir} ; do            \
          if [ -d $${dir} ]; then                       \
            case `(cd $${dir} ; /bin/pwd)` in           \
@@ -470,7 +521,7 @@ clean: FRC
 top_distclean=\
        rm -f config.status config.cache config.log ; \
        rm -f Makefile ${SUBDIR_MAKEFILES} ; \
-       (cd lock && (rm -f * || true))
+       if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi
 distclean: FRC
        (cd src;      $(MAKE) $(MFLAGS) distclean)
        (cd oldXMenu; $(MAKE) $(MFLAGS) distclean)
@@ -520,13 +571,13 @@ extraclean:
 ### Note: it's no disaster if these productions miss a file or two; tar
 ### and VC will swiftly let you know if this happens, and it is easily
 ### corrected.
-SOURCES = ChangeLog GETTING.GNU.SOFTWARE INSTALL Makefile.in PROBLEMS \
+SOURCES = ChangeLog GETTING.GNU.SOFTWARE INSTALL Makefile.in \
        README configure make-dist move-if-change
 
 .PHONY: unlock relock
 
 unlock:
-       chmod u+w $(SOURCES) cpp/*
+       chmod u+w $(SOURCES)
        -(cd elisp; chmod u+w Makefile README *.texi)
        (cd etc; $(MAKE) $(MFLAGS) unlock)
        (cd lib-src; $(MAKE) $(MFLAGS) unlock)
@@ -538,7 +589,7 @@ unlock:
        (cd src; $(MAKE) $(MFLAGS) unlock)
 
 relock:
-       chmod u-w $(SOURCES) cpp/*
+       chmod u-w $(SOURCES)
        -(cd elisp; chmod u-w Makefile README *.texi)
        (cd etc; $(MAKE) $(MFLAGS) relock)
        (cd lib-src; $(MAKE) $(MFLAGS) relock)
@@ -563,6 +614,9 @@ dist:
 .PHONY: info dvi dist check
 force-info:
 info: force-info
-       (cd ${srcdir}/man; $(MAKE) $(MFLAGS) info)
+       # Note that man/Makefile knows how to
+       # put the info files in $(srcdir),
+       # so we can do ok running make in the build dir.
+       (cd man; $(MAKE) $(MFLAGS) info)
 dvi:
        (cd man; $(MAKE) $(MFLAGS) dvi)