]> code.delx.au - gnu-emacs/blobdiff - Makefile.in
Don't overflow if computing approximate percentage
[gnu-emacs] / Makefile.in
index eec6d313524908db6a4105b97b46b2eb7e0ebe58..3cfbe5704ff8eb9a2fd98bcca3fa4c921270e98e 100644 (file)
@@ -290,7 +290,7 @@ SUBDIR = $(NTDIR) lib lib-src src lisp
 
 # The subdir makefiles created by config.status.
 SUBDIR_MAKEFILES_IN = @SUBDIR_MAKEFILES_IN@
-SUBDIR_MAKEFILES = `echo $(SUBDIR_MAKEFILES_IN:.in=) | sed 's|$(srcdir)/||g'`
+SUBDIR_MAKEFILES = $(patsubst ${srcdir}/%,%,${SUBDIR_MAKEFILES_IN:.in=})
 
 # Subdirectories to install, and where they'll go.  lib-src's and nt's
 # makefiles know how to install them, so we don't do that here.
@@ -492,18 +492,17 @@ write_subdir=if [ -f "$${subdir}/subdirs.el" ]; \
 install-arch-dep: src install-arch-indep install-etcdoc install-$(NTDIR)
        umask 022; ${MKDIR_P} "$(DESTDIR)${bindir}"
        $(MAKE) -C lib-src install
-       if test "${ns_self_contained}" = "no"; then \
-         ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)" || exit 1 ; \
-         chmod 1755 "$(DESTDIR)${bindir}/$(EMACSFULL)" || true; \
-         if test "x${NO_BIN_LINK}" = x; then \
-           rm -f "$(DESTDIR)${bindir}/$(EMACS)" ; \
-           cd "$(DESTDIR)${bindir}" && $(LN_S_FILEONLY) $(EMACSFULL) $(EMACS); \
-         fi; \
-       else \
-         subdir=${ns_appresdir}/site-lisp; \
-         ${write_subdir} || exit 1; \
-         rm -rf ${ns_appresdir}/share; \
-       fi
+ifeq (${ns_self_contained},no)
+       ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)"
+       -chmod 755 "$(DESTDIR)${bindir}/$(EMACSFULL)"
+ifndef NO_BIN_LINK
+       rm -f "$(DESTDIR)${bindir}/$(EMACS)"
+       cd "$(DESTDIR)${bindir}" && $(LN_S_FILEONLY) $(EMACSFULL) $(EMACS)
+endif
+else
+       subdir=${ns_appresdir}/site-lisp && ${write_subdir}
+       rm -rf ${ns_appresdir}/share
+endif
 
 ### Windows-specific install target for installing programs produced
 ### in nt/, and its Posix do-nothing shadow.
@@ -831,7 +830,7 @@ clean_dirs = $(mostlyclean_dirs) nextstep
 $(foreach dir,$(clean_dirs),$(eval $(call submake_template,$(dir),clean)))
 
 clean: $(clean_dirs:=_clean)
-       for dir in test/automated; do \
+       for dir in test/automated admin/charsets; do \
          [ ! -d $$dir ] || $(MAKE) -C $$dir clean; \
        done
        -rm -f *.tmp etc/*.tmp*
@@ -856,8 +855,10 @@ distclean_dirs = $(clean_dirs) leim lisp
 
 $(foreach dir,$(distclean_dirs),$(eval $(call submake_template,$(dir),distclean)))
 
+maybeclean_dirs = test/automated admin/grammars admin/unidata admin/charsets
+
 distclean: $(distclean_dirs:=_distclean)
-       for dir in test/automated admin/grammars admin/unidata; do \
+       for dir in ${maybeclean_dirs}; do \
          [ ! -d $$dir ] || $(MAKE) -C $$dir distclean; \
        done
        ${top_distclean}
@@ -868,7 +869,7 @@ distclean: $(distclean_dirs:=_distclean)
 $(foreach dir,$(distclean_dirs),$(eval $(call submake_template,$(dir),bootstrap-clean)))
 
 bootstrap-clean: $(distclean_dirs:=_bootstrap-clean)
-       for dir in test/automated admin/grammars admin/unidata; do \
+       for dir in ${maybeclean_dirs}; do \
          [ ! -d $$dir ] || $(MAKE) -C $$dir bootstrap-clean; \
        done
        [ ! -f config.log ] || mv -f config.log config.log~
@@ -896,7 +897,7 @@ maintainer_clean_dirs = src leim lisp
 $(foreach dir,$(maintainer_clean_dirs),$(eval $(call submake_template,$(dir),maintainer-clean)))
 
 maintainer-clean: bootstrap-clean $(maintainer_clean_dirs:=_maintainer-clean)
-       for dir in test/automated admin/grammars admin/unidata; do \
+       for dir in ${maybeclean_dirs}; do \
          [ ! -d $$dir ] || $(MAKE) -C $$dir maintainer-clean; \
        done
        ${top_maintainer_clean}
@@ -907,10 +908,12 @@ maintainer-clean: bootstrap-clean $(maintainer_clean_dirs:=_maintainer-clean)
 ### it deletes backup and autosave files too.
 ### Note that we abuse this in some subdirectories (eg leim),
 ### to delete some generated files that are slow to rebuild.
-$(foreach dir,$(SUBDIR),$(eval $(call submake_template,$(dir),extraclean)))
+extraclean_dirs = ${NTDIR} lib-src src leim \
+  admin/charsets admin/grammars admin/unidata
+
+$(foreach dir,$(extraclean_dirs),$(eval $(call submake_template,$(dir),extraclean)))
 
-## FIXME this is busted because most of these do not have extraclean rules.
-extraclean: $(SUBDIR:=_extraclean)
+extraclean: $(extraclean_dirs:=_extraclean)
        ${top_maintainer_clean}
        -rm -f config-tmp-*
        -rm -f *~ \#*
@@ -1112,19 +1115,21 @@ unchanged-history-files:
        x=$$(git diff-files --name-only $(CHANGELOG_N) $(emacslog)) && \
          test -z "$$x"
 
+# Regular expression that matches the newest commit covered by a ChangeLog.
+new_commit_regexp = ^commit [0123456789abcdef]* (inclusive)
+
 # Copy newer commit messages to the start of the ChangeLog history file,
 # and consider them to be older.
 change-history-nocommit: master-branch-is-current unchanged-history-files
        -rm -f ChangeLog.tmp
        $(MAKE) ChangeLog CHANGELOG=ChangeLog.tmp
-       (sed '/^See ChangeLog.[0-9]* for earlier/,$$d' <ChangeLog.tmp && cat $(CHANGELOG_N)) \
-         >$(CHANGELOG_N).tmp
+       sed '/^This file records repository revisions/,$$d' \
+         ChangeLog.tmp >$(CHANGELOG_N).tmp
+       new_commit_line=`grep '$(new_commit_regexp)' ChangeLog.tmp` && \
+       sed 's/$(new_commit_regexp).*/'"$$new_commit_line/" \
+         $(CHANGELOG_N) >>$(CHANGELOG_N).tmp
        rm ChangeLog.tmp
-       new_origin=$$(git log --pretty=format:%H HEAD^!) && \
-       sed 's/^\(gen_origin=\).*/\1'"$$new_origin/" \
-         < $(emacslog) > $(emacslog).tmp && chmod +x $(emacslog).tmp
        mv $(CHANGELOG_N).tmp $(CHANGELOG_N)
-       mv $(emacslog).tmp $(emacslog)
 
 change-history: change-history-nocommit
        $(MAKE) $@-commit