This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, various] Add "pdf" target to all relevant GCC makefiles.


The attached patch adds all of the relevant targets to enable "make pdf" to work; it produces the same files (modulo extension, of course) in the same locations as "make dvi". The changes are, I believe, relatively straightforward and simple.

I have attached two separate .diff files; the first one contains all of the handwritten changes, and is relatively small; the second (gzipped) one contains the automatically-generated top-level Makefile.in file, which has a substantial number of repetitive changes.

I have tested that this works with "make pdf" on i686-pc-linux-gnu and i686-pc-cygwin, and have additionally tested with "make bootstrap" (with all languages except Ada) to confirm that it hasn't broken the build on either platform. I'm doing a "make -k check" test now. If someone could check and confirm that the trivial change to gnattools/Makefile.in doesn't break the gnattools build, I'd appreciate it, since Ada won't build on my box.

Given that this touches lots of things, I think I've cc'ed all of the relevant mailing lists. I'm not sure who all I have to get approval from! :)

There are, of course, quite a lot of changelog entries; I've given them headers by directory to indicate which changelog they go in.

Thanks!
- Brooks


Changelog entries: --(top level)--------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

	* Makefile.def: Added pdf target handling.
	* Makefile.tpl: Added pdf target handling.
	* Makefile.in: Regenerated.

---fixincludes--------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

* Makefile.in: Added empty "pdf" target.

---gcc----------------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

	* configure.ac: Added pdf to "Make-hooks"
	* Makefile.in: Added TEXI2PDF definition, and various pdf-file
	targets and *.pdf file patterns in cleanup targets.
	* configure: Regenerated.

---gcc/cp-------------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

* Make-lang.in: Added "c++.pdf" target support.

---gcc/fortran--------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

	* Make-lang.in: Added "fortran.pdf", "gfortran.pdf" target
	support.

---gcc/java-----------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

* Make-lang.in: Added "java.pdf", "gcj.pdf" target support.

---gcc/objc-----------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

* Make-lang.in: Added empty "objc.pdf" target.

---gcc/objcp----------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

* Make-lang.in: Added empty "obj-c++.pdf" target.

---gcc/treelang-------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

* Make-lang.in: Added "treelang.pdf" target support.

---gnattools----------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

* Makefile.in: Added empty "pdf" target.

---libcpp-------------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

* Makefile.in: Added empty "pdf" target.

---libdecnumber-------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

* Makefile.in: Added empty "pdf" target.

---libiberty----------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

	* Makefile.in: Added "pdf", "libiberty.pdf" target support.
	* testsuite/Makefile.in: Added empty "pdf" target.

---libobjc------------------------------------------------

2006-10-10 Brooks Moses <bmoses@stanford.edu>

* Makefile.in: Added empty "pdf" target.

----------------------------------------------------------
Index: Makefile.def
===================================================================
--- Makefile.def	(revision 117567)
+++ Makefile.def	(working copy)
@@ -54,6 +54,7 @@
 host_modules= { module= fixincludes;
 		missing= info;
 		missing= dvi;
+		missing= pdf;
 		missing= TAGS;
 		missing= install-info;
 		missing= installcheck; };
@@ -147,6 +148,8 @@
                       depend=configure; };
 recursive_targets = { make_target= dvi; 
                       depend=configure; };
