Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Jun 2008 12:30:42 +0200
From:      Kris Kennaway <kris@FreeBSD.org>
To:        Pietro Cerutti <gahr@FreeBSD.org>
Cc:        ports@FreeBSD.org
Subject:   Re: INDEX build optimizations - please review
Message-ID:  <485A3552.9000803@FreeBSD.org>
In-Reply-To: <485A3314.8010304@FreeBSD.org>
References:  <484EAFAC.3020208@FreeBSD.org> <485A3314.8010304@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?485A3552.9000803>