ΕΕΛ/ΛΑΚ - Λίστες Ταχυδρομείου

Re: Gcc 4.6 (Ubuntu)

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/

απαντήσεις

αναφορές

πλοήγηση μηνυμάτων