makefile同名目标处理

如果Makefile中有多个相同的目标,它是怎么执行的?


target1: dep1
target1: dep2
           cmd2
这种情况下,这两个相同的target1会被合并成


target1: dep1 dep2
         cmd2
sample01:


#测试多个相同目标,是如何执行的  
  
all: test  
  
test: a.c a.h  
      
test: a.c  
    echo "02 target" #flag the second target  
    echo $^          #print the second target depend   

执行结果:


echo a.c a.h
a.c a.h

但如果第一条规则本身也带一个命令的话, makefile就无法合并, 给出警告,并用后面的规则替代前面的规则

target1: dep1
          cmd1
target1: dep2
          cmd2

最后生成的是, 其实就是后一条替代了前一条,然后给出警告


你可能感兴趣的:(linux,makefile)