标签:makefile
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】build/ //build根目录 ├── unix //unix平台项目下不带调试信息输出目录 │ ├── bin //存放可执行文件目录 │ ├── lib //存放可文件目录 │ └── obj //存放.o文件目录,该目录下将每个模块生成的.o文件各自的目录下面 │ ├── ipc │ ├── main │ └── tools └── unix_dbg ////unix平台项目下带调试信息输出目录 ├── bin ├── lib └── obj ├── ipc ├── main └── tools 14 directories, 0 files
ifeq ($(DEBUG_SYMBOLS), TRUE) >---BUILDDIR = ./build/$(PLATFORM)_dbg else >---BUILDDIR = ./build/$(PLATFORM) endif all : $(BUILDDIR) $(MODULES) $(BUILDDIR): >---@echo " Create directory $@ ..." >---mkdir -p $(BUILDDIR)/bin $(BUILDDIR)/lib我们在all目标里面增加了其依赖目标BUILDDIR,该目标对应的规则为创建bin目录和lib目录。这样每次编译之前都会创建目录。
…… # define a root build directory base on the platform # if without a SRC_BASE defined, just use local src directory ifeq ($(SRC_BASE),) >---BUILDDIR = $(MOD_SRC_DIR) >---OBJDIR = $(MOD_SRC_DIR) >---LIBDIR = $(MOD_SRC_DIR) >---BINDIR = $(MOD_SRC_DIR) else >---ifeq ($(DEBUG_SYMBOLS), TRUE) >--->---BUILDDIR = $(SRC_BASE)/build/$(PLATFORM)_dbg >---else >--->---BUILDDIR = $(SRC_BASE)/build/$(PLATFORM) >---endif >---OBJDIR = $(BUILDDIR)/obj/$(MODULE) >---LIBDIR = $(BUILDDIR)/lib >---BINDIR = $(BUILDDIR)/bin endif …… ifeq ($(MAKELEVEL), 0) all : msg else all : lib bin endif lib : $(OBJDIR) $(LIBDIR)/$(SRC_LIB) bin : $(OBJDIR) $(BINDIR)/$(SRC_BIN) $(OBJDIR) : >---@echo " MKDIR $(notdir $@)..." >---@mkdir -p $@ ……此时我们编译一下后查看build目录:
build/ └── unix_dbg ├── bin ├── lib └── obj ├── ipc ├── main └── tools 7 directories, 0 files由于我们是开启了调试信息,所以创建了unix_dbg目录,并且该目录下创建了bin、lib、obj目录及其模块目录,但我们没有发现有文件存放在里面。
标签:makefile
原文地址:http://blog.csdn.net/shallnet/article/details/38050041