doxygen depends on tex for two reasons:
at build time, to create the doxygen manual
at run time, so users can run latex on what doxygen produces
The run-time dependency is unnecessary; users that want to process
doxygen output to pdf can simply install tex. It's not like not
depending on tex makes doxygen unable to produce latex format.
The build-time dependency makes it more heavyweight to build doxygen,
and is the usual tools/docs tradeoff.
The overall motivation for change is somewhat restricted build
environments that end up with too many packages.
I've prepared a patch to add a latex option to address both, to ease the
pain of those who would otherwise not need tex. The patch leaves it
enabled by default
So
Any objections?
Should I make tex a run-time dependency only, unconditionally? I
realize it's a stretch, but the current dependency is a bit like
making emacs depend on tex because you can export to latex and build
from org mode.
Should I make this disabled by default? In addition to theoretical
answers, I'm curious to hear from actual doxygen users.
Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/devel/doxygen/Makefile,v
retrieving revision 1.81
diff -u -p -r1.81 Makefile
--- Makefile 28 Feb 2011 14:52:44 -0000 1.81
+++ Makefile 18 Mar 2011 18:15:22 -0000
@@ -12,9 +12,6 @@ HOMEPAGE= http://www.doxygen.org/
COMMENT= Documentation system for C++, Java, IDL and C
LICENSE= gnu-gpl-v2
-DEPENDS+= dvipsk-[0-9]*:../../print/dvipsk
-DEPENDS+= texlive-pdftools-[0-9]*:../../print/texlive-pdftools
-
PKG_DESTDIR_SUPPORT= user-destdir
TEX_ACCEPTED= teTeX3
@@ -55,7 +52,9 @@ SUBST_SED.epstopdf= -e 's,"epstopdf","${
PRIVILEGED_STAGES+= clean
-INSTALL_TARGET= install install_docs
+# Just install the binary and the man page. (If the latex option
+# is enabled, this target will be augmented.)
+INSTALL_TARGET= install
.include "../../mk/bsd.prefs.mk"
@@ -74,8 +73,8 @@ post-patch:
BUILDLINK_API_DEPENDS.graphviz+= graphviz>=2.12nb1
+.include "options.mk"
.include "../../converters/libiconv/buildlink3.mk"
.include "../../graphics/graphviz/buildlink3.mk"
.include "../../lang/python/application.mk"
-.include "../../mk/tex.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
Index: PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/devel/doxygen/PLIST,v
retrieving revision 1.27
diff -u -p -r1.27 PLIST
--- PLIST 2 Jun 2010 04:17:02 -0000 1.27
+++ PLIST 18 Mar 2011 18:15:22 -0000
@@ -3,1034 +3,1034 @@ bin/doxygen
bin/doxytag
man/man1/doxygen.1
man/man1/doxytag.1
-share/doc/doxygen/doxygen_manual.pdf
-share/doc/doxygen/examples/Makefile
-share/doc/doxygen/examples/Makefile.in
-share/doc/doxygen/examples/Makefile.win.in
-share/doc/doxygen/examples/afterdoc.cfg
-share/doc/doxygen/examples/afterdoc.h
+${PLIST.latex}share/doc/doxygen/doxygen_manual.pdf
+${PLIST.latex}share/doc/doxygen/examples/Makefile
+${PLIST.latex}share/doc/doxygen/examples/Makefile.in
+${PLIST.latex}share/doc/doxygen/examples/Makefile.win.in
+${PLIST.latex}share/doc/doxygen/examples/afterdoc.cfg
+${PLIST.latex}share/doc/doxygen/examples/afterdoc.h
[many more lines omitted; basically all of share/doc/doxygen goes away]
Index: options.mk
===================================================================
RCS file: options.mk
diff -N options.mk
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ options.mk 18 Mar 2011 18:15:22 -0000
@@ -0,0 +1,25 @@
+# $NetBSD$
+#
+PKG_OPTIONS_VAR= PKG_OPTIONS.doxygen
+PKG_SUPPORTED_OPTIONS= latex
+PKG_SUGGESTED_OPTIONS= latex
+
+.include "../../mk/bsd.options.mk"
+
+PLIST_VARS+= latex
+
+.if !empty(PKG_OPTIONS:Mlatex)
+PLIST.latex= yes
+
+INSTALL_TARGET+= install_docs
+
+TEX_ACCEPTED= teTeX3
+
+# All three of these should be via USE_TOOLS. Optionally, entirely
+# separately, tex should be a run-time dependency.
+
+DEPENDS+= dvipsk-[0-9]*:../../print/dvipsk
+DEPENDS+= texlive-pdftools-[0-9]*:../../print/texlive-pdftools
+.include "../../mk/tex.buildlink3.mk"
+
+.endif
Attachment:
pgpwrl7JQ7eNu.pgp
Description: PGP signature