2012-10-10 141 views
-1

如何依赖gnu Makefile?如何依赖gnu Makefile?

我想创建一个Makefile其中: - 将应用一些补丁(我们〔实施例,适用于main.c中main.patch) - 创建一个名为从修补main.c文件,TOTO PROGRAMM

my_patch=./main.patch 
all: toto 

patch: $(my_patch) 
    echo "apply patch" 

main.o: main.c 
    gcc -o main.o -c main.c -Wall 

toto: patch main.o $(my_patch) 
    echo "build" 
    gcc -o toto main.o 

但是,修补程序总是被应用......这导致我在我的问题上: “如何依赖gnu Makefile?”

我怎么能告诉GNU make它也没用适用main.patch如果main.patch的日期比二进制TOTO小

感谢您的帮助:)

回答

1

的假目标( patch)令人困惑的事情。该patch规则修改main.c,所以我们是这样的目标:

my_patch=./main.patch 
all: toto 

main.c: $(my_patch) 
    echo "apply patch" 

main.o: main.c 
    gcc -o main.o -c main.c -Wall 

toto: main.o # no need to specify $(my_patch) here 
    echo "build" 
    gcc -o toto main.o 

附:当你在它的时候,你也可以介绍automatic variables; makefile文件更清洁,更易于维护:

main.o: main.c 
    gcc -o [email protected] -c $< -Wall 

toto: main.o # no need to specify $(my_patch) here 
    echo "build" 
    gcc -o [email protected] $^