Add support for updating the GNU make web pages.
authorPaul Smith <psmith@gnu.org>
Sun, 13 Oct 2013 18:42:23 +0000 (14:42 -0400)
committerPaul Smith <psmith@gnu.org>
Sun, 13 Oct 2013 20:48:22 +0000 (16:48 -0400)
Add makefile rules for updating the http://www.gnu.org/software/make
web pages, including the online GNU make manual.

README.git
doc/.gitignore
maintMakefile

index b83ae3219187c4c818c87677df0d7043ee0aadc1..132f760b6b508173762bd33962c429298d07e8d6 100644 (file)
@@ -162,29 +162,43 @@ Steps to Release
 ----------------
 
 Here are the things that need to be done (in more or less this order)
-before making an official release:
+before making an official release.  If something breaks such that you need to
+change code, be sure to start over again sufficiently that everything is
+consistent (that's why we don't finalize the Git tag, etc. until the end).
 
   * Update the configure.ac file with the new release number.
+  * Update the EDITION value in the doc/make.texi file.
   * Update the NEWS file with the release number and date.
+  * Ensure the Savannah bug list URL in the NEWS file uses the correct
+    "Fixed Release" ID number.
+  * Run "make distcheck" to be sure it all works.
+  * Run "make update-www" to get a copy of the GNU make web pages
+  * Update the web page boilerplate if necessary
+  * Run "make gendocs" (requires gnulib) to generate the manual files for
+    the GNU make web pages.
+  * Follow the directions from gendocs for the web page repository
+  * run "make tag-release" to create a Git tag for the release
+  * Push everything:
+    git push --tags origin master
+
+Manage the Savannah project for GNU make:
+
   * In Savannah modify the "Value", "Rank", and "Description" values for the
     current "SCM" entry in both "Component Version" and "Fix Release" fields
     to refer to the new release, for "Bugs" and "Patches".
-  * Update the Savannah bug list URL in the NEWS file to use the correct
-    "Fixed Release" ID number.
   * In Savannah create a new entry for the "Component Version" and "Fix
     Release" fields:
       - Value: SCM
       - Rank:  20
       - Descr: Fixed in Git; will be available in the next version of Make.
-  * Run "make distcheck" to be sure it all works.
-  * git tag -u <GPGID> <VER> where GPGID is my GPG key fingerprint,
-    and VER is the release version.
-  * Push everything:
-    git push --tags origin master
   * Create the new release in the Savannah "Bugs" Administration for
     both the "Component Version" and "Fixed Release" fields.
-  * Create the new release in the Savannah "Patches" Administration for
-    the "Fixed Release" field.
+
+Start the next release:
+
+  * Update configure.ac and add a ".90" to the release number.
+  * Update the NEWS file with a new section for the release / date.
+  * Update the Savannah URL for the bugs fixed in the NEWS section.
 
 
 Publishing a Package
index 230ef46795600bdd8099475de3e137885e457ac9..ca68d2d13a826d8e9034a127cfe85be9252a362a 100644 (file)
@@ -1,3 +1,5 @@
+manual/
+gendocs_template
 fdl.texi
 make-stds.texi
 stamp-vti
index da5361f2c7571866c7f1a376639062afdbbdf719..0e0de8fb5b25d41a4efeec29411b6006347259e2 100644 (file)
@@ -267,10 +267,54 @@ po-check:
          rm -f $@-1 $@-2; \
        fi
 
+
+## --------------- ##
+## Generate docs.  ##
+## --------------- ##
+
+.PHONY: update-www gendocs
+
+CVS = cvs
+
+makeweb-repo = $(USER)@cvs.sv.gnu.org:/web/make
+gnuweb-repo = :pserver:anonymous@cvs.sv.gnu.org:/web/www
+gnuweb-dir = www/server/standards
+
+# Get the GNU make web page boilerplate etc.
+update-makeweb:
+       [ -d '$(MAKEWEBDIR)' ] || mkdir -p '$(MAKEWEBDIR)'
+       [ -d '$(MAKEWEBDIR)'/CVS ] \
+           && { cd '$(MAKEWEBDIR)' && $(CVS) update; } \
+           || { mkdir -p '$(dir $(MAKEWEBDIR))' && cd '$(dir $(MAKEWEBDIR))' \
+                && $(CVS) -d $(makeweb-repo) co -d '$(notdir $(MAKEWEBDIR))' make; }
+
+# Get the GNU web page boilerplate etc.
+update-gnuweb:
+       [ -d '$(GNUWEBDIR)' ] || mkdir -p '$(GNUWEBDIR)'
+       [ -d '$(GNUWEBDIR)/$(gnuweb-dir)'/CVS ] \
+           && { cd '$(GNUWEBDIR)/$(gnuweb-dir)' && $(CVS) update; } \
+           || { cd '$(GNUWEBDIR)' && $(CVS) -d $(gnuweb-repo) co '$(gnuweb-dir)'; }
+
+gendocs: update-gnuweb update-makeweb
+       cp $(GNULIBDIR)/doc/gendocs_template doc
+       cd doc \
+         && rm -rf doc/manual \
+         && $(GNULIBDIR)/build-aux/gendocs.sh --email '$(BUGLIST)' \
+               make 'GNU Make Manual'
+       find '$(MAKEWEBDIR)'/manual \( -name CVS -prune \) -o \( -name '[!.]*' -type f -exec rm -f '{}' \; \)
+       cp -r doc/manual '$(MAKEWEBDIR)'
+       @echo 'Status of $(MAKEWEBDIR) repo:' && cd '$(MAKEWEBDIR)' \
+           && cvs -q -n update \
+           && echo '- cvs add <new files>' \
+           && echo '- cvs remove <deleted files>' \
+           && echo '- cvs commit' \
+           && echo '- cvs tag make-$(subst .,-,$(VERSION))'
+
 ## ------------------------- ##
 ## Make release targets.     ##
 ## ------------------------- ##
 
+.PHONY: tag-release
 tag-release:
        case '$(VERSION)' in \
            (*.*.9*) message=" candidate" ;; \