From b7be7c0913d27d483e1dc490b5ade301dc95730e Mon Sep 17 00:00:00 2001
From: Pierre Labastie <pierre.labastie@neuf.fr>
Date: Tue, 15 Sep 2020 10:42:18 +0200
Subject: [PATCH] Do not fail if ps2pdf is present and the .pdf files exist

If ps2pdf is not present on the system, the build
fails even if the .pdf files exist. The reason is that the .ps
files are created on the fly, and they are more recent than the
distributed .pdf. Makefile then runs "false <something>", which
obviously fails.

Setting PS2PDF to "true" is not a solution because we do not
want to ignore when the .pdf files are really absent.

This patch makes running $(PS2PDF) conditional, but still
imposes the .pdf files to be generated when running "make dist".
---
 cmd/dot/Makefile.am         | 10 +++++++++-
 cmd/dotty/Makefile.am       | 10 +++++++++-
 cmd/edgepaint/Makefile.am   | 10 +++++++++-
 cmd/gvedit/Makefile.am      |  8 +++++++-
 cmd/gvmap/Makefile.am       | 10 +++++++++-
 cmd/gvpr/Makefile.am        | 11 ++++++++--
 cmd/lefty/Makefile.am       | 10 +++++++++-
 cmd/lneato/Makefile.am      | 10 +++++++++-
 cmd/mingle/Makefile.am      | 10 +++++++++-
 cmd/smyrna/Makefile.am      | 10 +++++++++-
 cmd/tools/Makefile.am       | 40 ++++++++++++++++++++++++++++++++++++-
 configure.ac                |  1 +
 contrib/diffimg/Makefile.am | 10 +++++++++-
 contrib/prune/Makefile.am   | 10 +++++++++-
 lib/cdt/Makefile.am         | 10 +++++++++-
 lib/cgraph/Makefile.am      | 10 +++++++++-
 lib/expr/Makefile.am        | 10 +++++++++-
 lib/gvc/Makefile.am         |  9 ++++++++-
 lib/gvpr/Makefile.am        | 10 +++++++++-
 lib/inkpot/Makefile.am      | 10 +++++++++-
 lib/pack/Makefile.am        | 10 +++++++++-
 lib/pathplan/Makefile.am    | 10 +++++++++-
 lib/xdot/Makefile.am        | 10 +++++++++-
 plugin/xlib/Makefile.am     | 10 +++++++++-
 tclpkg/gdtclft/Makefile.am  |  8 +++++++-
 tclpkg/gv/Makefile.am       |  7 ++++++-
 tclpkg/tcldot/Makefile.am   |  8 +++++++-
 tclpkg/tkspline/Makefile.am |  8 +++++++-
 28 files changed, 262 insertions(+), 28 deletions(-)

diff --git a/cmd/dot/Makefile.am b/cmd/dot/Makefile.am
index 9c9084cc5..1e04ba15d 100644
--- a/cmd/dot/Makefile.am
+++ b/cmd/dot/Makefile.am
@@ -45,6 +45,12 @@ endif
 man_MANS = dot.1 osage.1 patchwork.1
 pdf_DATA = dot.1.pdf osage.1.pdf patchwork.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 dot_SOURCES = dot.c no_builtins.c
 dot_CPPFLAGS = $(AM_CPPFLAGS) -DDEMAND_LOADING=1
 dot_LDADD = \
@@ -67,6 +73,7 @@ uninstall-hook:
 	(cd $(DESTDIR)$(bindir); for i in $(linkedprogram); do rm -f $$i; done;)
 	(cd $(DESTDIR)$(libdir); rm -f config;)
 
+if HAVE_PS2PDF
 dot.1.pdf: dot.1.ps
 	@PS2PDF@ $< $@
 
@@ -84,6 +91,7 @@ patchwork.1.pdf: patchwork.1.ps
 
 patchwork.1.ps: $(srcdir)/patchwork.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 dot_static_SOURCES = dot.c dot_builtins.c
 dot_static_CPPFLAGS = $(AM_CPPFLAGS) -DDEMAND_LOADING=0
@@ -140,6 +148,6 @@ dot_builtins_LDADD += $(top_builddir)/plugin/lasi/libgvplugin_lasi.la $(LASI_LIB
 endif
 
 
-EXTRA_DIST = dot.1 dot.1.pdf osage.1 osage.1.pdf patchwork.1 patchwork.1.pdf dot.vcxproj*
+EXTRA_DIST = dot.1 osage.1 patchwork.1 $(pdf) dot.vcxproj*
 
 DISTCLEANFILES = dot.1.pdf osage.1.pdf dot.1.ps osage.1.ps patchwork.1.pdf patchwork.1.ps
diff --git a/cmd/dotty/Makefile.am b/cmd/dotty/Makefile.am
index 2e1512346..be39bcfb2 100644
--- a/cmd/dotty/Makefile.am
+++ b/cmd/dotty/Makefile.am
@@ -17,6 +17,12 @@ endif
 man_MANS = dotty.1
 pdf_DATA = dotty.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 if WITH_WIN32
 dotty_SOURCES = mswin32/dotty.c
 dotty_LDADD = -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32
@@ -26,13 +32,15 @@ dotty: $(top_srcdir)/cmd/dotty/dotty.sh
 	chmod +x dotty
 endif
 
+if HAVE_PS2PDF
 dotty.1.pdf: dotty.1.ps
 	@PS2PDF@ $< $@
 
 dotty.1.ps: $(srcdir)/dotty.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(lefty_DATA) $(man_MANS) $(pdf_DATA) \
+EXTRA_DIST = $(lefty_DATA) $(man_MANS) $(pdf) \
 	dotty.bsh dotty.ksh dotty.sh \
 	notes mswin32 dotty.vcxproj*
 
diff --git a/cmd/edgepaint/Makefile.am b/cmd/edgepaint/Makefile.am
index 21b103cf6..b803ad36b 100644
--- a/cmd/edgepaint/Makefile.am
+++ b/cmd/edgepaint/Makefile.am
@@ -18,6 +18,12 @@ bin_PROGRAMS = edgepaint
 man_MANS = edgepaint.1
 pdf_DATA = edgepaint.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 edgepaint_SOURCES = edgepaintmain.c
 edgepaint_CPPFLAGS = $(AM_CPPFLAGS)
 edgepaint_LDADD = \
@@ -33,12 +39,14 @@ edgepaint_LDADD = \
 	$(top_builddir)/lib/cdt/libcdt.la \
 	$(ANN_LIBS) -lstdc++ -lm
 
+if HAVE_PS2PDF
 edgepaint.1.pdf: edgepaint.1.ps
 	@PS2PDF@ $< $@
 
 edgepaint.1.ps: $(srcdir)/edgepaint.1
 	@GROFF@ -e -Tps -man -t $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) edgepaint.vcxproj*
