我想做这样的事情,我想在文件发生变化的情况下运行svn提交.该文件的时间戳始终更改.因此,如果超过时间戳更改,我想提交文件.
makefile将有类似的东西.但If条件不能正常工作.即使不满意,它也会被执行.有人可以帮我解决问题,如果在这里.
UPDATE_STATE_FILE :
$(eval NO_LINES_CHANGES_IN_STATE = $(shell svn di STATE/build.state --diff-cmd=diff -x --normal | grep "^[<>]" | wc -l))
@echo $(NO_LINES_CHANGES_IN_STATE)
ifneq ($(strip $(NO_LINES_CHANGES_IN_STATE)), 2)
ifneq ($(strip $(NO_LINES_CHANGES_IN_STATE)), 0)
@echo $(NO_LINES_CHANGES_IN_STATE)
$(SVN) commit;
$(SVN) update;
endif
endif
Run Code Online (Sandbox Code Playgroud)
Mad*_*ist 15
您不能在命令规则中混合使用条件.使条件类似于C或C++中的预处理器语句; 在执行任何处理(如运行规则)之前,在读入文件时处理它们.
如果你想在规则中使用条件,你必须使用shell条件来编写规则,而不是使条件:
UPDATE_STATE_FILE :
@NO_LINES_CHANGES_IN_STATE=`svn di STATE/build.state --diff-cmd=diff -x --normal | grep "^[<>]" | wc -l`; \
echo $$NO_LINES_CHANGES_IN_STATE; \
if [ $$NO_LINES_CHANGES_IN_STATE -ne 2 ] && [ $$NO_LINES_CHANGES_IN_STATE -ne 0 ]; then \
echo $$NO_LINES_CHANGES_IN_STATE; \
$(SVN) commit; \
$(SVN) update; \
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16285 次 |
| 最近记录: |