# etc. to be built without running into similar recursion problems.
MAKEFILE_NAME = Makefile
$(MAKEFILE_NAME): config.status $(srcdir)/src/config.in \
- $(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN) $(srcdir)/src/lisp.mk
+ $(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN)
MAKE='$(MAKE)' ./config.status
# Don't erase these files if make is interrupted while refreshing them.
$(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*
$(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}
$(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~
$(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}
### 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 *~ \#*
.PHONY: master-branch-is-current unchanged-history-files
CHANGELOG = ChangeLog
-emacslog = $(srcdir)/build-aux/gitlog-to-emacslog
+emacslog = build-aux/gitlog-to-emacslog
# The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ...,
# ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for
# the newest (highest-numbered) ChangeLog history file.
# Convert git commit log to ChangeLog file. make-dist uses this.
# I guess this is PHONY so it always updates?
ChangeLog:
- $(AM_V_GEN)srcprefix=$(srcdir)/ \
- $(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX)
+ $(AM_V_GEN)cd $(srcdir) && \
+ ./$(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX)
# Check that we are in a good state for changing history.
master-branch-is-current:
change-history-nocommit: master-branch-is-current unchanged-history-files
-rm -f ChangeLog.tmp
$(MAKE) ChangeLog CHANGELOG=ChangeLog.tmp
- (sed '/^;; [L]ocal Variables:/,$$d' <ChangeLog.tmp && cat $(CHANGELOG_N)) \
+ (sed '/^See ChangeLog.[0-9]* for earlier/,$$d' <ChangeLog.tmp && cat $(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
+ < $(emacslog) > $(emacslog).tmp && chmod +x $(emacslog).tmp
mv $(CHANGELOG_N).tmp $(CHANGELOG_N)
mv $(emacslog).tmp $(emacslog)