如何在文件上自动执行make target?

时间:2015-12-13 10:43:39

标签: go makefile

如何编写n目标,以监视特定文件夹中的任何文件更改并执行其他make目标来编译文件?我正在寻找一种可以做到这一点的方法,除了curl本身之外,对工具的依赖性最小,以保持简单。

2 个答案:

答案 0 :(得分:0)

观看时,您可以使用fswatch。 (这个程序的go版本可能更容易安装:fswatch)例如:

fswatch -ext cpp,c,h make -f Makefile

只要您更改cppch文件,它就会再次运行。

Make可能有点慢,所以我倾向于使用ninja,但这实际上取决于项目的大小。

另一个选项是tup,它内置了观看功能:

tup monitor

但遗憾的是,仅适用于Linux。

答案 1 :(得分:0)

您可以使用entr并像这样调整Makefile

.DEFAULT_GOAL := run
SHELL := /bin/bash

run:
    clear && \                    
    cp one.txt two.txt && \       
    rm -f _* *.l2m *.o2m && \     
    Ganlib < testgan2.x2m

watch:
    while sleep 1 ; do find . -name '*.x2m' -o -name '*.c2m' \
    | entr -d make -f ./Makefile ; done

.PHONY: run watch 

之后

$ make watch