【发布时间】:2014-05-12 11:47:32
【问题描述】:
我有一个 Makefile,然后是 target.mk 子文件夹中的文件。
我想根据命令行构建目标构建其中一个子目标文件。
'制作插件'
如果我在 Makefile 中尝试这样的操作,它不会在子文件夹中构建 target.mk
plugin: BUILD_PLUGIN=Yes
all: libraries binaries
ifeq($(BUILD_PLUGIN),Yes
include subfolder/targets.mk
endif
有人知道我该怎么做吗?使用 MAKECMDGOALS 似乎我也不太幸运。
targets.mk的内容是这样的:
PLUGIN_SRCDIR=myplugin
PLUGIN_CPP_SRCS=\
$(PLUGIN_SRCDIR)/coder.cpp\
PLUGIN_OBJS += $(PLUGIN_CPP_SRCS:.cpp=.o)
OBJS += $(PLUGIN_OBJS)
$(PLUGIN_SRCDIR)/%.o: $(PLUGIN_SRCDIR)/%.cpp
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(PLUGIN_CFLAGS) $(PLUGIN_INCLUDES) -c $(CXX_O) $<
$(LIBPREFIX)myplugin.$(LIBSUFFIX): $(PLUGIN_OBJS)
$(QUIET)rm -f $@
$(QUIET_AR)$(AR) $(AR_OPTS) $+
libraries: $(LIBPREFIX)myplugin.$(LIBSUFFIX)
LIBRARIES += $(LIBPREFIX)myplugin.$(LIBSUFFIX)
谢谢。
【问题讨论】:
-
subfolder/targets.mk的规则在哪里? -
什么意思?我添加了targets.mk的内容
-
你想让你的makefile构建
subfolder/targets.mk吗? -
是的,但我需要保留一个单独的 Make 文件和子文件夹/targets.mk 文件
-
那么你的makefile必须有一个规则来构建
subfolder/targets.mk。我可以假设你的 makefile 中存在这样的规则吗?