小编use*_*077的帖子

Make:设置具有不同目标的目标特定变量

我正在构建一个将用于构建发布或调试目标库的 makefile。我想根据请求的 makefile 目标将对象和自动生成的依赖文件放入调试或发布目录结构中。我不想指定可测试的 make 命令行参数(即 DBG=1),但更喜欢分别运行 make -f Makefile 或 make -f Makefiel dbg 来实现发布和调试目标目标。把那部分下来。我知道我无法分配包含对象目录名称(发布或调试)的特定于目标的变量,该变量可用作规则中目标规范的一部分,就像我在下面显示的示例中所做的那样。在这个例子中,OBJDIR 是我想根据构建目标设置的特定于目标的变量。出于这个原因,在这个例子中,$(OBJDIR) 在目标规则 $(OBJDIR)/%.o 中为空。关于如何很好地执行建议步骤的任何建议?(显示的示例只是一个未经验证的复制/粘贴示例......语法未经验证......事实上,我无法正确显示选项卡......我希望得到一些实现想法)。(此外,$(OBJDIR) 未设置在干净的目标中,如图所示......因为它不在 dbg/all 目标依赖层次结构中......想法?)提前致谢。

生成文件:

OBJS    := a.o b.o c.o  
SRCS    := $(OBJS:.o=.c)  

-- Set up the release and the debug directory paths and object filenames  
RELEASE_DIR := ./release  
RELEASE_OBJ := $(OBJS:%=$(RELEASE_DIR)/%)  
DEBUG_DIR   := ./debug  
DEBUG_OBJ   := $(OBJS:%=$(DEBUG_DIR)/%)  

.PHONY : all dbg 

all: CFLAGS = -O3  
all: OBJDIR := RELEASE_DIR  
all: df     := $(RELEASE_DIR)/$(*F)  
all: init_release lib1.so  

dbg: CFLAGS = -g …
Run Code Online (Sandbox Code Playgroud)

makefile

3
推荐指数
1
解决办法
5632
查看次数

标签 统计

makefile ×1