+recursive_targets = { make_target= pdf; 
+                      depend=configure; };
 recursive_targets = { make_target= html; 
                       depend=configure; };
 recursive_targets = { make_target= TAGS; 
Index: Makefile.tpl
===================================================================
--- Makefile.tpl	(revision 117567)
+++ Makefile.tpl	(working copy)
@@ -537,12 +537,13 @@
 
 # Here are the targets which correspond to the do-X targets.
 
-.PHONY: info installcheck dvi html install-info install-html
+.PHONY: info installcheck dvi pdf html install-info install-html
 .PHONY: clean distclean mostlyclean maintainer-clean realclean
 .PHONY: local-clean local-distclean local-maintainer-clean
 info: do-info
 installcheck: do-installcheck
 dvi: do-dvi
+pdf: do-pdf
 html: do-html
 
 # Make sure makeinfo is built before we do a `make info', if we're
@@ -936,7 +937,7 @@
 [+ ENDIF no_install +]
 @endif [+module+]
 
-# Other targets (info, dvi, etc.)
+# Other targets (info, dvi, pdf, etc.)
 [+ FOR recursive_targets +]
 .PHONY: maybe-[+make_target+]-[+module+] [+make_target+]-[+module+]
 maybe-[+make_target+]-[+module+]:
@@ -1044,7 +1045,7 @@
 [+ ENDIF no_install +]
 @endif target-[+module+]
 
-# Other targets (info, dvi, etc.)
+# Other targets (info, dvi, pdf, etc.)
 [+ FOR recursive_targets +]
 .PHONY: maybe-[+make_target+]-target-[+module+] [+make_target+]-target-[+module+]
 maybe-[+make_target+]-target-[+module+]:
Index: fixincludes/Makefile.in
===================================================================
--- fixincludes/Makefile.in	(revision 117567)
+++ fixincludes/Makefile.in	(working copy)
@@ -187,6 +187,7 @@
 .PHONY: dvi info html install-html
 
 dvi :
+pdf :
 info :
 html :
 install-html :
Index: gcc/configure.ac
===================================================================
--- gcc/configure.ac	(revision 117567)
+++ gcc/configure.ac	(working copy)
@@ -3450,7 +3450,7 @@
 rm -f Make-hooks
 touch Make-hooks
 target_list="all.cross start.encap rest.encap tags \
-	install-common install-man install-info dvi html \
+	install-common install-man install-info dvi pdf html \
 	uninstall info man srcextra srcman srcinfo \
 	mostlyclean clean distclean maintainer-clean \
 	stage1 stage2 stage3 stage4 stageprofile stagefeedback"
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in	(revision 117567)
+++ gcc/Makefile.in	(working copy)
@@ -268,6 +268,7 @@
 MAKEINFO = @MAKEINFO@
 MAKEINFOFLAGS = --no-split
 TEXI2DVI = texi2dvi
+TEXI2PDF = texi2pdf
 TEXI2HTML = $(MAKEINFO) --html
 TEXI2POD = perl $(srcdir)/../contrib/texi2pod.pl
 POD2MAN = pod2man --center="GNU" --release="gcc-$(version)"
@@ -3398,7 +3399,7 @@
 	mv -f $@T $@
 
 
-# The *.1, *.7, *.info, and *.dvi files are being generated from implicit
+# The *.1, *.7, *.info, *.dvi, and *.pdf files are being generated from implicit
 # patterns.  To use them, put each of the specific targets with its
 # specific dependencies but no build commands.
 
@@ -3425,6 +3426,11 @@
 doc/gccint.dvi: $(TEXI_GCCINT_FILES)
 doc/cppinternals.dvi: $(TEXI_CPPINT_FILES)
 
+doc/cpp.pdf: $(TEXI_CPP_FILES)
+doc/gcc.pdf: $(TEXI_GCC_FILES)
+doc/gccint.pdf: $(TEXI_GCCINT_FILES)
+doc/cppinternals.pdf: $(TEXI_CPPINT_FILES)
+
 $(build_htmldir)/cpp/index.html: $(TEXI_CPP_FILES)
 $(build_htmldir)/gcc/index.html: $(TEXI_GCC_FILES)
 $(build_htmldir)/gccint/index.html: $(TEXI_GCCINT_FILES)
@@ -3440,6 +3446,16 @@
 doc/gccinstall.dvi: $(TEXI_GCCINSTALL_FILES)
 	$(TEXI2DVI) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
 
+pdf:: doc/gcc.pdf doc/gccint.pdf doc/gccinstall.pdf doc/cpp.pdf \
+      doc/cppinternals.pdf lang.pdf
+
+doc/%.pdf: %.texi
+	$(TEXI2PDF) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
+
+# Duplicate entry to handle renaming of gccinstall.pdf
+doc/gccinstall.pdf: $(TEXI_GCCINSTALL_FILES)
+	$(TEXI2PDF) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
+
 # List the directories or single hmtl files which are installed by
 # install-html. The lang.html file triggers language fragments to build
 # html documentation. Installing language fragment documentation is not
@@ -3582,6 +3598,7 @@
 	-rm -f cs-*
 	-rm -rf libgcc
 	-rm -f doc/*.dvi
+	-rm -f doc/*.pdf
 # Delete the include directory.
 	-rm -rf include
 # Delete files used by the "multilib" facility (including libgcc subdirs).
@@ -3629,7 +3646,7 @@
 	$(MAKE) lang.maintainer-clean distclean
 	-rm -f cpp.??s cpp.*aux
 	-rm -f gcc.??s gcc.*aux
-	-rm -f $(gcc_docdir)/*.info $(gcc_docdir)/*.1 $(gcc_docdir)/*.7 $(gcc_docdir)/*.dvi
+	-rm -f $(gcc_docdir)/*.info $(gcc_docdir)/*.1 $(gcc_docdir)/*.7 $(gcc_docdir)/*.dvi $(gcc_docdir)/*.pdf
 #
 # Entry points `install' and `uninstall'.
 # Also use `install-collect2' to install collect2 when the config files don't.
Index: gcc/configure
===================================================================
--- gcc/configure	(revision 117567)
+++ gcc/configure	(working copy)
@@ -16143,7 +16143,7 @@
 rm -f Make-hooks
 touch Make-hooks
 target_list="all.cross start.encap rest.encap tags \
-	install-common install-man install-info dvi html \
+	install-common install-man install-info dvi pdf html \
 	uninstall info man srcextra srcman srcinfo \
 	mostlyclean clean distclean maintainer-clean \
 	stage1 stage2 stage3 stage4 stageprofile stagefeedback"
Index: gcc/cp/Make-lang.in
===================================================================
--- gcc/cp/Make-lang.in	(revision 117567)
+++ gcc/cp/Make-lang.in	(working copy)
@@ -24,7 +24,7 @@
 # Each language makefile fragment must provide the following targets:
 #
 # foo.all.cross, foo.start.encap, foo.rest.encap,
-# foo.install-common, foo.install-man, foo.install-info, foo.dvi,
+# foo.install-common, foo.install-man, foo.install-info, foo.dvi, foo.pdf
 # foo.uninstall,
 # foo.mostlyclean, foo.clean, foo.distclean,
 # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
@@ -118,6 +118,7 @@
 c++.info:
 c++.install-info:
 c++.dvi:
+c++.pdf:
 c++.html:
 c++.srcinfo:
 c++.srcextra:
Index: gcc/fortran/Make-lang.in
===================================================================
--- gcc/fortran/Make-lang.in	(revision 117586)
+++ gcc/fortran/Make-lang.in	(working copy)
@@ -27,7 +27,7 @@
 # foo.all.cross, foo.start.encap, foo.rest.encap,
 # foo.info
 # foo.install-common, foo.install-info, foo.install-man,
-# foo.uninstall, foo.install-info, foo.dvi, foo.html,
+# foo.uninstall, foo.install-info, foo.dvi, foo.pdf, foo.html,
 # foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean,
 # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
 #
@@ -127,6 +127,7 @@
 
 fortran.info: doc/gfortran.info
 fortran.dvi: doc/gfortran.dvi
+fortran.pdf: doc/gfortran.pdf
 fortran.html: $(build_htmldir)/gfortran/index.html
 
 F95_MANFILES = doc/gfortran.1
@@ -163,6 +164,9 @@
 doc/gfortran.dvi: $(GFORTRAN_TEXI)
 	$(TEXI2DVI) -I $(srcdir)/fortran -I $(abs_docdir)/include -o $@ $<
 
+doc/gfortran.pdf: $(GFORTRAN_TEXI)
+	$(TEXI2PDF) -I $(srcdir)/fortran -I $(abs_docdir)/include -o $@ $<
+
 $(build_htmldir)/gfortran/index.html: $(GFORTRAN_TEXI)
 	$(mkinstalldirs) $(@D)
 	rm -f $(@D)/*
Index: gcc/java/Make-lang.in
===================================================================
--- gcc/java/Make-lang.in	(revision 117567)
+++ gcc/java/Make-lang.in	(working copy)
@@ -27,8 +27,8 @@
 # Each language makefile fragment must provide the following targets:
 #
 # foo.all.cross, foo.start.encap, foo.rest.encap,
-# foo.install-common, foo.install-man, foo.install-info, foo.dvi, foo.html,
-# foo.uninstall,
+# foo.install-common, foo.install-man, foo.install-info, foo.dvi, foo.pdf,
+# foo.html, foo.uninstall,
 # foo.mostlyclean, foo.clean, foo.distclean,
 # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
 #
@@ -177,6 +177,7 @@
 	-cp -p $^ $(srcdir)/doc
 
 java.dvi: doc/gcj.dvi
+java.pdf: doc/gcj.pdf
 java.html: $(build_htmldir)/java/index.html
 JAVA_MANFILES = doc/gcj.1 doc/gcjh.1 doc/jv-scan.1 doc/jcf-dump.1 doc/gij.1 \
                 doc/jv-convert.1 doc/grmic.1 doc/grmiregistry.1 \
@@ -394,6 +395,9 @@
 doc/gcj.dvi: $(TEXI_JAVA_FILES)
 	$(TEXI2DVI) -I $(abs_docdir)/include -o $@ $<
 
+doc/gcj.pdf: $(TEXI_JAVA_FILES)
+	$(TEXI2PDF) -I $(abs_docdir)/include -o $@ $<
+
 $(build_htmldir)/java/index.html: $(TEXI_JAVA_FILES)
 	$(mkinstalldirs) $(@D)
 	rm -f $(@D)/*
Index: gcc/objc/Make-lang.in
===================================================================
--- gcc/objc/Make-lang.in	(revision 117567)
+++ gcc/objc/Make-lang.in	(working copy)
@@ -23,7 +23,7 @@
 # Each language makefile fragment must provide the following targets:
 #
 # foo.all.cross, foo.start.encap, foo.rest.encap,
-# foo.install-common, foo.install-man, foo.install-info, foo.dvi,
+# foo.install-common, foo.install-man, foo.install-info, foo.dvi, foo.pdf
 # foo.uninstall,
 # foo.mostlyclean, foo.clean, foo.distclean,
 # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
@@ -90,6 +90,7 @@
 objc.info:
 objc.install-info:
 objc.dvi:
+objc.pdf:
 objc.html:
 objc.man:
 objc.srcinfo:
Index: gcc/objcp/Make-lang.in
===================================================================
--- gcc/objcp/Make-lang.in	(revision 117567)
+++ gcc/objcp/Make-lang.in	(working copy)
@@ -23,7 +23,7 @@
 # Each language makefile fragment must provide the following targets:
 #
 # foo.all.cross, foo.start.encap, foo.rest.encap,
-# foo.install-common, foo.install-man, foo.install-info, foo.dvi,
+# foo.install-common, foo.install-man, foo.install-info, foo.dvi, foo.pdf
 # foo.uninstall,
 # foo.mostlyclean, foo.clean, foo.distclean,
 # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
@@ -98,6 +98,7 @@
 obj-c++.info:
 obj-c++.install-info:
 obj-c++.dvi:
+obj-c++.pdf:
 obj-c++.html:
 obj-c++.srcinfo:
 obj-c++.srcextra:
Index: gcc/treelang/Make-lang.in
===================================================================
--- gcc/treelang/Make-lang.in	(revision 117567)
+++ gcc/treelang/Make-lang.in	(working copy)
@@ -24,8 +24,8 @@
 # Each language makefile fragment must provide the following targets:
 #
 # foo.all.cross, foo.start.encap, foo.rest.encap,
-# foo.install-common, foo.install-man, foo.install-info, foo.dvi, foo.html,
-# foo.uninstall,
+# foo.install-common, foo.install-man, foo.install-info, foo.dvi, foo.pdf
+# foo.html, foo.uninstall,
 # foo.mostlyclean, foo.clean, foo.distclean,
 # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
 #
@@ -160,6 +160,8 @@
 
 treelang.dvi: doc/treelang.dvi
 
+treelang.pdf: doc/treelang.pdf
+
 TEXI_TREELANG_FILES = treelang/treelang.texi \
 	 $(gcc_docdir)/include/gcc-common.texi \
 	 $(gcc_docdir)/include/gpl.texi \
@@ -173,6 +175,9 @@
 doc/treelang.dvi: $(TEXI_TREELANG_FILES)
 	$(TEXI2DVI) -I $(abs_docdir)/include -o $@ $<
 
+doc/treelang.pdf: $(TEXI_TREELANG_FILES)
+	$(TEXI2PDF) -I $(abs_docdir)/include -o $@ $<
+
 treelang.html: $(build_htmldir)/treelang/index.html
 
 $(build_htmldir)/treelang/index.html: $(TEXI_TREELANG_FILES)
Index: gnattools/Makefile.in
===================================================================
--- gnattools/Makefile.in	(revision 117567)
+++ gnattools/Makefile.in	(working copy)
@@ -302,6 +302,9 @@
 # Build DVI (none here).
 dvi:
 
+# Build PDF (none here).
+pdf:
+
 # Build HTML (none here).
 html:
 
Index: libcpp/Makefile.in
===================================================================
--- libcpp/Makefile.in	(revision 117567)
+++ libcpp/Makefile.in	(working copy)
@@ -180,6 +180,7 @@
 check:
 installcheck:
 dvi:
+pdf:
 html:
 info:
 install-info:
@@ -189,7 +190,7 @@
 update-po: $(CATALOGS:.gmo=.pox)
 
 .PHONY: installdirs install install-strip mostlyclean clean distclean \
-  maintainer-clean check installcheck dvi html info install-info \
+  maintainer-clean check installcheck dvi pdf html info install-info \
   install-man update-po install-html
 
 # Dependency rule.
Index: libdecnumber/Makefile.in
===================================================================
--- libdecnumber/Makefile.in	(revision 117567)
+++ libdecnumber/Makefile.in	(working copy)
@@ -132,6 +132,7 @@
 check:
 installcheck:
 dvi:
+pdf:
 html:
 info:
 install-info:
@@ -140,7 +141,7 @@
 install:
 
 .PHONY: installdirs install install-strip mostlyclean clean distclean \
-  maintainer-clean check installcheck dvi html info install-info \
+  maintainer-clean check installcheck dvi pdf html info install-info \
   install-man update-po install-html
 
 COMPILE = source='$<' object='$@' libtool=no $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(ALL_CFLAGS) -c
Index: libiberty/Makefile.in
===================================================================
--- libiberty/Makefile.in	(revision 117567)
+++ libiberty/Makefile.in	(working copy)
@@ -245,6 +245,7 @@
 install-info: install-info-subdir
 clean-info: clean-info-subdir
 dvi: libiberty.dvi dvi-subdir
+pdf: libiberty.pdf pdf-subdir
 
 # html, install-html targets
 HTMLS = libiberty.html
@@ -319,6 +320,9 @@
 libiberty.dvi : $(srcdir)/libiberty.texi $(TEXISRC)
 	texi2dvi $(srcdir)/libiberty.texi
 
+libiberty.pdf : $(srcdir)/libiberty.texi $(TEXISRC)
+	texi2pdf $(srcdir)/libiberty.texi
+
 libiberty.html : $(srcdir)/libiberty.texi $(TEXISRC)
 	$(MAKEINFO) --no-split --html -I$(srcdir) -o $@ $<
 
@@ -434,7 +438,7 @@
 clean: clean-subdir
 	$(MAKE) SUBDIRS="" mostlyclean
 	-rm -f *.a required-list tmpmulti.out
-	-rm -f libiberty.dvi libiberty.info* libiberty.html
+	-rm -f libiberty.dvi libiberty.pdf libiberty.info* libiberty.html
 	@$(MULTICLEAN) multi-clean DO=clean
 distclean: distclean-subdir
 	$(MAKE) SUBDIRS="" clean
@@ -463,7 +467,7 @@
 # if needed.  This prevents problems with parallel builds, in case
 # subdirectories need to run config.status also.
 all-subdir check-subdir installcheck-subdir info-subdir	\
-install-info-subdir clean-info-subdir dvi-subdir install-subdir	\
+install-info-subdir clean-info-subdir dvi-subdir pdf-subdir install-subdir	\
 etags-subdir mostlyclean-subdir clean-subdir distclean-subdir \
 maintainer-clean-subdir: config.h
 	@subdirs='$(SUBDIRS)'; \
Index: libiberty/testsuite/Makefile.in
===================================================================
--- libiberty/testsuite/Makefile.in	(revision 117567)
+++ libiberty/testsuite/Makefile.in	(working copy)
@@ -73,7 +73,7 @@
 		$(srcdir)/test-expandargv.c ../libiberty.a
 
 # Standard (either GNU or Cygnus) rules we don't use.
-html install-html info install-info clean-info dvi install etags tags installcheck:
+html install-html info install-info clean-info dvi pdf install etags tags installcheck:
 
 # The standard clean rules.
 mostlyclean:
Index: libobjc/Makefile.in
===================================================================
--- libobjc/Makefile.in	(revision 117567)
+++ libobjc/Makefile.in	(working copy)
@@ -267,7 +267,7 @@
 	$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
 		-fexceptions $(INCLUDES) $<
 
-doc: info dvi html
+doc: info dvi pdf html
 
 # No install-html support
 .PHONY: install-html
@@ -314,6 +314,7 @@
 
 info:
 dvi:
+pdf:
 html:
 
 Makefile: Makefile.in config.status
@@ -353,7 +354,7 @@
 mostlyclean:
 	-$(LIBTOOL_CLEAN) rm -f libobjc$(libext).la libobjc_gc$(libext).la *.lo
 	-rm -f runtime-info.h tmp-runtime.s *.o *.lo libobjc* xforward \
-		fflags *.aux *.cp *.dvi *.fn *.info *.ky *.log *.pg \
+		fflags *.aux *.cp *.dvi *.pdf *.fn *.info *.ky *.log *.pg \
 		*.toc *.tp *.vr *.html libobj.exp
 	@$(MULTICLEAN) multi-clean DO=mostlyclean
 

Attachment: makepdf2.diff.gz
Description: GNU Zip compressed data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]