在 Windows 上从递归 nmake 传播错误代码

问题描述 投票:0回答:1

我在 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 失败,我尝试了设置错误变量的各种排列,但我无法将其传播到外部级别。

windows cmd error-code nmake
1个回答
0
投票

您需要允许

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:
© www.soinside.com 2019 - 2024. All rights reserved.