как я должен сделать для этого makefile? - PullRequest
0 голосов
/ 22 ноября 2011
$cat makefile

 AA:=3

.PHONY:all
all:test1.o test2.o
    @echo all AA=${AA}
    @gcc test1.o test2.o -o test

test1.o:test1.c
    @echo 1 AA=${AA}
    @gcc -c test1.c -o test1.o

AA:=2
test2.o:test2.c
    @echo 2 AA=${AA}
    @gcc -c test2.c -o test2.o

.PHONY:clean
clean:
    rm -f *.o
    rm -f *~

вывод этого make-файла:

1 AA=2
2 AA=2
all AA=2

но я хочу вывод как это:

1 AA=3
2 AA=2
all AA=3

Я пробовал некоторые методы, но все не удалось. как мне быть? спасибо

1 Ответ

3 голосов
/ 22 ноября 2011

Попробуйте целевые переменные:

all: AA:=3
all:test1.o test2.o
    @echo all AA=${AA}
    @gcc test1.o test2.o -o test

test2.o: AA:=2
test2.o:test2.c
    @echo 2 AA=${AA}
    @gcc -c test2.c -o test2.o
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...