Makefile 问题:如何将几个类似的规则合并为一个

Makefile 问题:如何将几个类似的规则合并为一个

我想知道是否有办法从我必须编辑的 Makefile 中的以下几条相似规则中制定出一条规则:

$(OBJECT_BUILD_DIR)/%.o : $(OBJECT_SRC_DIR)/%.cpp $(OBJECT_BUILD_DIR)/%.d
    @echo ........... Compiling $<
    $(CC) -c -o $@ $< $(OBJECT_CFLAGS)
$(PROPERTIES_BUILD_DIR)/%.o : $(PROPERTIES_SRC_DIR)/%.cpp $(PROPERTIES_BUILD_DIR)/%.d
    @echo ........... Compiling $<
    $(CC) -c -o $@ $< $(PROPERTIES_CFLAGS)
$(WRAPPER_BUILD_DIR)/%.o : $(WRAPPER_SRC_DIR)/%.cpp $(WRAPPER_BUILD_DIR)/%.d
    @echo ........... Compiling $<
    $(CC) -c -o $@ $< $(WRAPPER_CFLAGS)
$(SOCKET_BUILD_DIR)/%.o : $(SOCKET_SRC_DIR)/%.cpp $(SOCKET_BUILD_DIR)/%.d
    @echo ........... Compiling $<
    $(CC) -c -o $@ $< $(SOCKET_CFLAGS)

请注意,除了变量名之外,规则完全相同。我在这里可以使用一个巧妙的 makefile 技巧吗?

仅供参考,*.d 本身是由 g++ 生成的 makefile,描述了 cpp 文件的依赖关系。

谢谢。

相关内容