我在我的makefile文件中有一個名爲「cambios」的目標,它在項目的每個文件上(單獨)提交cvs提交併顯示最後一個修訂。makefile:使用for和ifneq
現在,我有一個auxiliar shellscript這樣做,但我想知道如何在makefile中做到這一點。我創建了沒有auxiliar shellscript的目標cambios2,但它有一些語法問題。
生成文件:
(...)
TODO= makefile cambiosaux.sh lib/libreria.cc include/libreria.h src/principal.cc
(...)
cambios:
@./cambiosaux.sh "$(TODO)"
cambios2:
@for dir in $(TODO); do \
A = $(cvs commit -m "Incorporando cambios automáticamente." $$dir) \
ifneq ($(A),)
echo $dir ; \
echo "Última revisión:"$(echo $(A) | sed 's/.*new revision: //' | sed 's/;.*//') ; \
endif ; \
done
cambiosaux.sh:
for dir in $1
do
A=$(cvs commit -m "Incorporando cambios automáticamente." $dir)
if [ "$A" != "" ]; then
echo $dir
echo "Última revisión:"$(echo $A | sed 's/.*new revision: //' | sed 's/;.*//')
fi
done
有在客觀cambios2一些語法問題,但我真的很新做的makefile,我真的不知道如何解決這個問題。
謝謝!
。 Makefile規則*的命令*爲sh。只需將aux.sh的內容複製到MF中即可。 – 2012-01-07 09:43:16
我試過了,但它不工作,因爲它的語法不一樣... – Motumbo 2012-01-07 10:23:08