automatically skip tests of disabled tools

--- GNUmakefile
+++ GNUmakefile
@@ -455,6 +458,21 @@ deb:
 .PHONY: check-package
 .PHONY: check-install
 
+# Variables from the make env we pass down to the test scripts.
+CHECK_VARS = \
+	BUILDDIR=$(BUILDDIR) \
+	RGBDEF=$(RGBDEF) \
+	BUILD_FIASCO=$(BUILD_FIASCO) \
+	JASPERLIB="$(JASPERLIB)" \
+	JBIGLIB="$(JBIGLIB)" \
+	JPEGLIB="$(JPEGLIB)" \
+	PNGLIB="$(PNGLIB)" \
+	TIFFLIB="$(TIFFLIB)" \
+	URTLIB="$(URTLIB)" \
+	X11LIB="$(X11LIB)" \
+	XML2_LIBS="$(XML2_LIBS)" \
+	ZLIB="$(ZLIB)"
+
 # Test files in source tree.
 
 check-tree : BUILDBINDIRS :=./analyzer \
@@ -525,10 +543,10 @@ resultdir-backup: FORCE
 
 check-tree: $(TESTRANDOM) resultdir-backup
 	cd $(RESULTDIR); \
+	  $(CHECK_VARS) \
 	  CHECK_TYPE=tree \
-	  PBM_TEST_PATH=$(PBM_TEST_PATH) BUILDDIR=$(BUILDDIR) \
+	  PBM_TEST_PATH=$(PBM_TEST_PATH) \
 	  LD_LIBRARY_PATH=$(PBM_LIBRARY_PATH):${LD_LIBRARY_PATH} \
-	  RGBDEF=$(RGBDEF) \
 	  $(SRCDIR)/test/Execute-Tests 2>&1
 
 # Execute-Tests needs to know BUILDDIR in order to locate testrandom.
@@ -545,19 +563,18 @@ check: check-package
 
 check-package: $(TESTRANDOM) resultdir-backup
 	cd $(RESULTDIR); \
+	  $(CHECK_VARS) \
 	  CHECK_TYPE=package \
-	  PBM_TEST_PATH=$(PBM_TEST_PATH) BUILDDIR=$(BUILDDIR) \
+	  PBM_TEST_PATH=$(PBM_TEST_PATH) \
 	  LD_LIBRARY_PATH=$(PBM_LIBRARY_PATH):${LD_LIBRARY_PATH} \
-	  RGBDEF=$(RGBDEF) \
 	  $(SRCDIR)/test/Execute-Tests 2>&1
 
 
 # Check after install
 check-install: $(TESTRANDOM) resultdir-backup
 	cd $(RESULTDIR); \
+	  $(CHECK_VARS) \
 	  CHECK_TYPE=install \
-	  BUILDDIR=$(BUILDDIR) \
-	  RGBDEF=$(RGBDEF) \
 	  $(SRCDIR)/test/Execute-Tests 2>&1
 
 
--- test/all-in-place.test
+++ test/all-in-place.test
@@ -367,11 +367,62 @@ ordinary_testprogs="\
   zeisstopnm \
 "
 
+enabled_testprog() {
+    case $1 in
+      fiascotopnm|\
+      pnmtofiasco)
+        [ "${BUILD_FIASCO}" = "N" ] && return 1 ;;
+
+      jpeg2ktopam|\
+      pamtojpeg2k)
+        [ "${JASPERLIB}" = "NONE" ] && return 1 ;;
+
+      jbigtopnm|\
+      pnmtojbig)
+        [ "${JBIGLIB}" = "NONE" ] && return 1 ;;
+
+      jpegtopnm|\
+      pnmtojpeg|\
+      ppmtojpeg)
+        [ "${JPEGLIB}" = "NONE" ] && return 1 ;;
+
+      pamtopng|\
+      pngtopam|\
+      pnmtopng)
+        [ "${PNGLIB}" = "NONE" ] && return 1 ;;
+
+      svgtopam)
+        [ "${PNGLIB}" = "NONE" ] && return 1
+        [ "${XML2_LIBS}" = "NONE" ] && return 1
+        ;;
+
+      pamtotiff|\
+      pnmtotiffcmyk|\
+      tifftopnm)
+        [ "${TIFFLIB}" = "NONE" ] && return 1 ;;
+
+      pnmtorle|\
+      rletopnm)
+        [ "${URTLIB}" = "NONE" ] && return 1 ;;
+
+      pamx)
+        [ "${X11LIB}" = "NONE" ] && return 1 ;;
+    esac
+
+    return 0
+}
+
 # The string "fiascotopnm" has to be filtered out by egrep for fiascotopnm
 # has a slightly different version report format.
 
 for i in $ordinary_testprogs
   do
