Re: How to correctly reference WRKSRC of another port?

From: Mathieu Arnold <mat_at_freebsd.org>
Date: Tue, 25 May 2021 14:16:41 UTC
On Mon, May 24, 2021 at 08:16:47PM +0200, Philipp Ost wrote:
> Hi everyone,
> 
> I'm currently working on a port (my first ;-)) which has a (optional) build
> time dependency on the sources of math/nauty.
> 
> Currently, I've hardwired '/usr/ports/math/nauty/work/nauty27r1' as argument
> to the configure script, but that's clearly not the way to do it.
> 
> The Porter's Handbook mentions using WRKDIRPREFIXPORTSDIR [0], but that does
> not work. A search for WRKDIRPREFIXPORTSDIR in /usr/ports/Mk comes up empty.
> Do I explicitly have to define this variable?
> 
> I've set NAUTY_BUILD_DEPENDS=nauty>0:math/nauty:extract. How do I correctly
> reference nauty's WRKSRC?
> 
> It would be nice if anyone could point me in the right direction.
> 
> Thanks in advance!
> 
> Philipp
> 
> 
> [0] https://docs.freebsd.org/en/books/porters-handbook/porting-dads/#porting-wrkdirprefix

So, that section has just been made a bit more readable, it should not
have been WRKDIRPREFIXPORTSDIR but ${WRKDIRPREFIX}${PORTSDIR}, which
makes much more sense.

There is no best way to achieve what you need.  The probably easiest way
would be to follow what audio/pulseaudio-module-xrdp does, mainly:

BUILD_DEPENDS=	${NONEXISTENT}:math/nauty:patch
NAUTY_WRKSRC=   $$(${MAKE} -C ${PORTSDIR}/math/nauty -VWRKSRC)

and then wherever you hardcoded the /usr/ports/... just put
${NAUTY_WRKSRC}.

Note that the special BUILD_DEPENDS is required, otherwise, there is no
guarantee that the sources will actually be there.  Also, the :patch at
the end is the target youu actually need the sources to be in, maybe it
should be :configure or :build.

-- 
Mathieu Arnold