У меня есть этот Makefile:
MAKE=make
ALL: pl/index.html
pl/index.html: pl/index.md template.html
build.js -l pl -t template.html > pl/index.html
watch: pl/index.html
@inotifywait -e close_write pl/index.md template.html | while read events; do $(MAKE); done
я хочу иметь make watch
, который будет запускаться при каждом изменении файла. Но сделайте остановку родительской марки после того, как она будет завершена sh.
У меня есть этот вывод после редактирования файла:
$ LC_ALL=C make watch
Setting up watches.
Watches established.
make[1]: Entering directory '/mnt/ssd/projects/jcubic/scheme/tutorial'
build.js -l pl -t template.html > pl/index.html
make[1]: Leaving directory '/mnt/ssd/projects/jcubic/scheme/tutorial'
Я также пробовал:
bash -c 'make'
и `make`
последний выдает ошибку:
/bin/sh: make[1]:: command not found
make: *** [Makefile:9: watch] Error 127
можно ли написать make watch
?
Я пытался написать скрипт:
#!/bin/bash
make
, но вызов сценария с ./run
показывает ту же ошибку:
/bin/sh: make[1]:: command not found
make: *** [Makefile:9: watch] Error 127
вызов bash -c './run'
работает, но он останавливается после первого запуска, как показывается первая ошибка.