pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

patch for doxygen to not depend on tex



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



Home | Main Index | Thread Index | Old Index