make - reassign variable using if-then ?

Mel Flynn mel.flynn+fbsd.questions at
Wed May 6 15:40:45 UTC 2009

On Wednesday 06 May 2009 11:31:17 Anton Shterenlikht wrote:

> I'm trying to build gcc43 on alpha 6.4.
> In /usr/ports/lang/gcc43/Makefile I have:
> # grep NOT_FOR_ARCHS /usr/ports/lang/gcc43/Makefile
> NOT_FOR_ARCHS=  alpha ia64 powerpc
> #
> In /etc/make.conf I have:
> .if ${.CURDIR:M*/lang/gcc43*}
> USE_GCC=4.3+
> .endif
> This used to work fine until some update. Not anymore.
> The second setting is being used, i.e. the port is being built
> with gcc43. But the NOT_FOR_ARCHS is not changed, so I have
> to do it manually each time.
> So I tried to experiment with changing variable values withing if-then.

Your only option is overriding in /usr/portslang/gcc43/Makefile.local. This is 
because make.conf is read *before* the Makefile and the Makefile simply 
overrides your values. Makefile.local is read *after* the Makefile.
csup will leave it alone, however portsnap will delete the entire directory 
before upgrading the port, so your Makefile.local will be shot.

More information about the freebsd-questions mailing list