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