ifeq ($(SYSTEM),WINDOWS)
# need to change something here :
RM = @(if exist "$(subst /,\,$(DIRECTORY))" rmdir /s /q $(subst/,\,$(DIRECTORY))))
else
RM := @rm -rf
endif
clean_1 :
$(RM) SOME/PATH/
clean_2 :
$(RM) SOME/PATH/
如何将替换路径“SOME/PATH/”替换为“DIRECTORY”?在不改变代码结构的情况下这可能吗?
PS 我不能在不检查文件的情况下使用rmdir ,因为它会产生错误。
更新。我这样做了:
ifeq ($(SYSTEM),WINDOWS)
RM = @(if exist "$(subst /,\,$1)" rmdir /s /q $(subst/,\,$1)))
else
RM = @rm -rf $1
endif
clean_% :
$(call RM, SOME/PATH/)
真的行。感谢马克盖尔克。
有没有办法通过替换RM变量而不更改clean -target 命令来做到这一点?