GNU Make release 4.0.
diff --git a/ChangeLog b/ChangeLog
index eccd211..5fcf273 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2013-10-09  Paul Smith  <psmith@gnu.org>
+
+	Version 4.0 released.
+
+	* configure.ac: Updated for the release.
+	* NEWS: Updated for the release.
+
+	* maintMakefile (tag-release): New target to add a Git tag.
+	* read.c (eval): Typo fix.
+	* ChangeLog.1: Typo fixes.
+	* w32/subproc/sub_proc.c (process_cleanup): Typo fix.
+
 2013-10-07  Eli Zaretskii  <eliz@gnu.org>
 
 	* w32/compat/posixfcn.c (tmpfile): Move declaration of h before
diff --git a/NEWS b/NEWS
index d967e69..2227a35 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
 GNU make NEWS                                               -*-indented-text-*-
   History of user-visible changes.
-  1 Oct 2013
+  09 Oct 2013
 
 See the end of this file for copyrights and conditions.
 
@@ -9,7 +9,7 @@
 See the README file and the GNU make manual for instructions for
 reporting bugs.
 
-Version 3.99.93
+Version 4.0 (09 Oct 2013)
 
 A complete list of bugs fixed in this version is available here:
 
diff --git a/configure.ac b/configure.ac
index bda7627..d73dd8c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@
 # You should have received a copy of the GNU General Public License along with
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_INIT([GNU make],[3.99.93],[bug-make@gnu.org])
+AC_INIT([GNU make],[4.0],[bug-make@gnu.org])
 
 AC_PREREQ([2.62])
 
diff --git a/maintMakefile b/maintMakefile
index 1836629..12150a8 100644
--- a/maintMakefile
+++ b/maintMakefile
@@ -2,6 +2,8 @@
 # only if you have the full copy of the GNU make sources from the Git
 # tree, not a dist copy.
 
+GPG_FINGERPRINT := 6338B6D4
+
 # We like mondo-warnings!
 AM_CFLAGS += -Wall -Wextra -Wdeclaration-after-statement -Wshadow -Wpointer-arith -Wbad-function-cast
 
@@ -244,6 +246,17 @@
 	fi
 
 ## ------------------------- ##
+## Make release targets.     ##
+## ------------------------- ##
+
+tag-release:
+	case '$(VERSION)' in \
+	    (*.*.9*) message=" candidate" ;; \
+	    (*)      message= ;; \
+	esac; \
+	$(GIT) tag -m "GNU Make release$$message $(VERSION)" -u '$(GPG_FINGERPRINT)' '$(VERSION)'
+
+## ------------------------- ##
 ## GNU FTP upload artifacts. ##
 ## ------------------------- ##
 
@@ -252,7 +265,7 @@
 # you're SOL! :)
 
 GPG = gpg
-GPGFLAGS = -u 6338B6D4
+GPGFLAGS = -u $(GPG_FINGERPRINT)
 
 DIST_ARCHIVES_SIG = $(addsuffix .sig,$(DIST_ARCHIVES))
 DIST_ARCHIVES_DIRECTIVE = $(addsuffix .directive.asc,$(DIST_ARCHIVES))
diff --git a/tests/test_driver.pl b/tests/test_driver.pl
index ee74db4..2f83270 100644
--- a/tests/test_driver.pl
+++ b/tests/test_driver.pl
@@ -480,11 +480,6 @@
             $status = "FAILED ($tests_passed/$tests_run passed)";
         }
 
-        elsif ($tests_run == 0) {
-            # Nothing was done!!
-            $status = "FAILED (no tests found!)";
-        }
-
         elsif ($code == -1) {
             # Skipped... not supported
             $status = "N/A";
@@ -498,6 +493,11 @@
             $status = "FAILED ($tests_passed/$tests_run passed)";
         }
 
+        elsif ($tests_run == 0) {
+            # Nothing was done!!
+            $status = "FAILED (no tests found!)";
+        }
+
         elsif ($tests_run > $tests_passed) {
             # Lose!
             $status = "FAILED ($tests_passed/$tests_run passed)";