【发布时间】:2012-02-08 02:25:06
【问题描述】:
我有以下 Makefile,我想创建影响 CPPFLAGS 和 CFLAGS 中的值的“调试”和“最佳”目标,如下所示:
include Makefile.inc
DIRS = applib
EXE_APPFS = appfs
EXE_APPMOUNT = appmount
EXE_APPINSPECT = appinspect
EXE_APPCREATE = appcreate
BUILD_APPFS =
BUILD_APPMOUNT = -DAPPMOUNT
OBJS_APPFS = main.o appfs.o
OBJS_APPMOUNT = main.o appmount.o
OBJS_APPINSPECT = appinspect.o
OBJS_APPCREATE = appcreate.o
OBJLIBS = libapp.a
LIBS = -L. -lpthread -lstdc++ -ldl -lrt -largtable2 -lm ./libapp.a /usr/lib64/libfuse.a
# Optimization settings.
debug: CPPFLAGS=$(CPPFLAGS_DEBUG)
debug: CFLAGS=$(CFLAGS_DEBUG)
debug:
@true
optimal: CPPFLAGS=$(CPPFLAGS_OPTIMAL)
optimal: CFLAGS=$(CFLAGS_OPTIMAL)
optimal:
@true
appfs: appfs.o $(OBJLIBS)
@echo "stuff is done here"
appmount: appmount.o $(OBJLIBS)
@echo "stuff is done here"
appmount_optimal: optimal appmount
我遇到的问题是“调试”和“最佳”内部的变量分配不会延续到其他目标(尽管如果我将 @echo $(CPPFLAGS) 放在最佳内部,那可以工作)。做“make optimization appmount”和“make appmount_optimal”都没有得到我期望的结果。
肯定有一种方法可以根据您是否要调试来定义 CPPFLAGS 和 CFLAGS,对吧?
【问题讨论】:
标签: makefile