Я создал родительский make-файл. как показано ниже:Ошибка в Makefile с вызовом другого файла оболочки для make
SHELL = /bin/bash
HOMEDIR = $(shell pwd)
PKGNAM = PARAMETIS
override VERSION = 4.0.3
YESDIR = $(shell echo $(@:install-%=%) | tr A-Z a-z)
NODIR = $(shell echo $(@:clean-%=%) | tr A-Z a-z)
install:
$(MAKE) install-$(VERSION)
install-%:
@if [ ! -e $(YESDIR) ]; then \
echo "Library $(PKGNAM) Version=$(YESDIR) does not exist"; \
elif [ -e $(YESDIR)/Install.sh ]; then \
echo "Installing $(PKGNAM) version=$(YESDIR)" ; \
cd $(YESDIR) ;\
$(SHELL) Install.sh $(HOMEDIR) 1 ;\
elif [ -e $(YESDIR)/Makefile ]; then \
cd $(YESDIR); \
$(MAKE); \
else \
echo "Installation instruction for $(@:install-%=%) Version=$(YESDIR) does not exist"; \
fi;
clean:
@$(MAKE) clean-$(VERSION)
clean-%:
@if [! -e ${NODIR} ]; then ;\
echo "Library does not exist $(PKGNAM) version=$(NODIR)" ; \
else \
cd $(NODIR) ;\
echo "Installing $(PKGNAM) version=$(NODIR)" ; \
$(SHELL) Install.sh $(HOMEDIR) 0 ;\
fi;
Этот Makefile вызывает различные файлы Баш внутри каждой версии библиотеки каталогов построить их, Баш файлы могут успешно строить каждую библиотеку, если я называю ее из терминала, Тхо, когда я называю их от моего сделать файл, используя,
сделать установки
после того, как он выполняет install.sh и построить библиотеку, я получаю эту ошибку,
Нет правила для цели «w». Стоп.
любая идея, почему это происходит и как я могу избавиться от нее?
ЗДЕСЬ файл Баш, если это поможет:
if (test $2 = 1) then
make --silent -f Makefile config prefix=$1/exec
make --silent -f Makefile
make --silent -f Makefile install
elif (test $2 = 0) then
make --silent -f Makefile clean
fi
Благодаря
Команды для создания цели должны быть отступом. – Barmar
Они находятся в файле makefile, я не знаю, как отложить их здесь. – apramc
http://stackoverflow.com/help/formatting – Barmar