我有几个代表项目子部分的目录,每个目录都有自己的Makefile 我想创建一个主Makefile,其中包含每个子部分的目标,每个目标都满足以下条件:
我只能找到有关GNU make的include
指令的信息,但这对我没有多大帮助,因为它似乎没有将所包含的makefile的规则(和执行)封装在它自己的目录中,但是而只是#include
他们是C风格(而不是将它们视为具有不同范围的包)。
INSTALLDIR := build
SRCDIR := src
TARGETS := projA projB
.PHONY: $(TARGETS)
TARGETS_PATH := $(addprefix $(SRCDIR)/, $(TARGETS))
MAKEFILES := $(addsuffix /osx.mak, $(TARGETS_PATH))
# include them somehow?
对于上面定义的此类设置,我现在希望每个$(TARGETS)
依赖在其相应Makefile的release
目标上(类似projA: $(SRCDIR)/projA/osx.mak @ release
对于projA,用我自己的语言表示目标projA取决于特定Makefile中release
目标的成功执行。
有没有办法实现这个目标?
您可以建议除GNU make之外的其他工具,但子项目makefile已经编写为makefile。
答案 0 :(得分:2)
你可以做点什么,
SRCDIR := src
TARGETS := projA projB
.PHONY: $(TARGETS)
$(TARGETS):
cd $(SRCDIR)/$@; $(MAKE) release