Makefile problem -- zavislost pred provedenim
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Pondělí Říjen 14 13:06:01 CEST 2002
On 12 Oct 2002, Jiri Mikulasek wrote:
> dialup: dialup-prepare all
>
> dialup-prepare:
> cp -f main.cf.dial-up main.cf
> cp -f sender_canonical.dial-up sender_canonical
Nikde neni napsano, ze se prerekvizity mejkuji (to je pekne cesky, co?)
v tom poradi, v jakem jsou napsany. Dokonce je to tak, ze mohou byt
zpracovavany paralelne.
Spravnejsi reseni je bud 1. explicitne vyvolat make rekurzivne, tj.
dialup:
cp -f ...
$(MAKE) all
nebo 2. nejak rafinovane zorganizovat pravidla, treba s vyuzitim
promennych, napr.
all: aliases.db ...
aliases.db: ... main.cf ...
...
ifeq ($(dialup),yes)
main.cf: force
cp -f $@.dial-up $@
endif
.PHONY: force
force: ;
a pak spoustet ne "make dialup", ale "make dialup=yes". Nebo
3. kombinaci obeho, kdy se jeste prida pravidlo
dialup:
$(MAKE) dialup=yes
aby slo pouzivat jen "make dialup".
--Pavel Kankovsky aka Peak
"Welcome to the Czech Republic. Bring your own lifeboats."
Další informace o konferenci Linux