我正在使用 GNU Make 3.81 构建给定的 C 项目。 GNU 的正常行为是检查,如果目标存在并且任何先决条件比目标更新,则执行目标命令。
如果先决条件比目标新且比给定时间戳新,是否可以重建目标?比方说,它仅在文件比 2011 年 10 月 2 日更新时才构建。
最佳答案
没有办法直接用 make 来做,但是你可以在规则的 Action 中用 shell 来做:
target: prereq
touch --date='Oct 2, 2011' .timestamp
if [ $< -nt .timestamp ]; then \
command to rebuild target; \
fi
请注意使用 \
使 if
命令成为单个命令。您还可以使用 else
来处理目标已过期且先决条件也已旧的情况。
关于c - GNU Make 构建过时且更新于特定时间戳的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9399769/