[OSy] build do osobitneho adresara

Petr Tuma petr.tuma at dsrg.mff.cuni.cz
Thu Oct 18 17:14:06 CEST 2007


Dobry den,

> chcel by som sa opytat, ci si mozme modifikovat Makefile tak, aby sa 
> vsetky object subory davali do osobitneho build adresara (trochu mi 
> vadi, ze sa miesaju v src zdrojaky s .o)
> 
> A dalej by som sa chcel opytat, ako to nejak sikovne spravit, nie som v 
> make az tak zbehly a nepodarilo sa mi najst ziadny option pre gcc ani ld 
> ako zmenit output directory. Dratovat do Makefile nejaku cestu pred 
> kazdy file sa mi zdalo trochu nesikovne.

Vas dotaz ma jeden principialni problem. Pokud ma Make umet posoudit, 
zda je nebo neni potreba udelat rebuild, neni jina moznost nez rict Make 
cestu ke kazdemu souboru (option pro GCC nebo LD, ktera by sla jaksi 
mimo Make, jen zpusobi, ze by se vytvorene soubory ukladaly nekam, kde 
je Make nevidi, takze by je chtel vytvorit znovu).

Ted tedy jak jednoduse pridat ke kazdemu souboru spravnou cestu. Muzete 
napriklad pouzit podobny zapis jako je tento (pisu narychlo jen jako 
sketch principu, zbytek urcite dopisete):

BASE_FILES := my_source_one my_source_two
TARGET := my_binary

SOURCE_FILES := $(addsuffix .c, $(addprefix src/, $(BASE_FILES))
OBJECT_FILES := $(addsuffix .o, $(addprefix bin/, $(BASE_FILES))


my_binary: $(OBJECT_FILES)
	$(LD) ...

...

Neni to urcite jedina cesta, ale snad vas to navede spravnym smerem.

Petr Tuma




More information about the NSWI004 mailing list