help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Target Specific Variables


From: psmith
Subject: Target Specific Variables
Date: Thu, 29 Nov 2001 09:15:18 -0700

I have two questions regarding target specific variables.

1. I want to use $@ in a dependency of the current target by assigning
   it to another variable. This does not appear to work because $@
   changes whenever a new target is in operation.

2. I want to override a variable and then test its value in a later
   target. This does not appear to work. See examples below.

The documentation states that: '...when you define a target-specific
variable,
that variable value is also in effect for all prerequisites of this
target...'

Our installed version is 3.79 on Solaris, but I have also tried 3.79.1.

Makefile
all:    $(TESTS)

TESTS = mytest bist scan
.PHONY: $(TESTS)

$(TESTS):       TESTBENCH=$@
$(TESTS):       override TESTVAR=TRUE
$(TESTS):       COMPILE
                @echo "\nLVTESTS Target"
                @echo "target $@, dep $<""
                @echo "TESTBENCH=$(TESTBENCH)"
                @echo "TESTVAR=$(TESTVAR)"

COMPILE:        
                @echo "\nCOMPILE Target"
                @echo "target $@, dep $<"
                @echo "TESTBENCH=$(TESTBENCH)"
                @echo "TESTVAR=$(TESTVAR)"
ifeq ($(TESTVAR),TRUE)
                @echo "TESTVAR is TRUE"
else
                @echo "TESTVAR is NOT TRUE!"
endif

$ make -f Makefile.test mytest TESTVAR=FALSE
COMPILE Target
target COMPILE, dep 
TESTBENCH=COMPILE          <<<<< I want this to be mytest at this point
TESTVAR=TRUE
TESTVAR is NOT TRUE!        <<<< should be overridden

LVTESTS Target
target mytest, dep COMPILE
TESTBENCH=mytest
TESTVAR=TRUE

$ make -f Makefile.test mytest 
COMPILE Target
target COMPILE, dep 
TESTBENCH=COMPILE
TESTVAR=TRUE
TESTVAR is NOT TRUE!        <<<< should be overridden

LVTESTS Target
target mytest, dep COMPILE
TESTBENCH=mytest
TESTVAR=TRUE

$ make -f Makefile.test mytest TESTVAR=TRUE
COMPILE Target
target COMPILE, dep 
TESTBENCH=COMPILE
TESTVAR=TRUE
TESTVAR is TRUE        <<<< yes, but it's taken from the command line

LVTESTS Target
target mytest, dep COMPILE
TESTBENCH=mytest
TESTVAR=TRUE


- Paul Smith



reply via email to

[Prev in Thread] Current Thread [Next in Thread]