* configure.in (mandir): May as well include it in the NS app bundle.
[bpt/emacs.git] / Makefile.in
index d2a8db9..69757d5 100644 (file)
@@ -441,22 +441,16 @@ $(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS)
 ## don't have to duplicate the list of utilities to install in
 ## this Makefile as well.
 
-## On AIX, use tar xBf.
-## On Xenix, use tar xpf.
+.PHONY: install
 
-.PHONY: install mkdir
-
-## We delete each directory in ${COPYDESTS} before we copy into it;
-## that way, we can reinstall over directories that have been put in
-## place with their files read-only (perhaps because they are checked
-## into RCS).  In order to make this safe, we make sure that the
-## source exists and is distinct from the destination.
-### We do install-arch-indep first because
-### the executable needs the Lisp files and DOC file to work properly.
-install: all install-arch-indep install-arch-dep install-leim blessmail
+install: all install-arch-indep install-arch-dep blessmail
        @true
 
 ## Ensure that $subdir contains a subdirs.el file.
+## Here and elsewhere, we set the umask so that any created files are
+## world-readable.
+## TODO it might be good to warn about non-standard permissions of
+## pre-existing directories, but that does not seem easy.
 write_subdir=if [ -f $${subdir}/subdirs.el ]; \
        then true; \
        else \
@@ -468,11 +462,10 @@ write_subdir=if [ -f $${subdir}/subdirs.el ]; \
        fi
 
 ### Install the executables that were compiled specifically for this machine.
