make clean w innym katalogu niż bieżący a $PWD

Daniel Dawid Majewski doctorque w o2.pl
Pią, 9 Paź 2009, 14:01:18 CEST


Nie potrafię wywołać make clean dla innego katalogu, tak aby zadziałało w specyficznym układzie :

$ pwd
~/Devel/AVR/asm/WayPaint
$ make -C ~/Devel/AVR/asm/_include clean
make: Wejście do katalogu `~/Devel/AVR/asm/_include'
~/Devel/AVR/asm/WayPaint Cleared... !
make: Opuszczenie katalogu `~/Devel/AVR/asm/_include'

Tymczasem po zmianie katalogu, okazuje się :

$ cd ~/Devel/AVR/asm/_include
$ make clean
Deleting : ~/Devel/AVR/asm/_include/LCD/PCD 8544/kolo.bak
Deleting : ~/Devel/AVR/asm/_include/Makefile~
Deleting : ~/Devel/AVR/asm/_include/MakeGile~
Deleting : ~/Devel/AVR/asm/_include/LCD/PCD 8544/kolo~
~/Devel/AVR/asm/_include Cleared... !

Makefile jest niewielki :
--------------------------
#
#   Makefile for CleanUp
#
CLEAN_LIST="*.hex" "*.lst" "*.list" "*.obj" "*.cof" "*.map" "*.eep" "*.bin" "*.s" "*.o" "*.tmp" "*.bak" "*~" "a.out"

test:
	touch LCD/PCD\ 8544/kolo{~,.bak} MakeGile~

clean:
	@for SearchPass in ${CLEAN_LIST}; \
	{ find "${PWD}" -type f -name "$${SearchPass}" \
	| while read FileNameToRemove; \
	do echo "Deleting : $${FileNameToRemove}"; rm "$${FileNameToRemove}"; done }
	@echo "${PWD} Cleared... !"

.PHONY: test clean

--------------------------
W związku z powyższym pytanie :
Czy jest to prawidłowe, że zmienna środowiskowa $PWD nie ulega zmianie po wywołaniu 'make -C {katalog}' ?
Znam metody workaround (np. "$(pwd)", lub samo 'find' bez ścieżki wyszukiwania), tylko chciałbym znać odpowiedź na
powyższe...

$ make -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
Ten program jest darmowy; warunki kopiowania są opisane w źródłach.
Autorzy nie dają ŻADNYCH gwarancji, w tym nawet gwarancji SPRZEDAWALNOŚCI
lub PRZYDATNOŚCI DO KONKRETNYCH CELÓW.

Ten program został zbudowany dla x86_64-pld-linux-gnu
$ rpm -q make
make-3.81-4.x86_64
-- 
Pozdrawiam,
Daniel Dawid Majewski
jabber:light-i/jid.pl



Więcej informacji o liście dyskusyjnej pld-users-pl