INDEX build optimizations - please review
Kris Kennaway
kris at FreeBSD.org
Thu Jun 19 10:30:44 UTC 2008
Pietro Cerutti wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> Kris Kennaway wrote:
>
> | **********************************************************************
> | ********************* NOTE TO PORT DEVELOPERS ************************
> | **********************************************************************
> |
> | 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, then you avoid wasting one or
> | more process executions.
>
> Yes, in theory.
>
> Any clue why this doesn't work?
>
> SCHED_NAME= sysctl -n kern.sched.name
>
> all:
> ~ echo $(${SCHED_NAME})
Try $$(${SCHED_NAME}) (escape the $ you don't want make to process)
Kris
More information about the freebsd-ports
mailing list