2015-02-06 6 views
5

Ich möchte alle .cpp und .cc-Dateien in die Abhängigkeiten eines Ziels mit einem Platzhalter enthalten.Makefile Wildcard-Abhängigkeiten

Derzeit habe ich folgendes zu tun:

all: main.cpp file1.cc file2.cc 
    g++ -O3 -o all main.cpp file1.cc file2.cc -I./include -L./lib 

Die folgende nicht zu funktionieren scheint:

all: %.cpp %.cc 
    g++ -O3 -o [email protected] $^ -I./include -L./lib 

ich als Fehler machen erhalten: *** Keine Regel Ziel zu machen '% .cc', benötigt von 'all'. Halt.

Antwort

5
targets := $(wildcard *.cpp) $(wildcard *.cc) 
all: $(targets) 
     g++ $(targets) 

das funktioniert für mich

1

"%" implizite Musterregel darstellen, "*" Platzhalter ist.

targets := $(wildcard *.cpp *.c) 
all: $(targets) 
    g++ $(targets)