[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

nietypowy makefile - potrzebuje pomocy

Zbigniew

7/30/2007 4:41:00 PM

Witam,
mam dosc nietypowy makefile z regulami, jak ponizej.
Nietypowosc polega na $(OUT)/ dolaczonym do kazdej definicji.
Czy ktos mi umie powiedziec (i powie), dlaczego nie dziala?

Oczywiscie jesli pousuwam $(OUT)/ z kazdego targetu,
i definicji MODULES, to wszystko zaczyna poprawnie dzialac i kod sie
kompiluje.

Celem moim jest budowanie plikow .o od razu do wskazanego folderu, a
nie do biezacego i potem kopiowanie.


#
# compile help modules used in .so and main server classes
# these modules are included in liasut.a library stored in ./output/
lib
# folder

# Include CPP, CC settings and others flags
include ../make.conf.linux

..SUFFIXES : .o .cpp .c

CPPFLAGS= -c -I"../Include"
CFLAGS= -c -I"../Include"
CDEFS=

OUTL = ../output/Libs

# ta regula dziala po wyrzuceniu wszystkich wystapien $(OUT)/
#.cpp.o:
# @echo "C++ Libs source compilation $<"
# @$(CPP) $(CPPFLAGS) $(CDEFS) $<

$(OUTL)/%.c.$(OUTL)/%.o:
@echo "C Libs source compilation $*.c ==> $(OUTL)/$*.o"
@$(CC) $(CFLAGS) $(CDEFS) $*.c -o $(OUTL)/$*.o

$(OUTL)/%.cpp.$(OUTL)/%.o:
@echo "C++ Libs source compilation $*.cpp ==> $(OUTL)/$*.o"
@$(CPP) $(CPPFLAGS) $(CDEFS) $*.cpp -o $(OUTL)/$*.o

MODULES= $(OUTL)/AmaSocket.o $(OUTL)/AmaStr.o $(OUTL)/DbgLIB.o

lib: $(MODULES)
# @echo "lib $?"

clean:
@echo "Cleaning $(OUTL)/*.o ..."
@rm -f $(OUTL)/*.o *.o
@echo "Cleaned"

$(OUTL)/AmaSocket.o: AmaSocket.cpp
$(OUTL)/AmaStr.o : AmaStr.cpp
$(OUTL)/DbgLIB.o : DbgLIB.cpp
# ponizsza definicja nie dziala, bo nie wie, jak zbudowac DbgLIB.h !
#$(OUTL)/DbgLIB.o : DbgLIB.cpp DbgLIB.h Dbg.h

Zamiescilem ten post rowniez na pl.comp.os.linux.programming

Pozdrawiam,
Zbyszek

4 Answers

pdemb

7/30/2007 5:18:00 PM

0

Zbigniew <zmk@surfeu.de> writes:

[...]

> $(OUTL)/%.c.$(OUTL)/%.o:

$(OUTL)/%.o: $(OUTL)/%.c

Zbigniew

7/30/2007 5:28:00 PM

0

> $(OUTL)/%.o: $(OUTL)/%.c

To zupelnie nie dziala: *** mixed implicit and static pattern rules.
Stop.

Zbigniew

7/30/2007 6:18:00 PM

0

Twoja podpowiedz doprowadzila mnie do rozwiazania:

$(OUTL)/%.o: %.cpp
$(CPP) ... # compilation here


Dzieki!

pdemb

7/31/2007 10:57:00 AM

0

Zbigniew <zmk@surfeu.de> writes:

>> $(OUTL)/%.o: $(OUTL)/%.c
>
> To zupelnie nie dziala: *** mixed implicit and static pattern rules.

Na pewno dobrze przepisa3e??