Portál AbcLinuxu, 25. dubna 2024 02:12


Dotaz: Makefile -- .o subor na inom mieste ako .c subor

31.5.2008 20:05 mikro
Makefile -- .o subor na inom mieste ako .c subor
Přečteno: 214×
Odpovědět | Admin
zdravim,

narazil som na taky zvlastny problem -- velmi by mi vyhovovalo, keby som si mohol vytvorit taky Makefile, ktory by umoznoval kompilaciu suborov pre nejaku kniznicu, ale pre release a debug verziu by sa tie .o subory neprepisovali.

manualne to ide spravit tak, ze si napisem rules pre kazdy subor v style:

($CONFIGURATION)/file1.o: file1.c
($CONFIGURATION)/file2.o: file2.c
: :

atd. pricom ($CONFIGURATION) je bud "debug" alebo "release". ale kedze je to dost neelegantne riesenie, da sa to spravit nejako aj cez tie make macros? nieco ako:

OBJS = (SOURCES:.c=($CONFIGURATION)/.o)

(toto je samozrejme hlupost, ale snad rozumiete, ako to myslim :)

dakujem za kazdu radu.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Pavel Stárek avatar 31.5.2008 20:27 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Makefile -- .o subor na inom mieste ako .c subor
Odpovědět | | Sbalit | Link | Blokovat | Admin
například:
BUILD_TYPE := debug    # "debug" or "production"
     
ifeq ($(BUILD_TYPE), debug)
 CFLAGS := -g
else
 CFLAGS := -O2
endif
     
program : *.o
    $(CC) $(CFLAGS) $(inputs) -o $(output) $(LIBS)
ifeq ($(BUILD_TYPE), production)
    strip $(output)
endif
     
%.o : %.c
    $(CC) $(CFLAGS) -c $(input) -o $(output)

Toto je jenom takový nástin. Prostě tě zajímají ty části s tím ifeq. Viz Conditional Parts of Makefile
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
Pavel Stárek avatar 31.5.2008 20:31 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Makefile -- .o subor na inom mieste ako .c subor
Odpovědět | | Sbalit | Link | Blokovat | Admin
A tady v tom je to vidět ještě lépe - hint: OBJDIR v tom makefile. Tak snad to nějak dáš dohromady.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
31.5.2008 22:44 mikro
Rozbalit Rozbalit vše Re: Makefile -- .o subor na inom mieste ako .c subor
dakujem, pomohlo. tusil som, ze to bude nieco s tymi %, ale nechapal som detaily. este raz diky.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.