在Makefile中,如何在构建任何其他对象之前声明应该始终存在的目标?
我有一个项目,它构建了几个人工制品,包括共享库、静态库和单元测试可执行文件。该Makefile中的大多数目标使用Google的协议缓冲区,该缓冲区构建在该项目的子模块中在Makefile中,如何在构建任何其他对象之前声明应该始终存在的目标?,makefile,Makefile,我有一个项目,它构建了几个人工制品,包括共享库、静态库和单元测试可执行文件。该Makefile中的大多数目标使用Google的协议缓冲区,该缓冲区构建在该项目的子模块中 现在,几乎该Makefile的所有目标都需要构建协议缓冲区,但必须为所有目标添加一个先决条件似乎很乏味那么,是否有方法指定在生成任何其他目标之前,Makefile中的目标始终存在?类似的方法可以做到这一点 PROTOBUF := $(CURDIR)/protobuf SHELL_OUTPUT := $(shell mak
现在,几乎该Makefile的所有目标都需要构建协议缓冲区,但必须为所有目标添加一个先决条件似乎很乏味那么,是否有方法指定在生成任何其他目标之前,Makefile中的目标始终存在?类似的方法可以做到这一点
PROTOBUF := $(CURDIR)/protobuf
SHELL_OUTPUT := $(shell make -C $(PROTOBUF) 2>&1)
ifneq ($(filter Stop.,$(SHELL_OUTPUT)),)
$(error $(SHELL_OUTPUT))
endif
all: a b
a:
...
b:
...