Matthew Seaman wrote:
Kris Kennaway wrote:
Can someone add to the PH a version of the advice below? It might
need to be fleshed out a bit to provide more context.
Kris
Variable assignments with != are bad! Try as hard as you can to
avoid using them -- especially in Mk/*! Every time something
processes your makefile it will spawn a command, even if it is not
relevant for the operation being performed. If you need to run shell
commands, try to isolate them within a makefile target. You can
avoid code duplication by assigning the *shell commands* (not their
output) to a variable and inserting it into your code block.
e.g. instead of
--
VARIABLE!= do some shell stuff; do some other stuff
target:
echo ${VARIABLE}
--
do this (or similar):
--
VARIABLE_CMDS= do some shell stuff; do some other stuff
target:
echo $$(${VARIABLE_CMDS})
--
This defers the command execution to the point where the target runs,
so in the case when the target is *not* run (e.g. during INDEX builds or
other recursive port traversals), then you avoid wasting one or more
process executions.
Would it be acceptable to use something like:
.if !defined(BUILDING_INDEX)
VARIABLE!= something or other
.endif
or
.if !make(describe)
VARIABLE!= whatever
.endif
No because that only avoids one particular case, not the default case :)
Kris
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "[EMAIL PROTECTED]"