-### It would be nice to do something for a parallel make
-### to ensure that install-arch-indep finishes before this starts.
-### (TODO Why would it be nice?  Why not just make this depend on
-### install-arch-indep then?)
-install-arch-dep: mkdir
+### We do install-arch-indep first because the executable needs the
+### Lisp files and DOC file to work properly.
+install-arch-dep: install-arch-indep
+       umask 022; ${MKDIR_P} $(DESTDIR)${bindir}
        (cd lib-src; \
          $(MAKE) install $(MFLAGS) prefix=${prefix} \
            exec_prefix=${exec_prefix} bindir=${bindir} \
@@ -495,6 +488,10 @@ install-arch-dep: mkdir
 ## icons (duplicates etc/images/icons/hicolor)
 ## man   (maybe we should be installing this one, like info)
 
+## This is install-etc for everything except self-contained-ns builds.
+## For them, it is empty.
+INSTALL_ARCH_INDEP_EXTRA = @INSTALL_ARCH_INDEP_EXTRA@
+
 ## http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg01672.html
 ## Needs to be the user running install, so configure can't set it.
 set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
@@ -521,48 +518,54 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
 ## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*.
 ## (Note "otherwise" is inaccurate since 2009-08-23.)
 
-## If people complain about the h flag in tar command, take that out.
-## That flag is also used in leim/Makefile.in
-
 ## Note that the Makefiles in the etc directory are potentially useful
 ## in an installed Emacs, so should not be excluded.
 
-install-arch-indep: mkdir info install-etc
-       -set ${COPYDESTS} ; \
-       unset CDPATH; \
-       for dir in ${COPYDIR} ; do \
-         if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \
-           rm -rf $$1 ; \
-         fi ; \
-         shift ; \
-       done
+## We delete each directory in ${COPYDESTS} before we copy into it;
+## that way, we can reinstall over directories that have been put in
+## place with their files read-only (perhaps because they are checked
+## into RCS).  In order to make this safe, we make sure that the
+## source exists and is distinct from the destination.
+
+## I'm not sure creating locallisppath here serves any useful purpose.
+## If it has the default value, then the later write_subdir commands
+## will ensure all these components exist.
+## This will only do something if locallisppath has a non-standard value.
+## Is it really Emacs's job to create those directories?
+## Should we also be ensuring they contain subdirs.el files?
+## It would be easy to do, just use write_subdir.
+install-arch-indep: info install-leim ${INSTALL_ARCH_INDEP_EXTRA}
+       umask 022 ; \
+         $(MKDIR_P) $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'`
        -set ${COPYDESTS} ; \
-       mkdir ${COPYDESTS} ; \
-       chmod ugo+rx ${COPYDESTS} ; \
        unset CDPATH; \
        $(set_installuser); \
        for dir in ${COPYDIR} ; do \
+         [ -d $${dir} ] || exit 1 ; \
          dest=$$1 ; shift ; \
-         [ -d $${dir} ] \
-         && [ `(cd $${dir} && /bin/pwd)` != `(cd $${dest} && /bin/pwd)` ] \
-         && (echo "Copying $${dir} to $${dest}..." ; \
-             (cd $${dir}; tar -chf - . ) \
-               | (cd $${dest}; umask 022; \
-                   tar -xvf - && cat > /dev/null) || exit 1; \
-             find $${dest} -exec chown $${installuser} {} ';' ;\
-             for subdir in `find $${dest} -type d -print` ; do \
-               chmod a+rx $${subdir} ; \
-               rm -f  $${subdir}/.gitignore ; \
-               rm -f  $${subdir}/.arch-inventory ; \
-               rm -f  $${subdir}/.DS_Store ; \
-               rm -f  $${subdir}/\#* ; \
-               rm -f  $${subdir}/.\#* ; \
-               rm -f  $${subdir}/*~ ; \
-               rm -f  $${subdir}/*.orig ; \
-               [ "$${dir}" != "${srcdir}/etc" ] && \
-                rm -f $${subdir}/[mM]akefile*[.-]in $${subdir}/[mM]akefile ; \
-               rm -f  $${subdir}/ChangeLog* ; \
-             done) ; \
+         [ -d $${dest} ] && \
+           [ `(cd $${dest} && /bin/pwd)` = `(cd $${dir} && /bin/pwd)` ] && \
+           continue ; \
+         rm -rf $${dest} ; \
+         umask 022; ${MKDIR_P} $${dest} ; \
+         (echo "Copying $${dir} to $${dest}..." ; \
+          (cd $${dir}; tar -chf - . ) \
+            | (cd $${dest}; umask 022; \
+               tar -xvf - && cat > /dev/null) || exit 1; \
+          find $${dest} -exec chown $${installuser} {} ';' ;\
+          for subdir in `find $${dest} -type d -print` ; do \
+            chmod a+rx $${subdir} ; \
+            rm -f  $${subdir}/.gitignore ; \
+            rm -f  $${subdir}/.arch-inventory ; \
+            rm -f  $${subdir}/.DS_Store ; \
+            rm -f  $${subdir}/\#* ; \
+            rm -f  $${subdir}/.\#* ; \
+            rm -f  $${subdir}/*~ ; \
+            rm -f  $${subdir}/*.orig ; \
+            [ "$${dir}" != "${srcdir}/etc" ] && \
+             rm -f $${subdir}/[mM]akefile*[.-]in $${subdir}/[mM]akefile ; \
+            rm -f  $${subdir}/ChangeLog* ; \
+          done) ; \
        done
        -rm -f $(DESTDIR)${lispdir}/subdirs.el
        $(srcdir)/update-subdirs $(DESTDIR)${lispdir}
@@ -571,6 +574,7 @@ install-arch-indep: mkdir info install-etc
        subdir=$(DESTDIR)${datadir}/emacs/site-lisp ; \
          ${write_subdir} || true
        -unset CDPATH; \
+       umask 022; ${MKDIR_P} $(DESTDIR)${docdir} ; \
        if [ `(cd ./etc; /bin/pwd)` != `(cd $(DESTDIR)${docdir}; /bin/pwd)` ]; \
        then \
           fullversion=`./src/emacs --version | sed -n '1 s/GNU Emacs *//p'`; \
@@ -595,6 +599,7 @@ install-arch-indep: mkdir info install-etc
                ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \
            done) \
        else true; fi
+       umask 022; ${MKDIR_P} $(DESTDIR)${infodir}
        -unset CDPATH; \
        thisdir=`/bin/pwd`; \
        if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \
@@ -603,8 +608,7 @@ install-arch-indep: mkdir info install-etc
           if [ -f dir ]; then true; \
           else \
             (cd $${thisdir}; \
-             ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir; \
-             chmod a+r $(DESTDIR)${infodir}/dir); \
+             ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir) ; \
           fi; \
           info_misc=`cd $${thisdir}/doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \
           cd ${srcdir}/info ; \
@@ -613,7 +617,6 @@ install-arch-indep: mkdir info install-etc
              for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \
               (cd $${thisdir}; \
                ${INSTALL_DATA} ${srcdir}/info/$$f $(DESTDIR)${infodir}/$$f); \
-               chmod a+r $(DESTDIR)${infodir}/$$f; \
                if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
                  rm -f $(DESTDIR)${infodir}/$$f.gz; \
                  ${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \
@@ -624,12 +627,12 @@ install-arch-indep: mkdir info install-etc
           done); \
        else true; fi
        -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS}
+       umask 022; ${MKDIR_P} $(DESTDIR)${man1dir}
        thisdir=`/bin/pwd`; \
        cd ${mansrcdir}; \
        for page in *.1; do \
          (cd $${thisdir}; \
           ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${page}; \
-          chmod a+r $(DESTDIR)${man1dir}/$${page}; \
           if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
             rm -f $(DESTDIR)${man1dir}/$${page}.gz; \
             ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${page}; \
@@ -641,16 +644,16 @@ install-etc:
        umask 022; ${MKDIR_P} $(DESTDIR)${desktopdir}
        ${INSTALL_DATA} ${srcdir}/etc/emacs.desktop \
          $(DESTDIR)${desktopdir}/emacs.desktop
-       thisdir=`/bin/pwd` ; \
+       thisdir=`/bin/pwd`; \
        cd ${iconsrcdir} || exit 1; umask 022 ; \
        for dir in */*/apps */*/mimetypes; do \
          [ -d $${dir} ] || continue ; \
          ( cd $${thisdir}; ${MKDIR_P} ${icondir}/$${dir} ) ; \
          for icon in $${dir}/*.*; do \
            [ -r $${icon} ] || continue ; \
-           ( cd $${thisdir} ; \
+           ( cd $${thisdir}; \
              ${INSTALL_DATA} ${iconsrcdir}/$${icon} ${icondir}/$${icon} ) \
-           || exit 1 ; \
+           || exit 1; \
          done ; \
        done
 
@@ -658,24 +661,13 @@ install-etc:
 ### have separate target here instead of including it in
 ### `install-arch-indep'.  People who extracted LEIM files after they
 ### installed Emacs itself can install only LEIM files by this target.
-install-leim: leim/Makefile mkdir
+install-leim: leim/Makefile
        cd leim && $(MAKE) $(MFLAGS) install
 
 ### Build Emacs and install it, stripping binaries while installing them.
 install-strip:
        $(MAKE) $(MFLAGS) INSTALL_STRIP=-s install
 
-### Build some of the directories we're going to install Emacs in.
-### We set the umask so that any created directories are world-readable.
-### FIXME it would be good to warn about non-standard permissions of
-### pre-existing directories, but that does not seem easy.
-mkdir: FRC
-       umask 022 ; \
-       $(MKDIR_P) $(DESTDIR)${datadir} ${COPYDESTS} \
-         $(DESTDIR)${infodir} $(DESTDIR)${man1dir} \
-         $(DESTDIR)${bindir} $(DESTDIR)${docdir} $(DESTDIR)${libexecdir} \
-         $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'`
-
 ### Delete all the installed files that the `install' target would
 ### create (but not the noninstalled files such as `make all' would create).
 ###