On Mon, Oct 03, 2011 at 02:48:09PM +0300, Nick Kossifidis wrote:
>
> Ναι αυτό είναι το σωστό γενικά και αυτό θα δεις στα Makefiles, απλά
> βαριέμαι και τα έβαλα όλα μαζί πακέτο σε ένα bash script να
> ξεμπερδεύω. Θα ασχοληθώ με automake/autoconf αφού ξεμπερδέψω με τα
> υπόλοιπα.
Den xreiazesai to daidalodes kataskevasma pou legetai autoconf/automake.
Gia to 99% ton periptoseon mporeis na grapseis ena aplo makefile tis
morfis (assuming GNU make):
src = $(wildcard: src/*.c)
obj = $(src:.c=.o)
bin = mybinary
CFLAGS = -pedantic -Wall -g `pkg-config --cflags whatever`
LDFLAGS = `pkg-config --libs whatever`
$(bin): $(obj)
$(CC) -o $@ $(obj) $(LDFLAGS)
.PHONY: clean
clean:
rm -f $(obj) $(bin)
That's it. Ena elafros kalytero me ligo perisotero dependency tracking
tha prosethete kai:
deps = $(obj:.o=.d)
# kato apo to binary rule
-include $(deps)
%.d: %.o
$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
Perfect.
> Ναι δίκιο, το linking stage έρχεται μετά απλά (και το έχω δει και σε
> Makefiles αυτό) τα flags τα βάζουν γενικώς παντού, πες από συνήθεια :P
To na bazoun to CFLAGS pantou einai lathos alla de dimiourgei kanena
idietero provlima, esy bazeis ousiastika to LDFLAGS pantou, kati akros
provlimatiko.
--
John Tsiombikas
http://nuclear.mutantstargoat.com/