X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/b1fc99ed2d7d17b81279db46f4e24537a41e13d1..774b9a602e825a67746ab90cc42ac015e4a26da5:/Makefile.in diff --git a/Makefile.in b/Makefile.in index 9d26595eed..cd60e9ee3a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -3,7 +3,7 @@ # DIST: that first. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -70,7 +70,7 @@ CDPATH= CC=@CC@ CPP=@CPP@ -C_SWITCH_SYSTEM=@c_switch_system@ +C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@ ALLOCA=@ALLOCA@ LN_S=@LN_S@ CFLAGS=@CFLAGS@ @@ -139,12 +139,12 @@ MAN_PAGES=b2m.1 ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \ # since there are now many packages documented with the texinfo # system, it is inappropriate to imply that it is part of Emacs. infodir=@infodir@ -INFO_FILES=ada-mode autotype calc ccmode cl dbus dired-x ebrowse ediff \ - efaq eintr elisp emacs emacs-mime epa erc eshell eudc \ - flymake forms gnus idlwave info mairix-el message mh-e \ - newsticker nxml-mode org pcl-cvs pgg rcirc reftex remember \ - sasl sc ses sieve speedbar tramp vip viper widget woman \ - smtpmail url +INFO_FILES=ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse \ + ede ediff edt eieio efaq eintr elisp emacs emacs-mime epa erc \ + eshell eudc flymake forms gnus idlwave info mairix-el \ + message mh-e newsticker nxml-mode org pcl-cvs pgg rcirc \ + reftex remember sasl sc semantic ses sieve smtpmail speedbar \ + tramp url vip viper widget woman # Directory for local state files for all programs. localstatedir=@localstatedir@ @@ -320,6 +320,12 @@ src: lib-src FRC # We need to build `emacs' in `src' to compile the *.elc files in `lisp'. lisp: src +# These targets should be "${SUBDIR} without `src'". +lib-src lisp: Makefile FRC + cd $@; $(MAKE) all $(MFLAGS) \ + CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ + LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' + # Pass to src/Makefile.in an additional BOOTSTRAPEMACS variable which # is either set to bootstrap-emacs (in case bootstrap-emacs has not been # constructed yet) or the empty string (otherwise). @@ -329,12 +335,16 @@ lisp: src # file src/foo.c forces dumping a new bootstrap-emacs, then re-byte-compiling # all preloaded elisp files, and only then dump the actual src/emacs, which # is not wrong, but is overkill in 99.99% of the cases. -${SUBDIR}: Makefile FRC +src: Makefile FRC boot=bootstrap-emacs$(EXEEXT); \ - if [ -x "src/$$boot" ]; then boot=""; fi; \ + if [ ! -x "src/$$boot" ]; then \ + cd $@; $(MAKE) all $(MFLAGS) \ + CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ + LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot"; \ + fi; cd $@; $(MAKE) all $(MFLAGS) \ CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ - LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot" + LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="" blessmail: Makefile src FRC cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) \ @@ -393,6 +403,8 @@ $(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS) install: all install-arch-indep install-arch-dep install-leim blessmail @true +MV_DIRS = for i in $$dir; do rm -fr `basename "$$i"` ; mv "$$i" . ; done + ### 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. @@ -414,10 +426,11 @@ install-arch-dep: mkdir done if test "${ns_appdir}" != ""; then \ ( cd ${ns_appresdir} ; \ - if test -d share/emacs ; then mv -f share/emacs/*/* . ; fi ; \ - if test -d share/info ; then mv -f share/info . ; fi ; \ + if test -d share/emacs ; then dir=share/emacs/*/*; $(MV_DIRS); fi;\ + if test -d share/info ; then dir=share/info; $(MV_DIRS) ; fi ; \ rm -fr share ) ; \ - ( cd ${ns_appbindir}/libexec ; mv -f emacs/*/*/* . ; rm -fr emacs ) ; \ + ( cd ${ns_appbindir}/libexec ; dir=emacs/*/*/* ; $(MV_DIRS); \ + rm -fr emacs ) ; \ ( cd ${ns_appbindir}/bin ; rm -f emacs emacs-23* ; \ ln -sf ../libexec/* .) ; \ else true ; fi @@ -474,13 +487,16 @@ install-arch-indep: mkdir info install-etc rm -rf $${subdir}/RCS ; \ rm -rf $${subdir}/CVS ; \ rm -f $${subdir}/.cvsignore ; \ + 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* ; \ + rm -f $${subdir}/[mM]akefile*.c $${subdir}/[mM]akefile*[.-]in \ + $${subdir}/[mM]akefile ; \ rm -f $${subdir}/ChangeLog* ; \ rm -f $${subdir}/dired.todo ; \ done) ; \ @@ -511,7 +527,7 @@ install-arch-indep: mkdir info install-etc then \ docfile="DOC-$${fullversion}"; \ else \ - docfile="DOC-${version}*"; \ + docfile="DOC"; \ fi; \ echo "Copying etc/$${docfile} to $(DESTDIR)${docdir} ..." ; \ (cd ./etc; tar -chf - $${docfile}) \ @@ -572,7 +588,7 @@ install-arch-indep: mkdir info install-etc ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ done; \ else true; fi - -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} $(DESTDIR)${datadir}/emacs/site-lisp ${COPYDESTS} $(DESTDIR)${infodir} + -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS} thisdir=`/bin/pwd`; \ cd ${mansrcdir}; \ for page in ${MAN_PAGES}; do \ @@ -608,11 +624,10 @@ install-strip: ### we may be creating several layers of directories (for example, ### /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. +### 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 - if [ -d $(DESTDIR)${datadir} ]; then true; else \ - $(srcdir)/mkinstalldirs $(DESTDIR)${datadir}; \ - chmod a+r $(DESTDIR)${datadir};\ - fi icondirs= ; \ for dir in $(iconsrcdir)/*/*/apps $(iconsrcdir)/*/*/mimetypes; do \ if [ -d $${dir} ]; then \ @@ -620,7 +635,9 @@ mkdir: FRC fi ; \ done ; \ icondirs=`echo "$${icondirs}" | sed 's,$(srcdir)/etc/images/icons,$(DESTDIR)${icondir},g'` ; \ - $(srcdir)/mkinstalldirs ${COPYDESTS} $(DESTDIR)${infodir} $(DESTDIR)${man1dir} \ + umask 022 ; \ + $(srcdir)/mkinstalldirs $(DESTDIR)${datadir} ${COPYDESTS} \ + $(DESTDIR)${infodir} $(DESTDIR)${man1dir} \ $(DESTDIR)${bindir} $(DESTDIR)${docdir} $(DESTDIR)${libexecdir} \ $(DESTDIR)${datadir}/emacs/site-lisp \ $(DESTDIR)${datadir}/emacs/${version}/site-lisp \ @@ -628,8 +645,7 @@ mkdir: FRC $(DESTDIR)${desktopdir} $${icondirs} ### Delete all the installed files that the `install' target would -### create (but not the noninstalled files such as `make all' would -### create). +### create (but not the noninstalled files such as `make all' would create). ### ### Don't delete the lisp and etc directories if they're in the source tree. uninstall: @@ -651,7 +667,9 @@ uninstall: esac ; \ fi ; \ done - (cd $(DESTDIR)${archlibdir} && rm -f fns-*) + if [ -d $(DESTDIR)${archlibdir} ]; then \ + (cd $(DESTDIR)${archlibdir} && rm -f fns-*) \ + fi -rm -rf $(DESTDIR)${libexecdir}/emacs/${version} (cd $(DESTDIR)${infodir} && \ for elt in $(INFO_FILES); do \ @@ -792,21 +810,26 @@ dist: .PHONY: info dvi dist check html info-real: - -(cd doc/emacs; $(MAKE) $(MFLAGS) info) - -(cd doc/misc; $(MAKE) $(MFLAGS) info) - -(cd doc/lispref; $(MAKE) $(MFLAGS) info) - -(cd doc/lispintro; $(MAKE) $(MFLAGS) info) + (cd doc/emacs; $(MAKE) $(MFLAGS) info) + (cd doc/misc; $(MAKE) $(MFLAGS) info) + (cd doc/lispref; $(MAKE) $(MFLAGS) info) + (cd doc/lispintro; $(MAKE) $(MFLAGS) info) force-info: -# Note that man/Makefile knows how to -# put the info files in $(srcdir), +# Note that man/Makefile knows how to put the info files in $(srcdir), # so we can do ok running make in the build dir. +# This used to have a clause that exited with an error if MAKEINFO = no. +# But it is inappropriate to do so without checking if makeinfo is +# actually needed - it is not if the info files are up-to-date. (Bug#3982) +# Only the doc/*/Makefiles can decide that, so we let those rules run +# and give a standard error if makeinfo is needed but missing. +# While it would be nice to give a more detailed error message, that +# would require changing every rule in doc/ that builds an info file, +# and it's not worth it. This case is only relevant if you download a +# release, then change the .texi files. info: force-info @if test "$(MAKEINFO)" = "off"; then \ echo "Configured --without-makeinfo, not building manuals" ; \ - elif test "$(MAKEINFO)" = "no"; then \ - echo "makeinfo is missing - cannot build manuals" ; \ - exit 1 ; \ else \ $(MAKE) $(MFLAGS) info-real ; \ fi