On 12/16/06, Gauvain Pocentek <[EMAIL PROTECTED]> wrote:
I try to define a variable this way:
-----
config.status-%:
DEB_BUILDDIR_$* ?= build-$*
----
But it doesn't work, DEB_BUILDDIR_$* is understood as a command by make.
How could I define this variable?
That depends on what you're trying to achieve. If the DEB_BUILDDIR_*
variables are only going to be used in commands for target (and not in
prerequisite lists, target names, or global variable assignments) then
you _may_ be able to use target-specific assignments. However, I
doubt that'll work for you.
Instead, I think you need to take a step back and look at what you're
trying to do. You want to define a default value for an entire set of
variables and had tried to do that by using a pattern rule to select
the values for which that was true. That won't work. Instead, why
not define it as a function?
DEB_BUILDDIR = $(if $(findstring undefined,$(origin \
DEB_BUILDDIR_${1})),build-${1},${DEB_BUILDDIR_${1}})
With that, instead of referencing ${DEB_BUILDDIR_${whatever}}, you could use
$(call DEB_BUILDDIR,${whatever}). You would still override the
default value for a given input by assigning to
DEB_BUILDDIR_${whatever}.
Philip Guenther
_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make