ports/49955: [PATCH] bsd.port.mk: add target to automatically install port documentation

Sergei Kolobov sergei at FreeBSD.org
Wed Jan 28 05:26:34 PST 2004


On 2004-01-28 at 01:42 +0100, Oliver Eikemeier wrote:
> Sergei Kolobov wrote:
> >Ports that have few doc files get this:
> >
> >DOCS=		file1 file2 subdir/file3
> 
> this doesn't save you much compared with
> 
> 	@cd ${WRKSRC}/doc && ${INSTALL_DATA} file1 file2 subdir/file3
> 	${DOCSDIR}

Yes, that's what it is, essentially - with @${MKDIR} ${DOCSDIR}, all
wrapped in .if !defined(NOPORTDOCS).

If you find it stupid (or lazy) to add support for this in bsd.port.mk,
here's my experience: most of the 50+ ports I maintain personally, plus
many other ports I've touched recently have this construct.
I have also converted several ports to this construct in a process of
updating, etc. Moreover, the only purpose of post-install target in some
of those ports is to install docs, so the whole target is wrapped in
.if !defined(NOPORTDOCS).

Most of this ports have static DOCS lists - e.g., AUTHORS NEWS README
TODO - and just a few have occassional *.html (or similar) glob, but
none of them need to copy tons of files into DOCSDIR or create a
directory structure under DOCSDIR.

> it yould be interesting when this macro could copy hierarchies.
> Anyway, do you have a sample port the would benefit from a DOCS macro?
> I named to Java ports a examples (using javadoc, i.e. junit, java3d,
> forte, whatever) for the PORTDOCS macro, because
> 
> - they have dynamically generated documentation, changing often
> - have a large, deep documentation tree
> - install the documentation themselves
> - don't always honour NOPORTDOCS

No, I don't disagree with that. In fact, I see the need for that.
All I'm saying is most of the ports I deal with are completely different
in this regard.

> Or is your point that most people are too lazy to write
> 
> PORTDOCS=	NEWS Changelog
> 
> .ifndef NOPORTDOCS
> 	@${MKDIR} ${DOCSDIR}
> 	@cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR}
> .endif
> 
> but would use
> 
> DOCSSRC=	NEWS Changelog
> 
> instead?

Essentially, yes.  It's not about laziness ;) but about convenience,
and shortening a lot of port Makefiles.
I, for one, would like to see that.  ;)

> And please avoid INSTALL_DOCS, it's too similar to INSTALL_MAN.

Yes, the original version I've submitted in the PR had this bad naming
choice. I have setlled on DOCS name since then.

Again, as I mentioned in my previous message, I would like to see two
separate variables:

- DOCS: pretty much static list, allows some simple wildcards, one dir
  level only

- DOCS_GLOB: dynamically generated list, uses full power of allows
  liberal use of wildcards, can copy directory hierarchy.
  This is your PORTDOCS today.

and corresponding USE_DOCS to specify whether you need to install the
docs automatically into DOCSDIR, or just add them to pkg-plist if
NOPORTDOCS is not set, or both.

Sergei


More information about the freebsd-ports mailing list