PKG Build -- Generate ChangeLog files during package build.
authorSteve Youngs <steve@sxemacs.org>
Wed, 1 Apr 2020 13:35:58 +0000 (23:35 +1000)
committerSteve Youngs <steve@sxemacs.org>
Wed, 1 Apr 2020 13:35:58 +0000 (23:35 +1000)
* XEmacs.rules (CHANGELOG_XEMACS): New.  Set to 'ChangeLog.XEmacs'
if that file exists in the package directory, unset otherwise.
(ChangeLog): New target for generating the package's ChangeLog.
(package-info): Make 'ChangeLog' a dependency.
(clean): Also delete ChangeLog, it's a generated file now.
(binkit-1): Install the ChangeLog.XEmacs file if it exists.

* .gitignore: Package ChangeLogs are now generated.  Ignore them.

Signed-off-by: Steve Youngs <steve@sxemacs.org>
.gitignore
XEmacs.rules

index 996c3d4..dddccea 100644 (file)
@@ -32,9 +32,11 @@ Local.rules
 package-info
 pdepends.mk
 macro.list
+# Static log files died out decades ago
+mule-packages/*/ChangeLog
+xemacs-packages/*/ChangeLog
 # AUCTeX has a good number of generated documents
 xemacs-packages/auctex/CHANGES
-xemacs-packages/auctex/ChangeLog
 xemacs-packages/auctex/FAQ
 xemacs-packages/auctex/INSTALL
 xemacs-packages/auctex/PROBLEMS.preview
index 0a1f55c..508beaa 100644 (file)
@@ -130,6 +130,9 @@ SOURCE_FILES_TO_COPY = $(ELCS) $(ELCS:.elc=.el) \
 
 # Non configurable portion follows
 
+# Old XEmacs ChangeLog
+CHANGELOG_XEMACS = $(wildcard ChangeLog.XEmacs)
+
 MANIFEST = pkginfo/MANIFEST.$(PACKAGE)
 # This might be a sublevel PWD; that is intentional.  Use
 # ${XEMACS_PACKAGES_BASE} for the toplevel directory.
@@ -419,6 +422,8 @@ compile:: check-mule
 # but not otherwise.
 ifneq ($(PACKAGE),)
 compile:: $(AUTOLOAD_PATH)/_pkg.el
+
+compile:: ChangeLog
 endif
 
 ## first, the byte-compile the files generated earlier (auto-autoloads.el,
@@ -450,7 +455,8 @@ genclean:
 
 clean:: mostlyclean
        rm -f $(GENERATED_ELCS) $(EARLY_GENERATED_ELCS) $(ELCS) $(ELCS_1) \
-       $(HTML_FILES) $(INFO_FILES) $(DEPENDS_FILE_NAME) $(EXTRA_DEPENDENCIES)
+       $(HTML_FILES) $(INFO_FILES) $(DEPENDS_FILE_NAME) $(EXTRA_DEPENDENCIES) \
+       ChangeLog
 
 # distclean is what you use when making a distribution.  everything that
 # can get rebuilt should be killed.  everything.
@@ -542,7 +548,7 @@ endif
 
 # Make the $(pkg_tar).gz first, then the $(pkg_tar).bz2
 package-info : package-info.in Makefile $(AUTOLOAD_PATH)/_pkg.el \
-               $(pkg_tar).gz $(pkg_tar).bz2
+               ChangeLog $(pkg_tar).gz $(pkg_tar).bz2
        #  #### See if we can't CLEAN this up
        $(XEMACS_BATCH_DIRTY) \
                -l package-info.elc -f batch-update-package-info \
@@ -608,6 +614,10 @@ ifneq ($(PACKAGE_SUPPRESS),)
        @echo ")" >> $(AUTOLOAD_PATH)/_pkg.el
 endif
 
+ChangeLog:
+       @echo Generating ChangeLog
+       -@git log --shortstat . > $@
+
 setup-info: #  #### See if we can't CLEAN this up
        $(XEMACS_BATCH_DIRTY) -l $(PACKAGE_NET_PACKAGES) \
                -l $(PACKAGE_INFO) \
@@ -765,6 +775,9 @@ ifneq ($(PACKAGE),)
        $(RCOPY) $(addprefix $(PWD)/, ChangeLog $(SOURCE_FILES_TO_COPY) $(EXTRA_SOURCES)) \
          $(STAGING)/lisp/$(PACKAGE)
 endif
+ifneq ($(CHANGELOG_XEMACS),)
+       $(RCOPY) $(addprefix $(PWD)/, ChangeLog.XEmacs) $(STAGING)/lisp/$(PACKAGE)
+endif
 ifneq ($(ELCS_1),)
        $(RCOPY) $(addprefix $(PWD)/, $(ELCS_1_FILES)) $(STAGING)/lisp/$(ELCS_1_DEST)
 endif
@@ -890,7 +903,7 @@ endif
        ls -1 $(MANIFEST) > $(MANIFEST))
 ifneq ($(PACKAGE),)
        @(cd $(STAGING); \
-       ls -1 lisp/$(PACKAGE)/ChangeLog \
+       ls -1 lisp/$(PACKAGE)/ChangeLog* \
                $(patsubst %, lisp/$(PACKAGE)/%, $(notdir $(SOURCE_FILES_TO_COPY))) \
                $(patsubst %, lisp/$(PACKAGE)/%, $(notdir $(EXTRA_SOURCES))) \
                >> $(MANIFEST))