+EXTRA_DIST = $(man_MANS) $(pdf) edgepaint.vcxproj*
 
 DISTCLEANFILES = $(pdf_DATA) edgepaint.1.ps
diff --git a/cmd/gvedit/Makefile.am b/cmd/gvedit/Makefile.am
index 355c5ea7c..200095af8 100644
--- a/cmd/gvedit/Makefile.am
+++ b/cmd/gvedit/Makefile.am
@@ -7,13 +7,17 @@ pdfdir = $(pkgdatadir)/doc/pdf
 gveditdir = $(pkgdatadir)/gvedit
 
 mans = gvedit.1
+if HAVE_PS2PDF
 pdfs = gvedit.1.pdf
+else
+pdfs = ERROR_NO_PS2PDF
+endif
 
 if WITH_QT
 bin_PROGRAMS = gvedit
 gvedit_DATA = attrs.txt
 man_MANS = $(mans)
-pdf_DATA = $(pdfs)
+pdf_DATA = gvedit.1.pdf
 endif
 
 AM_CPPFLAGS = \
@@ -57,11 +61,13 @@ qMakefile: gvedit.pro
 attrs.txt: $(top_srcdir)/doc/infosrc/attrs
 	cp $(top_srcdir)/doc/infosrc/attrs attrs.txt
 
+if HAVE_PS2PDF
 gvedit.1.pdf: gvedit.1.ps
 	@PS2PDF@ $< $@
 
 gvedit.1.ps: $(srcdir)/gvedit.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 EXTRA_DIST = gvedit.vcxproj* gvedit.pro.in mdi.qrc $(mans) $(pdfs)
 
diff --git a/cmd/gvmap/Makefile.am b/cmd/gvmap/Makefile.am
index 96773cc5a..181b70737 100644
--- a/cmd/gvmap/Makefile.am
+++ b/cmd/gvmap/Makefile.am
@@ -22,6 +22,12 @@ endif
 man_MANS = gvmap.1 cluster.1 gvmap.sh.1
 pdf_DATA = gvmap.1.pdf cluster.1.pdf gvmap.sh.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 noinst_HEADERS = make_map.h power.h country_graph_coloring.h
 
 gvmap_SOURCES = gvmap.c make_map.c power.c country_graph_coloring.c
@@ -58,6 +64,7 @@ cluster_LDADD = \
 
 gvmap.sh :
 
+if HAVE_PS2PDF
 gvmap.1.pdf: gvmap.1.ps
 	@PS2PDF@ $< $@
 
@@ -75,7 +82,8 @@ gvmap.sh.1.pdf: gvmap.sh.1.ps
 
 gvmap.sh.1.ps: $(srcdir)/gvmap.sh.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) gvmap.vcxproj*
+EXTRA_DIST = $(man_MANS) $(pdf) gvmap.vcxproj*
 
 DISTCLEANFILES = $(pdf_DATA) gvmap.1.ps cluster.1.ps gvmap.sh.1.ps
diff --git a/cmd/gvpr/Makefile.am b/cmd/gvpr/Makefile.am
index 62fe61fb6..c4604de1e 100644
--- a/cmd/gvpr/Makefile.am
+++ b/cmd/gvpr/Makefile.am
@@ -26,18 +26,25 @@ endif
 man_MANS = gvpr.1
 pdf_DATA = gvpr.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 gvpr_SOURCES = gvprmain.c
 gvpr_CPPFLAGS = $(AM_CPPFLAGS)
 gvpr_LDADD = $(top_builddir)/lib/gvpr/libgvpr.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la \
 	$(top_builddir)/lib/cdt/libcdt.la
 
+if HAVE_PS2PDF
 gvpr.1.pdf: gvpr.1.ps
 	@PS2PDF@ $< $@
 
 gvpr.1.ps: $(srcdir)/gvpr.1
 	@GROFF@ -Tps -man -t $< >$@
-
+endif
 gvpr_static_SOURCES = gvprmain.c
 gvpr_static_CPPFLAGS = $(AM_CPPFLAGS)
 gvpr_static_LDADD = \
@@ -51,6 +58,6 @@ gvpr_static_LDADD = \
 	$(top_builddir)/lib/cdt/libcdt_C.la \
        	$(MATH_LIBS)
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) lib gvpr.vcxproj*
+EXTRA_DIST = $(man_MANS) $(pdf) lib gvpr.vcxproj*
 
 DISTCLEANFILES = $(pdf_DATA) gvpr.1.ps
diff --git a/cmd/lefty/Makefile.am b/cmd/lefty/Makefile.am
index ba17b87b1..39278b2c2 100644
--- a/cmd/lefty/Makefile.am
+++ b/cmd/lefty/Makefile.am
@@ -56,6 +56,12 @@ endif
 man_MANS = lefty.1
 pdf_DATA = lefty.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 lefty_DATA = lefty.psp
 
 lefty_SOURCES = code.c common.c display.c exec.c g.c gfxview.c internal.c \
@@ -88,12 +94,14 @@ lefty_LDADD = $(top_builddir)/cmd/lefty/dot2l/libdot2l.la \
 	-lXt -lXmu -lXext -lX11 @SOCKET_LIBS@ @MATH_LIBS@
 endif
 