+    # Stub out programs that aren't built.
+    if ! enabled_testprog "$i"; then
+      echo "$i: ok"
+      continue
+    fi
+
     $i --version  2>&1 | \
     egrep -v -e fiascotopnm -e \
     "(Using libnetpbm|Compiled|(BSD|SYSV|MSDOS|AMIGA) defined|RGB_?ENV=)" \
--- test/fiasco-roundtrip.test
+++ test/fiasco-roundtrip.test
@@ -2,6 +2,10 @@
 # This script tests: pnmtofiasco fiascotopnm
 # Also requires: pnmpad
 
+if [ "${BUILD_FIASCO}" = "N" ]; then
+  exit 80
+fi
+
 # Should print 215556145 102615
 
 pnmpad --black --bottom 1 --left 1 testimg.ppm | \
--- test/jbig-roundtrip.test
+++ test/jbig-roundtrip.test
@@ -2,6 +2,9 @@
 # This script tests: pnmtojbig jbigtopnm
 # Also requires: pamchannel pamtopnm
 
+if [ "${JBIGLIB}" = "NONE" ]; then
+  exit 80
+fi
 
 # Test 1.  Should print 2425386270 41
 pnmtojbig testgrid.pbm | jbigtopnm | cksum
--- test/legacy-names.test
+++ test/legacy-names.test
@@ -94,8 +94,30 @@ ordinary_testprogs="\
   ppmtouil \
 "
 
+enabled_testprog() {
+    case $1 in
+      ppmtojpeg)
+        [ "${JPEGLIB}" = "NONE" ] && return 1 ;;
+
+      pamrgbatopng|\
+      pngtopnm)
+        [ "${PNGLIB}" = "NONE" ] && return 1 ;;
+
+      pnmtotiff)
+        [ "${TIFFLIB}" = "NONE" ] && return 1 ;;
+    esac
+
+    return 0
+}
+
 for i in $ordinary_testprogs
   do
+    # Stub out programs that aren't built.
+    if ! enabled_testprog "$i"; then
+      echo "$i: ok"
+      continue
+    fi
+
     $i --version  2>&1 | \
     egrep -v \
     "(Using libnetpbm|Compiled|(BSD|SYSV|MSDOS|AMIGA) defined|RGB_?ENV=)" \
--- test/png-roundtrip.test
+++ test/png-roundtrip.test
@@ -6,6 +6,10 @@
 ## If this test fails and pnm-roundtrip2.test succeeds, it indicates
 ## some problem with pnmtopng.
 
+if [ "${PNGLIB}" = "NONE" ]; then
+  exit 80
+fi
+
 # Test 1.  Should print 1926073387 101484 18 times
 for flags in "" -interlace \
   -gamma=.45 \
--- test/png-roundtrip2.test
+++ test/png-roundtrip2.test
@@ -9,6 +9,10 @@
 ## If both tests fail, the likely cause is a problem with pngtopam.
 ## It is also possible that there is some problem in libpng.
 
+if [ "${PNGLIB}" = "NONE" ]; then
+  exit 80
+fi
+
 # Test 1.  Should print 1926073387 101484 twice
 for flags in "" -gamma=.45
   do
--- test/ps-roundtrip.test
+++ test/ps-roundtrip.test
@@ -8,6 +8,10 @@
 ## (1) zlib was not linked.
 ## (2) ghostscript is not available.
 
+if [ "${ZLIB}" = "NONE" ]; then
+  exit 80
+fi
+
 tmpdir=${tmpdir:-/tmp}
 
 # pstopnm does not use libnetpbm functions for output.
--- test/tiff-roundtrip.test
+++ test/tiff-roundtrip.test
@@ -2,6 +2,9 @@
 # This script tests: pamtotiff tifftopnm
 # Also requires:
 
+if [ "${TIFFLIB}" = "NONE" ]; then
+  exit 80
+fi
 
 # Failure message
 ## Second test fails if Netpbm was built without the flate library
--- test/utahrle-roundtrip.test
+++ test/utahrle-roundtrip.test
@@ -2,6 +2,9 @@
 # This script tests: pnmtorle rletopnm
 # Also requires: pamchannel pamtopnm
 
+if [ "${URTLIB}" = "NONE" ]; then
+  exit 80
+fi
 
 #Test 1.  Should produce 1571496937 33838, cksum of testimg.red
 pamchannel -infile=testimg.ppm -tupletype="GRAYSCALE" 0 | pamtopnm | \
