Optional Patches

Matthew Seaman m.seaman at infracaninophile.co.uk
Wed May 18 22:10:50 UTC 2011


On 18/05/2011 22:29, Matthew Pounsett wrote:
> I've added a new option (call it 'FOO') to the OPTIONS definition,
> and I'm attempting to add something like this directly below MASTER_SITES
> near the top of the Makefile:
> 
> .if defined(FOO)
> PATCH_SITES=      http://location.site.com/path/
> PATCHFILES=       port-${PORTVERSION}.patch
> PATCH_DIST_STRIP= -p1
> .endif
> 
> The option shows up when the config target is run, but ports doesn't
> do anything with the patch info.  If I remove or comment-out the .if
> and .endif surrounding the above block, then ports finds and applies
> the patch perfectly, so I know the patching info itself is correct.

For an option FOO you want to test 'WITH_FOO' and/or 'WITHOUT_FOO' in
your Makefile.

Basically the structure is like this:

OPTIONS=	FOO	"Frob the foo-ness"  no \
		BAR	"Enable order round" yes

.include <bsd.port.options.mk>

# Testing both WITH_ and WITHOUT_ is a good idea...
.if defined(WITH_FOO) && !defined(WITHOUT_FOO)
{ do foo related stuff }
.else
{ do non-foo stuff }
.endif

# ... but just testing WITH_ is very common too.
.if defined(WITH_BAR)
ORDER+=	"Two pints of lager and a packet of crisps"
.endif

The important thing is to only test OPTION settings *after* including
<bsd.port.options.mk> (or <bsd.port.pre.mk> which is an older style of
doing options stuff.)

	Cheers,

	Matthew

-- 
Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey     Ramsgate
JID: matthew at infracaninophile.co.uk               Kent, CT11 9PW

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 267 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20110518/ab507ec1/signature.pgp


More information about the freebsd-ports mailing list