我在 Windows 上有以下用于 nmake 的递归 makefile:
MODULES = admin char mailnews merintr intro dm chess
all:
-@for %i in ($(MODULES)) do @if EXIST %i (cd %i && $(MAKE) /$(MAKEFLAGS) && cd ..)
如果子目录中的 make 之一失败,我希望外部 nmake 调用返回错误代码。目前它总是返回 0。
如果内部 make 失败,我尝试了设置错误变量的各种排列,但我无法将其传播到外部级别。
您需要允许
nmake
自行执行循环。以下 makefile 应该可以工作:
MODULES = admin \
char \
mailnews \
merintr \
intro \
dm \
chess \
all: $(MODULES)
clean:
$(MAKE) -l $(MODULES) TARGET=$@
$(MODULES): FORCE
if exist $@\ cd $@ && $(MAKE) -l $(TARGET)
FORCE: