我想编写一个通用的makefile,它可以同时满足我对各种项目的大部分需求。但后来我摔倒了下面的内容:
%/:
mkdir -p $@
.SECONDEXPANSION:
$(objects): $$(dir $$@)
我希望这个运行得很好并且只要$(objects)
中的目标的目录确实需要一个目录就创建一个目录。但不知怎的,它没有用。我检查并发现以下内容:目标不能以' /'结尾。
有没有办法可以避免这种情况?
答案 0 :(得分:1)
您只需选择一个后缀,该后缀不能是文件夹中文件的名称。例如.
。所以规则如下:
%/.:
mkdir -p $@
.SECONDEXPANSION:
$(objects): $$(dir $$@).
由于.
指的是目录本身,因此不应该产生任何问题:)