不同版本的不同文件和标志集

时间:2014-11-24 03:48:20

标签: makefile gnu-make

在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以实现目标的其他建议也是最受欢迎的。

修改

  • 生成的2个可执行文件可以有不同的名称,但可以位于同一位置。
  • 我想将对象文件放在$ {BUILD_DIR}中以将它们与源文件分开。
  • “未找到命令”错误在unindenting SRCS行后消失。

0 个答案:

没有答案