依赖项发生改变时自动“make”

依赖项发生改变时自动“make”

有没有办法在编辑构建所需的文件之一时自动运行 make ?

相关问题:配置 makefile 在文件更改时运行,但这只针对 Mac OS X 有答案 - 如果可能的话,我想要一个更通用的解决方案(尽管我实际上针对的是 Linux)。

答案1

没有通用的解决方案——每个操作系统都有自己的文件监控 API。在 Mac OS X 上是 FSEvents,在 Linux 上是 inotify 或 fanotify,在 BSD 上是 kqueue。

在 Linux 上,你可以使用因克龙或者使用以下脚本编写通知等待

#!/usr/bin/env bash
inotifywait -r -m -q -e close_write ~/project \
| while read path event file; do
    if case $file in
        autogenerated.h)   false;;   # ignore a specific file to avoid loops
        *.c|*.h|Makefile)  true;;    # watch all .c, .h files, the Makefile
        *)                 false;;   # ignore all other files to avoid loops
    esac; then                       # (specifically, you MUST ignore auto-
        (cd ~/project && make)       # -generated files)
    fi
done

相关内容