[so] intrebari makefiles (reguli externe [n]make?) si warninguri /W4

foxX alex.mihaiuc at gmail.com
Fri Nov 2 15:44:42 EET 2007


Salutare.

1. In Windows (poate fi platform-independent cred) am asa:
directorul . (curent) cu surse, headere and stuff
directorul .\OSP cu surse, antete si altele

in . am un makefile care genereaza artefactul final (tema1.exe)
in .\OSP am un makefile care genereaza o biblioteca necesara OSP\OSP.lib


Am gandit in felul urmator: tema1.exe depinde de toate .obj-urile care
o compun, iar in pasul de legare, de OSP\OSP.lib
In .\OSP\makefile am zis ca artefactul OSP.lib depinde de toate
.obj-urile care il compun si actiunea e "lib ........" (asamblarea lor
in rezultat folosind toate bibliotecile necesare, etc).

Vreau asa: cand OSP\OSP.lib e vechi (mai vechi ca dependintele lui),
sa fac cd "OSP; $(MAKE); cd .." si apoi sa-mi vad de treaba in
.\makefile . Cum fac asta fara sa pun cam tot ce e in .\OSP\makefile
peste .\makefile ?

In momentul asta, actiunea interesanta arata cam asa in .\makefile :
[code]
default: $(ARTIFACT)

$(ARTIFACT): $(INTERM)
	cd OSP
	$(MAKE)
	cd ..
	$(CPP) $(CPPFLAGS) /Fe"$@" $(INTERM) OSP\OSP.lib
[/code]
(variabilele sunt ale mele si sunt ok toate)
cu mentiunea ca nu se prinde cand OSP\OSP.lib e vechi. Daca adaug
targetul OSP\OSP.lib in .\makefile n-am rezolvat nimic, decat daca pot
ceva in genul: "OSP\OSP.lib: only after running make in .\OSP"

2. cl cu /W4 se cam plange de parser.yy.c si parser.tab.c (conversii
de la date pe multi octeti la date pe putini). Inteleg ca nu e
problema mea si nu ma costa nimic daca makefileul meu mitraliaza cu
warninguri aici, sau mai bine intru si pun manual
"static_cast<destinatie>(oriunde)"?

Thanks.
-- 
There are 10 kinds of people: those who understand binaries and those who don't.


More information about the so mailing list