Ich habe folgende Make-Datei, die gut funktioniert, ich wollte nur sehen, ob es möglich ist, weiter so Make-Datei zu optimieren:Optimierung des folgenden machen Datei
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
ich die Rezepte test1, test2 und test3 sehen sind im Grunde die gleichen, gibt es eine Möglichkeit, sie in einer einzigen Zeile zusammenzufassen?
Warum geben Sie in ein separates Verzeichnis 'Debug' aus? Möchten Sie letztendlich Debug- und Nicht-Debug-Versionen haben? Warum verwendest du keine separate Kompilierung? – user657267
"Ich habe das folgende Makefile ..." Ist das * wirklich * es? Wenn nicht die echte Post, so können wir sehen, auf welche Weise die Rezepte tatsächlich ähnlich sind. –
@ user657267, Nur weil ich lernen wollte, wie man ein Makefile verwendet, um verschiedene Projekte zu kompilieren, hat jedes Projekt eigene Debug-Sachen usw., es ist nur ein Beispiel-Makefile, nichts Professionelles. – user8469759