makefile, what's up ?

Alexandr Malusek malusek na hroch.ujf.cas.cz
Středa Listopad 15 10:59:46 CET 2000


Rostislav Matl <xmatl na fi.muni.cz> writes:

> Vysvetli mi peosim nekdo, proc nefunguje nasledujici vec ? :
> 
> unixodbc: $(UNIXODBC_DIST)
>    @echo "##### instaling unixODBC ######"
>    @echo "## unpack:"
>    @export UNIXODBC_DIST 
>    @#gzip -cd $(UNIXODBC_DIST) | tar xf - -C $(WORK_DIR)
>    TMP_DIR=$(shell gzip -cd $(UNIXODBC_DIST) | tar tf - | head -1 | cut
> -f 1 --delimiter=/)
>    echo $(TMP_DIR)

Chybnych predpokladu je tam nekolik, nebot:

1. TMP_DIR ma vyznam pouze na radku (= v shellu), kde tuto hodnotu
   nastavujete. Kazdy radek je interpretovanym novou instanci shellu.

2. $(TMP_DIR) je hodnota "makefile-ove" promenne. Ta muze byt prejata
z exportovane promenne shellu, kde byl "make" spusten, ale rozhodne ji
nelze nastavovat v shellu, ktery je spousten "make".

3. make pozira "$". Pouzijte "$$".

Priklad:

test :
	A=$$(pwd); \
	echo $$A

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux