优化以下make文件

时间:2016-05-20 15:00:48

标签: gcc makefile

我有以下makefile,工作正常,我只是想看看是否有可能进一步优化这样的makefile:

CC=gcc
FLAGS=-lm -std=c99
PROJECT1_FOLDER=./Project1/
PROJECT2_FOLDER=./Project2/
PROJECT3_FOLDER=./Project3/
DEBUG1=$(PROJECT1_FOLDER)Debug/
DEBUG2=$(PROJECT2_FOLDER)Debug/
DEBUG3=$(PROJECT3_FOLDER)Debug/

all : test1 test2 test3
.PHONY : all
.PHONY : clean

test1 : $(addprefix $(PROJECT1_FOLDER), src1.c header1.h main.c)
    $(CC) $(addprefix $(PROJECT1_FOLDER), src1.c main.c) -I$(PROJECT1_FOLDER) -o $(DEBUG1)test1

test2 : $(addprefix $(PROJECT2_FOLDER), src2.c header2.h main.c)
    $(CC) $(addprefix $(PROJECT2_FOLDER), src2.c main.c) -I$(PROJECT2_FOLDER) -o $(DEBUG2)test2

test3 : $(addprefix $(PROJECT3_FOLDER), src3.c header3.h main.c)
    $(CC) $(addprefix $(PROJECT3_FOLDER), src3.c main.c) -I$(PROJECT3_FOLDER) -o $(DEBUG3)test3

clean :
    rm $(DEBUG1)test1 $(DEBUG2)test2 $(DEBUG3)test3

我可以看到配方test1,test2和test3基本相同,有没有办法将它们折叠成一行?

1 个答案:

答案 0 :(得分:0)

将test1 2和3组合在一起,而不是在规则结束时使用类似的东西:

onclick

下次,使用此规则尝试在编译期间使用.o文件而不是.c进行编译:

cp your_binary folder