PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Makefile



Searinox
27-11-2005, 16:10
Hallo!

Ich habe ein Makefile, das in etwa so aussieht:



1 TARGETS = src/target.c
2 CC = gcc
3 CFLAGS += -Wall -g
4 CFLAGS += -DSVN_REV=\"$(shell svnversion .)\"
5 LDDFLAGS = -lm `pkg-config --libs sndfile` `pkg-config --libs sqlite3`
6 OUTFILE = prog
7
8 all: $(TARGETS)
9 $(CC) $(CFLAGS) -o $(OUTFILE) $(TARGETS) $(LDDFLAGS)
10
11 clean:
12 rm -f $(TARGETS) $(OUTFILE) $(OUTFILE).exe


Ich möchte nun ein weiteres Target namens debug hinzufügen, das schlicht und einfach die CFLAGS um ein -DDEBUG erweitert und dann all aufruft.
Allerdings habe ich keine Ahnung, wie das gehen soll, rekursiv jedenfalls nicht.

Danke für eure Hilfe!

peschmae
27-11-2005, 21:11
Das dürfte schwierig werden vermute ich jetzt mal. Und zwar einfach aus dem Grund weil Make immer nur auf die Dateiänderungsdaten guckt. d.h. der sieht nicht mit was für Flags was kompiliert wurde vorher.

In dem Falle müsstest du:
- wenn du vorher alles ohne debug kompilierst hast alles mit debug neu kompilieren
- wenn du vorher mit debug kompiliert hast nur die Dateien neu kompilieren die geändert wurden

Den Unterschied zwischen den beiden kann make aber nicht erkennen. d.h. du musst das eh manuell machen (und schreibst folglich sowas ähnliches wie die normale "all"-Rule).

MfG Peschmä