+if HAVE_PS2PDF
 lefty.1.pdf: lefty.1.ps
 	@PS2PDF@ $< $@
 
 lefty.1.ps: $(srcdir)/lefty.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(lefty_DATA) $(man_MANS) $(pdf_DATA) lefty.vcxproj* colors.txt aix_mods cs2l/*
+EXTRA_DIST = $(lefty_DATA) $(man_MANS) $(pdf) lefty.vcxproj* colors.txt aix_mods cs2l/*
 
 DISTCLEANFILES = $(pdf_DATA) lefty.1.ps
diff --git a/cmd/lneato/Makefile.am b/cmd/lneato/Makefile.am
index 87fa80885..d5372b243 100644
--- a/cmd/lneato/Makefile.am
+++ b/cmd/lneato/Makefile.am
@@ -14,6 +14,12 @@ endif
 man_MANS = lneato.1
 pdf_DATA = lneato.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 AM_CFLAGS = -DLNEATO
 if WITH_WIN32
 lneato_SOURCES = ${top_srcdir}/cmd/dotty/mswin32/dotty.c
@@ -24,13 +30,15 @@ lneato: ${top_srcdir}/cmd/lneato/lneato.sh
 	chmod +x lneato
 endif
 
+if HAVE_PS2PDF
 lneato.1.pdf: lneato.1.ps
 	@PS2PDF@ $< $@
 
 lneato.1.ps: $(srcdir)/lneato.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) lneato.bsh lneato.ksh lneato.sh \
+EXTRA_DIST = $(man_MANS) $(pdf) lneato.bsh lneato.ksh lneato.sh \
 	mswin32 lneato.vcxproj*
 
 DISTCLEANFILES = lneato $(pdf_DATA) lneato.1.ps
diff --git a/cmd/mingle/Makefile.am b/cmd/mingle/Makefile.am
index 32c209784..0b8cbc86e 100644
--- a/cmd/mingle/Makefile.am
+++ b/cmd/mingle/Makefile.am
@@ -20,6 +20,12 @@ endif
 man_MANS = mingle.1
 pdf_DATA = mingle.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 mingle_SOURCES = minglemain.c
 mingle_CPPFLAGS = $(AM_CPPFLAGS)
 mingle_LDADD = \
@@ -34,12 +40,14 @@ mingle_LDADD = \
 	$(top_builddir)/lib/cdt/libcdt.la \
 	$(ANN_LIBS) -lstdc++ -lm 
 
+if HAVE_PS2PDF
 mingle.1.pdf: mingle.1.ps
 	@PS2PDF@ $< $@
 
 mingle.1.ps: $(srcdir)/mingle.1
 	@GROFF@ -e -Tps -man -t $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) mingle.vcxproj*
+EXTRA_DIST = $(man_MANS) $(pdf) mingle.vcxproj*
 
 DISTCLEANFILES = $(pdf_DATA) mingle.1.ps
diff --git a/cmd/smyrna/Makefile.am b/cmd/smyrna/Makefile.am
index 4b53c9e1f..e140a6aa8 100644
--- a/cmd/smyrna/Makefile.am
+++ b/cmd/smyrna/Makefile.am
@@ -35,6 +35,12 @@ man_MANS += smyrna.1
 pdf_DATA += smyrna.1.pdf
 endif
 
+if HAVE_PS2PDF
+pdf = smyrna.1.pdf
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 noinst_HEADERS = arcball.h draw.h glexpose.h \
 	glmotion.h gltemplate.h gui/appmouse.h gui/callbacks.h \
 	hotkeymap.h materials.h md5.h polytess.h selectionfuncs.h \
@@ -80,13 +86,15 @@ smyrna_static_LDADD = $(top_builddir)/lib/cgraph/libcgraph_C.la \
 		$(top_builddir)/lib/neatogen/libneatogen_C.la \
 		$(GTK_LIBS) $(GLUT_LIBS) $(GTKGLEXT_LIBS) $(GLADE_LIBS) $(X_LIBS) $(EXPAT_LIBS) $(GTS_LIBS) $(MATH_LIBS)
 
+if HAVE_PS2PDF
 smyrna.1.pdf: smyrna.1.ps
 	@PS2PDF@ $< $@
 
 smyrna.1.ps: $(srcdir)/smyrna.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = smyrna.vcxproj* $(man_MANS) $(pdf_DATA) smyrna.1
+EXTRA_DIST = smyrna.vcxproj* $(man_MANS) $(pdf) smyrna.1
 
 DISTCLEANFILES = $(pdf_DATA) smyrna.1.ps
 
diff --git a/cmd/tools/Makefile.am b/cmd/tools/Makefile.am
index 7d17cb1bd..381eea3e6 100644
--- a/cmd/tools/Makefile.am
+++ b/cmd/tools/Makefile.am
@@ -32,6 +32,12 @@ pdf_DATA = gc.1.pdf gvcolor.1.pdf gxl2gv.1.pdf acyclic.1.pdf \
 	   unflatten.1.pdf gvpack.1.pdf dijkstra.1.pdf \
 	   bcomps.1.pdf mm2gv.1.pdf gvgen.1.pdf gml2gv.1.pdf graphml2gv.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 install-data-hook:
 	(cd $(DESTDIR)$(man1dir); rm -f gv2gxl.1; $(LN_S) gxl2gv.1 gv2gxl.1;)
 	(cd $(DESTDIR)$(pdfdir); rm -f gv2gxl.1.pdf; $(LN_S) gxl2gv.1.pdf gv2gxl.1.pdf;)
@@ -61,11 +67,13 @@ gxl2gv_LDADD = \
 	$(top_builddir)/lib/cgraph/libcgraph.la \
 	$(top_builddir)/lib/cdt/libcdt.la @EXPAT_LIBS@ 
 
+if HAVE_PS2PDF
 gxl2gv.1.pdf: gxl2gv.1.ps
 	@PS2PDF@ $< $@
 
 gxl2gv.1.ps: $(srcdir)/gxl2gv.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 sccmap_SOURCES = sccmap.c
 
@@ -73,11 +81,13 @@ sccmap_LDADD = \
 	$(top_builddir)/lib/ingraphs/libingraphs_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la @EXPAT_LIBS@ 
 
+if HAVE_PS2PDF
 sccmap.1.pdf: sccmap.1.ps
 	@PS2PDF@ $< $@
 
 sccmap.1.ps: $(srcdir)/sccmap.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 ccomps_SOURCES = ccomps.c
 
@@ -85,11 +95,13 @@ ccomps_LDADD = \
 	$(top_builddir)/lib/ingraphs/libingraphs_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la
 
+if HAVE_PS2PDF
 ccomps.1.pdf: ccomps.1.ps
 	@PS2PDF@ $< $@
 
 ccomps.1.ps: $(srcdir)/ccomps.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 #tred2_SOURCES = tred2.c
 #
@@ -105,11 +117,13 @@ tred_LDADD = \
 	$(top_builddir)/lib/ingraphs/libingraphs_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la
 
+if HAVE_PS2PDF
 tred.1.pdf: tred.1.ps
 	@PS2PDF@ $< $@
 
 tred.1.ps: $(srcdir)/tred.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 unflatten_SOURCES = unflatten.c
 
@@ -117,11 +131,13 @@ unflatten_LDADD = \
 	$(top_builddir)/lib/ingraphs/libingraphs_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la
 
+if HAVE_PS2PDF
 unflatten.1.pdf: unflatten.1.ps
 	@PS2PDF@ $< $@
 
 unflatten.1.ps: $(srcdir)/unflatten.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 acyclic_SOURCES = acyclic.c
 
@@ -129,11 +145,13 @@ acyclic_LDADD = \
 	$(top_builddir)/lib/ingraphs/libingraphs_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la
 
+if HAVE_PS2PDF
 acyclic.1.pdf: acyclic.1.ps
 	@PS2PDF@ $< $@
 
 acyclic.1.ps: $(srcdir)/acyclic.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 nop_SOURCES = nop.c
 
@@ -141,11 +159,13 @@ nop_LDADD = \
 	$(top_builddir)/lib/ingraphs/libingraphs_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la
 
+if HAVE_PS2PDF
 nop.1.pdf: nop.1.ps
 	@PS2PDF@ $< $@
 
 nop.1.ps: $(srcdir)/nop.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 gvcolor_SOURCES = gvcolor.c colxlate.c colortbl.h
 
@@ -153,11 +173,13 @@ gvcolor_LDADD = \
 	$(top_builddir)/lib/ingraphs/libingraphs_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la
 
+if HAVE_PS2PDF
 gvcolor.1.pdf: gvcolor.1.ps
 	@PS2PDF@ $< $@
 
 gvcolor.1.ps: $(srcdir)/gvcolor.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 bcomps_SOURCES = bcomps.c
 
@@ -165,11 +187,13 @@ bcomps_LDADD = \
 	$(top_builddir)/lib/ingraphs/libingraphs_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la
 
+if HAVE_PS2PDF
 bcomps.1.pdf: bcomps.1.ps
 	@PS2PDF@ $< $@
 
 bcomps.1.ps: $(srcdir)/bcomps.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 gc_SOURCES = gc.c
 
@@ -177,11 +201,13 @@ gc_LDADD = \
 	$(top_builddir)/lib/ingraphs/libingraphs_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la
 
+if HAVE_PS2PDF
 gc.1.pdf: gc.1.ps
 	@PS2PDF@ $< $@
 
 gc.1.ps: $(srcdir)/gc.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 gvpack_SOURCES = gvpack.c
 gvpack_CPPFLAGS = $(AM_CPPFLAGS) -DDEMAND_LOADING=0
@@ -208,11 +234,13 @@ endif
 
 #$(PANGOCAIRO_LIBS) $(PANGOFT2_LIBS) $(GTS_LIBS) $(EXPAT_LIBS) $(Z_LIBS) $(_LIBS) $(SOCKET_LIBS) $(IPSEPCOLA_LIBS) $(MATH_LIBS)
 
+if HAVE_PS2PDF
 gvpack.1.pdf: gvpack.1.ps
 	@PS2PDF@ $< $@
 
 gvpack.1.ps: $(srcdir)/gvpack.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 mm2gv_SOURCES = mm2gv.c matrix_market.c mmio.c
 
@@ -223,11 +251,13 @@ mm2gv_LDADD = \
     $(top_builddir)/lib/pathplan/libpathplan_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la @MATH_LIBS@
 
+if HAVE_PS2PDF
 mm2gv.1.pdf: mm2gv.1.ps
 	@PS2PDF@ $< $@
 
 mm2gv.1.ps: mm2gv.1
 	@GROFF@ -Tps -man -e -t $< >$@
+endif
 
 gv2gml_SOURCES = gv2gml.c
 
@@ -259,11 +289,13 @@ gml2gv_LDADD = \
 	$(top_builddir)/lib/cgraph/libcgraph.la \
 	$(top_builddir)/lib/cdt/libcdt.la @MATH_LIBS@
 
+if HAVE_PS2PDF
 gml2gv.1.pdf: gml2gv.1.ps
 	@PS2PDF@ $< $@
 
 gml2gv.1.ps: gml2gv.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 graphml2gv_SOURCES = graphml2gv.c
 
@@ -272,11 +304,13 @@ graphml2gv_LDADD = \
 	$(top_builddir)/lib/cgraph/libcgraph.la \
 	$(top_builddir)/lib/cdt/libcdt.la @EXPAT_LIBS@ 
 
+if HAVE_PS2PDF
 graphml2gv.1.pdf: graphml2gv.1.ps
 	@PS2PDF@ $< $@
 
 graphml2gv.1.ps: $(srcdir)/graphml2gv.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 dijkstra_SOURCES = dijkstra.c
 
@@ -285,24 +319,28 @@ dijkstra_LDADD = \
 	$(top_builddir)/lib/cgraph/libcgraph.la \
 	$(top_builddir)/lib/cdt/libcdt.la
 
+if HAVE_PS2PDF
 dijkstra.1.pdf: dijkstra.1.ps
 	@PS2PDF@ $< $@
 
 dijkstra.1.ps: $(srcdir)/dijkstra.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 gvgen_SOURCES = gvgen.c graph_generator.c
 
 gvgen_LDADD = \
 	$(top_builddir)/lib/cgraph/libcgraph.la @MATH_LIBS@
 
+if HAVE_PS2PDF
 gvgen.1.pdf: gvgen.1.ps
 	@PS2PDF@ $< $@
 
 gvgen.1.ps: $(srcdir)/gvgen.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) bcomps.vcxproj* \
+EXTRA_DIST = $(man_MANS) $(pdf) bcomps.vcxproj* \
 	acyclic.vcxproj* bcomps.vcxproj* ccomps.vcxproj* dijkstra.vcxproj* gc.vcxproj* \
     gvcolor.vcxproj* gvgen.vcxproj* gvpack.vcxproj* gxl2gv.vcxproj* \
 	mm2gv.vcxproj* nop.vcxproj* sccmap.vcxproj* tred.vcxproj* unflatten.vcxproj* \
diff --git a/configure.ac b/configure.ac
index 644d44770..2ce6f5759 100644
--- a/configure.ac
+++ b/configure.ac
@@ -286,6 +286,7 @@ AC_CHECK_PROG(EGREP,egrep,egrep,false)
 AC_CHECK_PROG(GROFF,groff,groff,false)
 AC_CHECK_PROG(PS2PDF,ps2pdf,ps2pdf,false)
 AC_CHECK_PROG(PS2PDF,pstopdf,pstopdf,false)
+AM_CONDITIONAL(HAVE_PS2PDF,[test "x$PS2PDF" != xfalse])
 
 PKG_PROG_PKG_CONFIG
 
diff --git a/contrib/diffimg/Makefile.am b/contrib/diffimg/Makefile.am
index 382360e14..c4c3ae1c1 100644
--- a/contrib/diffimg/Makefile.am
+++ b/contrib/diffimg/Makefile.am
@@ -10,6 +10,12 @@ pdfdir = $(pkgdatadir)/doc/pdf
 man_MANS = diffimg.1
 pdf_DATA = diffimg.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 if WITH_LIBGD
 bin_PROGRAMS = diffimg
 endif
@@ -18,11 +24,13 @@ diffimg_SOURCES = diffimg.c
 
 diffimg_LDADD = @GDLIB_LIBS@ @MATH_LIBS@
 
+if HAVE_PS2PDF
 diffimg.1.pdf: diffimg.1.ps
 	@PS2PDF@ $< $@
 
 diffimg.1.ps: $(srcdir)/diffimg.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 GRAPH = "digraph G { hello -> world }"
 
@@ -34,5 +42,5 @@ test: diffimg
 	if `./diffimg hello1.png hello2.png >test2.png`;then echo same;else echo different;fi
 
 CLEANFILES = *.png
-EXTRA_DIST = diffimg.vcxproj* diffimg.1 diffimg.1.pdf
+EXTRA_DIST = diffimg.vcxproj* diffimg.1 $(pdf)
 DISTCLEANFILES = diffimg.1.pdf diffimg.1.ps
diff --git a/contrib/prune/Makefile.am b/contrib/prune/Makefile.am
index 74cc45209..61985b249 100644
--- a/contrib/prune/Makefile.am
+++ b/contrib/prune/Makefile.am
@@ -14,19 +14,27 @@ noinst_HEADERS = generic_list.h
 man_MANS = prune.1
 pdf_DATA = prune.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 prune_SOURCES = generic_list.c prune.c
 
 prune_LDADD = $(top_builddir)/lib/ingraphs/libingraphs_C.la \
 	$(top_builddir)/lib/cgraph/libcgraph.la \
 	$(top_builddir)/lib/cdt/libcdt.la
 
+if HAVE_PS2PDF
 prune.1.pdf: prune.1.ps
 	@PS2PDF@ $< $@
 
 prune.1.ps: prune.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) README test.gv prune.vcxproj*
+EXTRA_DIST = $(man_MANS) $(pdf) README test.gv prune.vcxproj*
 
 
 DISTCLEANFILES = $(pdf_DATA) prune.1.ps
diff --git a/lib/cdt/Makefile.am b/lib/cdt/Makefile.am
index e6e345778..a99f8a6c9 100644
--- a/lib/cdt/Makefile.am
+++ b/lib/cdt/Makefile.am
@@ -17,6 +17,12 @@ man_MANS = cdt.3
 pdf_DATA = cdt.3.pdf
 pkgconfig_DATA = libcdt.pc
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 libcdt_C_la_SOURCES = dtclose.c dtdisc.c dtextract.c dtflatten.c \
 	dthash.c dtlist.c dtmethod.c dtopen.c dtrenew.c dtrestore.c dtsize.c \
 	dtstat.c dtstrhash.c dttree.c dtview.c dtwalk.c
@@ -24,12 +30,14 @@ libcdt_C_la_SOURCES = dtclose.c dtdisc.c dtextract.c dtflatten.c \
 libcdt_la_LDFLAGS = -version-info $(CDT_VERSION) -no-undefined
 libcdt_la_SOURCES = $(libcdt_C_la_SOURCES)
 
+if HAVE_PS2PDF
 cdt.3.pdf: cdt.3.ps
 	@PS2PDF@ $< $@
 
 cdt.3.ps: $(srcdir)/cdt.3
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) cdt.vcxproj*
+EXTRA_DIST = $(man_MANS) $(pdf) cdt.vcxproj*
 
 DISTCLEANFILES = $(pdf_DATA) cdt.3.ps
diff --git a/lib/cgraph/Makefile.am b/lib/cgraph/Makefile.am
index 688498093..bb8ff7d9f 100644
--- a/lib/cgraph/Makefile.am
+++ b/lib/cgraph/Makefile.am
@@ -16,6 +16,12 @@ pkgconfig_DATA = libcgraph.pc
 man_MANS = cgraph.3
 pdf_DATA = cgraph.3.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 libcgraph_C_la_SOURCES = agerror.c agxbuf.c apply.c attr.c edge.c \
 	flatten.c graph.c grammar.y id.c imap.c io.c mem.c node.c \
 	obj.c pend.c rec.c refstr.c scan.l subg.c utils.c write.c
@@ -32,13 +38,15 @@ scan.c: $(top_srcdir)/lib/cgraph/scan.l
 grammar.c grammar.h: $(top_srcdir)/lib/cgraph/grammar.y
 	@YACC@ -Wno-yacc -dv --output=grammar.c $(top_srcdir)/lib/cgraph/grammar.y
 
+if HAVE_PS2PDF
 cgraph.3.pdf: cgraph.3.ps
 	@PS2PDF@ $< $@
 
 cgraph.3.ps: $(srcdir)/cgraph.3
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) cmpnd.c \
+EXTRA_DIST = $(man_MANS) $(pdf) cmpnd.c \
 	grammar.c grammar.h scan.c \
 	cgraph.vcxproj*
 
diff --git a/lib/expr/Makefile.am b/lib/expr/Makefile.am
index f022ec69d..03f3bd245 100644
--- a/lib/expr/Makefile.am
+++ b/lib/expr/Makefile.am
@@ -22,6 +22,12 @@ man_MANS = expr.3
 pdf_DATA = expr.3.pdf
 #pkgconfig_DATA = libexpr.pc
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 #### -no-undefined breaks Mac OS/X builds.
 #### libast has "extern char **environ" which remains
 ####      undefined until linked with main()
@@ -65,13 +71,15 @@ y.tab.c y.tab.h: y.output
 y.output: $(top_srcdir)/lib/expr/exparse.y
 	@YACC@ -Wno-yacc -dtv $(top_srcdir)/lib/expr/exparse.y -o y.tab.c
 
+if HAVE_PS2PDF
 expr.3.pdf: expr.3.ps
 	@PS2PDF@ $< $@
 
 expr.3.ps: $(srcdir)/expr.3
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) \
+EXTRA_DIST = $(man_MANS) $(pdf) \
 	Makefile.nmake Makefile.orig \
 	exparse.c exparse.h exop.h \
 	y.tab.c y.tab.h y.output expr.vcxproj*
diff --git a/lib/gvc/Makefile.am b/lib/gvc/Makefile.am
index bf4541b16..1e2ced00a 100644
--- a/lib/gvc/Makefile.am
+++ b/lib/gvc/Makefile.am
@@ -31,6 +31,11 @@ pkgconfig_DATA = libgvc.pc
 man_MANS = gvc.3
 pdf_DATA = gvc.3.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
 
 libgvc_C_la_SOURCES = gvrender.c gvlayout.c gvdevice.c gvloadimage.c \
 	gvcontext.c gvjobs.c gvevent.c gvplugin.c gvconfig.c \
@@ -68,12 +73,14 @@ if WITH_WIN32
 libgvc_la_LDFLAGS += -export-symbols $(top_srcdir)/lib/gvc.def
 endif
 
+if HAVE_PS2PDF
 gvc.3.pdf: gvc.3.ps
 	@PS2PDF@ $< $@
 
 gvc.3.ps: $(srcdir)/gvc.3
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) gvc.def
+EXTRA_DIST = $(man_MANS) $(pdf) gvc.def
 
 DISTCLEANFILES = $(pdf_DATA) gvc.3.ps
diff --git a/lib/gvpr/Makefile.am b/lib/gvpr/Makefile.am
index 659422bc7..3ec99cac3 100644
--- a/lib/gvpr/Makefile.am
+++ b/lib/gvpr/Makefile.am
@@ -28,6 +28,12 @@ pkgconfig_DATA = libgvpr.pc
 man_MANS = gvpr.3
 pdf_DATA = gvpr.3.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 libgvpr_C_la_SOURCES = actions.c compile.c gvpr.c gprstate.c parse.c queue.c 
 $(libgvpr_C_la_OBJECTS): gdefs.h
 libgvpr_C_la_DEPENDENCIES = \
@@ -35,11 +41,13 @@ libgvpr_C_la_DEPENDENCIES = \
 	$(top_builddir)/lib/common/libcommon_C.la \
 	$(top_builddir)/lib/ingraphs/libingraphs_C.la
 
+if HAVE_PS2PDF
 gvpr.3.pdf: gvpr.3.ps
 	@PS2PDF@ $< $@
 
 gvpr.3.ps: $(srcdir)/gvpr.3
 	@GROFF@ -Tps -man $< >$@
+endif
 
 libgvpr_la_LDFLAGS = -version-info $(GVPR_VERSION) -no-undefined
 libgvpr_la_SOURCES = $(libgvpr_C_la_SOURCES)
@@ -61,6 +69,6 @@ mkdefs$(EXEEXT):
 gdefs.h: $(top_srcdir)/lib/gvpr/gprdata mkdefs$(EXEEXT)
 	./mkdefs$(EXEEXT) gdefs.h < $(top_srcdir)/lib/gvpr/gprdata
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) gprdata mkdefs.c gdefs.h trie.c gvprlib.vcxproj*
+EXTRA_DIST = $(man_MANS) $(pdf) gprdata mkdefs.c gdefs.h trie.c gvprlib.vcxproj*
 
 DISTCLEANFILES = $(pdf_DATA) gdefs.h mkdefs$(EXEEXT) gvpr.3.ps
diff --git a/lib/inkpot/Makefile.am b/lib/inkpot/Makefile.am
index e95dd2a7f..0add98c33 100644
--- a/lib/inkpot/Makefile.am
+++ b/lib/inkpot/Makefile.am
@@ -21,6 +21,12 @@ noinst_LTLIBRARIES = libinkpot_C.la
 man_MANS = inkpot.3 inkpot.1
 pdf_DATA = inkpot.3.pdf inkpot.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 inkpot_SOURCES = inkpot.c
 inkpot_LDADD = $(top_builddir)/lib/inkpot/libinkpot.la
 
@@ -69,6 +75,7 @@ $(top_builddir)/lib/inkpot/inkpot_lib_tk.dat: inkpot_lib_tk.tcl data/xcolors.c
 $(top_builddir)/lib/inkpot/inkpot_lib_brewer.dat: inkpot_lib_brewer.tcl data/brewer_colors
 	$(TCLSH) inkpot_lib_brewer.tcl data/brewer_colors
 
+if HAVE_PS2PDF
 inkpot.1.pdf: inkpot.1.ps
 	@PS2PDF@ $< $@
 
@@ -80,10 +87,11 @@ inkpot.3.pdf: inkpot.3.ps
 
 inkpot.3.ps: inkpot.3
 	@GROFF@ -Tps -man $< >$@
+endif
 
 CLEANFILES = inkpot_lib_*.dat
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) *.tcl data/* \
+EXTRA_DIST = $(man_MANS) $(pdf) *.tcl data/* \
 	inkpot_lib_define.h inkpot_lib_value.h inkpot_lib_scheme.h inkpot_lib_string.h
 
 DISTCLEANFILES = $(pdf_DATA) \
diff --git a/lib/pack/Makefile.am b/lib/pack/Makefile.am
index a959fea8e..845f0f016 100644
--- a/lib/pack/Makefile.am
+++ b/lib/pack/Makefile.am
@@ -23,15 +23,23 @@ man_MANS = pack.3
 pdf_DATA = pack.3.pdf
 #pkgconfig_DATA = libpack.pc
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 libpack_C_la_SOURCES = ccomps.c pack.c
 
+if HAVE_PS2PDF
 pack.3.pdf: pack.3.ps
 	@PS2PDF@ $< $@
 
 pack.3.ps: $(srcdir)/pack.3
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) ptest.c
+EXTRA_DIST = $(man_MANS) $(pdf) ptest.c
 
 DISTCLEANFILES = $(pdf_DATA) pack.3.ps
 
diff --git a/lib/pathplan/Makefile.am b/lib/pathplan/Makefile.am
index 3f631f1fa..10396c793 100644
--- a/lib/pathplan/Makefile.am
+++ b/lib/pathplan/Makefile.am
@@ -21,6 +21,12 @@ pkgconfig_DATA = libpathplan.pc
 man_MANS = pathplan.3
 pdf_DATA = pathplan.3.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 libpathplan_C_la_SOURCES = cvt.c inpoly.c route.c shortest.c \
 	shortestpth.c solvers.c triang.c util.c visibility.c
 
@@ -28,12 +34,14 @@ libpathplan_la_LDFLAGS = -version-info $(PATHPLAN_VERSION) -no-undefined
 libpathplan_la_SOURCES = $(libpathplan_C_la_SOURCES)
 libpathplan_la_LIBADD = @MATH_LIBS@
 
+if HAVE_PS2PDF
 pathplan.3.pdf: pathplan.3.ps
 	@PS2PDF@ $< $@
 
 pathplan.3.ps: $(srcdir)/pathplan.3
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) path.lefty Pathplan.vcxproj* pathplan.def
+EXTRA_DIST = $(man_MANS) $(pdf) path.lefty Pathplan.vcxproj* pathplan.def
 
 DISTCLEANFILES = $(pdf_DATA) pathplan.3.ps
diff --git a/lib/xdot/Makefile.am b/lib/xdot/Makefile.am
index 40b81ff8c..75e924d32 100644
--- a/lib/xdot/Makefile.am
+++ b/lib/xdot/Makefile.am
@@ -17,17 +17,25 @@ pkgconfig_DATA = libxdot.pc
 man_MANS = xdot.3
 pdf_DATA = xdot.3.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
 libxdot_C_la_SOURCES = xdot.c
 libxdot_la_LDFLAGS = -version-info $(XDOT_VERSION) -no-undefined
 libxdot_la_SOURCES = $(libxdot_C_la_SOURCES)
 
+if HAVE_PS2PDF
 xdot.3.pdf: xdot.3.ps
 	@PS2PDF@ $< $@
 
 xdot.3.ps: $(srcdir)/xdot.3
 	@GROFF@ -Tps -man $< >$@
+endif
 
-EXTRA_DIST = $(man_MANS) $(pdf_DATA) xdot.vcxproj*
+EXTRA_DIST = $(man_MANS) $(pdf) xdot.vcxproj*
 
 DISTCLEANFILES = $(pdf_DATA) xdot.3.ps
 
diff --git a/plugin/xlib/Makefile.am b/plugin/xlib/Makefile.am
index 7767b2ab8..b09aba9aa 100644
--- a/plugin/xlib/Makefile.am
+++ b/plugin/xlib/Makefile.am
@@ -27,11 +27,19 @@ endif
 man_MANS = vimdot.1
 pdf_DATA = vimdot.1.pdf
 
+if HAVE_PS2PDF
+pdf = $(pdf_DATA)
+else
+pdf = ERROR_NO_PS2PDF
+endif
+
+if HAVE_PS2PDF
 vimdot.1.pdf: vimdot.1.ps
 	@PS2PDF@ $< $@
 
 vimdot.1.ps: $(srcdir)/vimdot.1
 	@GROFF@ -Tps -man $< >$@
+endif
 
 libgvplugin_xlib_C_la_SOURCES = \
 	gvplugin_xlib.c \
@@ -53,6 +61,6 @@ vimdot: $(top_srcdir)/plugin/xlib/vimdot.sh
 	cp $(top_srcdir)/plugin/xlib/vimdot.sh vimdot
 	chmod +x vimdot
 
-EXTRA_DIST = vimdot.sh vimdot.1 vimdot.1.pdf
+EXTRA_DIST = vimdot.sh vimdot.1 $(pdf)
 
 DISTCLEANFILES = vimdot vimdot.1.pdf vimdot.1.ps
diff --git a/tclpkg/gdtclft/Makefile.am b/tclpkg/gdtclft/Makefile.am
index 348d3314c..2969a29ca 100644
--- a/tclpkg/gdtclft/Makefile.am
+++ b/tclpkg/gdtclft/Makefile.am
@@ -15,13 +15,17 @@ LIBS = @LIBS@ -lc
 AM_CFLAGS = @TCL_CFLAGS@
 
 man = gdtclft.3tcl
+if HAVE_PS2PDF
 pdf = gdtclft.3tcl.pdf
+else
+pdf = ERROR_NOPS2PDF
+endif
 
 if WITH_LIBGD
 if WITH_TCL
 pkgtcl_LTLIBRARIES = libgdtclft.la
 man_MANS = $(man)
-pdf_DATA = $(pdf)
+pdf_DATA = gdtclft.3tcl.pdf
 noinst_LTLIBRARIES = libgdtclft_C.la
 endif
 endif
@@ -47,11 +51,13 @@ test:
 endif
 endif
 
+if HAVE_PS2PDF
 gdtclft.3tcl.pdf: gdtclft.3tcl.ps
 	@PS2PDF@ $< $@
 
 gdtclft.3tcl.ps: $(srcdir)/gdtclft.3tcl
 	@GROFF@ -Tps -man $< >$@
+endif
 
 EXTRA_DIST = $(man) $(pdf)
 
diff --git a/tclpkg/gv/Makefile.am b/tclpkg/gv/Makefile.am
index 9e268c324..bb2f0faf0 100644
--- a/tclpkg/gv/Makefile.am
+++ b/tclpkg/gv/Makefile.am
@@ -415,12 +415,17 @@ endif
 man = gv.3sharp gv.3go gv.3guile gv.3io gv.3java gv.3lua gv.3ocaml \
 	gv.3perl gv.3php gv.3python gv.3r gv.3ruby gv.3tcl
 
+if HAVE_PS2PDF
 pdf = gv.3sharp.pdf gv.3go.pdf gv.3guile.pdf gv.3io.pdf gv.3java.pdf gv.3lua.pdf \
       gv.3ocaml.pdf gv.3perl.pdf gv.3php.pdf gv.3python.pdf gv.3r.pdf gv.3ruby.pdf gv.3tcl.pdf
+else
+pdf = ERROR_NO_PS2PDF
+endif
 
 $(man): gv.i gv_doc_writer.tcl gv_doc_template.tcl gv_doc_langs.tcl
 	$(TCLSH) $(srcdir)/gv_doc_writer.tcl "$(srcdir)"
 
+if HAVE_PS2PDF
 gv.3sharp.pdf: gv.3sharp.ps
 	@PS2PDF@ $< $@
 
@@ -498,7 +503,7 @@ gv.3tcl.pdf: gv.3tcl.ps
 
 gv.3tcl.ps: gv.3tcl
 	@GROFF@ -Tps -man $< >$@
-
+endif
 install-data-hook:
 if WITH_JAVA
 	(cd $(DESTDIR)$(pkgjavadir); $(LN_S) -f org/graphviz/libgv_java.$(JSHEXT) ../../libgv.$(JSHEXT); javac -classpath $(DESTDIR)$(libjavadir) gv.java;)
diff --git a/tclpkg/tcldot/Makefile.am b/tclpkg/tcldot/Makefile.am
index a67556b12..50393875e 100644
--- a/tclpkg/tcldot/Makefile.am
+++ b/tclpkg/tcldot/Makefile.am
@@ -28,7 +28,11 @@ LIBS = -lc
 AM_CFLAGS = $(TCL_CFLAGS)
 
 man = tcldot.3tcl
+if HAVE_PS2PDF
 pdf = tcldot.3tcl.pdf
+else
+pdf = ERROR_NO_PS2PDF
+endif
 html = tcldot.html
 
 if WITH_TCL
@@ -36,7 +40,7 @@ noinst_HEADERS = tcldot.h
 pkgtcl_LTLIBRARIES = libtcldot.la libtcldot_builtin.la
 
 man_MANS = $(man)
-pdf_DATA = $(pdf)
+pdf_DATA = tcldot.3tcl.pdf
 html_DATA = $(html)
 endif
 
@@ -108,11 +112,13 @@ pkgIndex.tcl: libtcldot.la
 	sh $(top_srcdir)/tclpkg/mkpkgindex.sh libtcldot.la Tcldot $(VERSION)
 endif
 
+if HAVE_PS2PDF
 tcldot.3tcl.pdf: tcldot.3tcl.ps
 	@PS2PDF@ $< $@
 
 tcldot.3tcl.ps: $(srcdir)/tcldot.3tcl
 	@GROFF@ -Tps -man $< >$@
+endif
 
 EXTRA_DIST = $(man) $(pdf) $(html) README README.Tkspline
 
diff --git a/tclpkg/tkspline/Makefile.am b/tclpkg/tkspline/Makefile.am
index ff4ff7fd6..b8aaaa794 100644
--- a/tclpkg/tkspline/Makefile.am
+++ b/tclpkg/tkspline/Makefile.am
@@ -7,7 +7,11 @@ pkgtcldir = $(pkglibdir)/tcl
 pdfdir = $(pkgdatadir)/doc/pdf
 
 man = tkspline.3tk
+if HAVE_PS2PDF
 pdf = tkspline.3tk.pdf
+else
+pdf = ERROR_NO_PS2PDF
+endif
 
 # If all else fails there is a local copy of tkInt.h in tkstubs/
 AM_CPPFLAGS = \
@@ -23,7 +27,7 @@ AM_CFLAGS = @X_CFLAGS@ @TCL_CFLAGS@  @TK_CFLAGS@ @TK_DEFS@ \
 if WITH_TK
 pkgtcl_LTLIBRARIES = libtkspline.la
 man_MANS = $(man)
-pdf_DATA = $(pdf)
+pdf_DATA = tkspline.3tk.pdf
 endif
 
 libtkspline_la_LDFLAGS = -no-undefined 
@@ -39,11 +43,13 @@ pkgIndex.tcl: libtkspline.la
 	sh $(top_srcdir)/tclpkg/mkpkgindex.sh libtkspline.la Tkspline $(VERSION)
 endif
 
+if HAVE_PS2PDF
 tkspline.3tk.pdf: tkspline.3tk.ps
 	@PS2PDF@ $< $@
 
 tkspline.3tk.ps: $(srcdir)/tkspline.3tk
 	@GROFF@ -Tps -man $< >$@
+endif
 
 EXTRA_DIST = $(man) $(pdf) dllEntry.c
 
-- 
2.40.0