makefile erkennt geaenderte includes nicht

19/02/2010 - 10:54 von Curtis Newton | Report spam
Hallo,

ich finde nicht die richtigen Stichwörter für google, daher frage ich
mal hier. Ich habe ein einfaches makefile, Ausschnitt unten.

Das Problem ist, das Source-Dateien nicht neu kompiliert werden, wenn
ich Headerdateien àndere, die diese "includen". Wie kann man make dazu
bringen?

makefile-Ausschnitt:

CXX = g++
...
VPATH = ../../../source ../src

INCPATH = -I. -I../../../include

####### Files

OBJECTS = ...
TARGET = ../aout.exe

first: all
####### Implicit rules

.SUFFIXES: .o .cpp

.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

####### Build rules

all: Makefile $(TARGET)

$(TARGET): $(OBJECTS)
$(CXX) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBPATH) $(LIBS)

clean:
-$(DEL_FILE) $(OBJECTS)
-$(DEL_FILE) $(TARGET)


Bye
 

Lesen sie die antworten

#1 Rainer Weikusat
19/02/2010 - 11:19 | Warnen spam
Curtis Newton writes:

[...]

Das Problem ist, das Source-Dateien nicht neu kompiliert werden, wenn
ich Headerdateien àndere, die diese "includen". Wie kann man make dazu
bringen?



Indem Du ihm die entsprechenden Abhaengigkeiten mitteilst. In
einfachen Faellen kann man die Abhaengigkeiten in ein Makefile
hineinschreiben, also zB

t.o: t.c header.h

In komplizierteren Faellen kann man (gcc & GNU make) entsprechende
Regeln automatisch erzeugen lassen (zB mit gcc -MM) und diese via
include in das eigentliche Makefile einbinden.

Ähnliche fragen