在Linux中使用GNU make进行项目。我想要测试和prod构建,并尝试使用条件指令实现它。测试版本与prod版本有不同的源文件和标记等。
首先我发现如果块仅在它跟随目标时起作用。
# More variable definition skipped.
SRCS := some source files
CXXFLAGS := some complile flags
test: ${myBinary}
ifeq (${BUILD}, UNIT)
@echo BUILD == ${BUILD}
SRCS += ${TEST_SRCS}
CXXFLAGS += some test flags
endif
我使用这种方式,以便稍后我可以使用模式来构建.o文件,而不是列出2个不同版本的所有源文件。基本上我试图找到一种方法来使用模式来构建.o文件,但仍然有不同的文件,标志等用于测试/ prod构建。
${BUILD_DIR}/%.o : %.cpp
${CXX} -c ${CXXFLAGS} ${INCS} $< -o $@
但是在我把它放在目标旁边之后,仍然遇到了这个错误:
make: SRCS: Command not found
make: *** [test] Error 127
如何修复它以达到我的目标?
关于组织makefile以实现目标的其他建议也是最受欢迎的。
修改