1.目的
主要是介绍一种多Makefile编译,即多个目录中含有Makefile,其好处是各自Makefile管理其对应目录的文件
2.组件
2.1 原始结构
.
├── include
│ ├── test1.h
│ └── test2.h
├── lib
├── main
│ ├── main.cpp
│ └── Makefile
├── Makefile
├── obj
│ └── Makefile
└── src
├── Makefile
├── test1.cpp
└── test2.cpp
2.2 Makefile
2.2.1顶层Makefile
1 ##top makefile
2
3 ##directory
4 PWD_DIR=$(shell pwd)
5 SRC_DIR=$(PWD_DIR)/src
6 OBJ_DIR=$(PWD_DIR)/obj
7 MAIN_DIR=$(PWD_DIR)/main
8 LIB_DIR=$(PWD_DIR)/lib
9 INC_DIR=$(PWD_DIR)/include
10 BIN_DIR=$(PWD_DIR)/bin
11
12 ##compiler
13 CXX=g++ ##CC=gcc
14 CFLAG=-Wall -g -I$(INC_DIR)
15
16 ##target
17 TARGET=app0_makefile
18
19 ##gloable variable
20 export PWD_DIR SRC_DIR OBJ_DIR MAIN_DIR LIB_DIR INC_DIR BIN_DIR TARGET CXX CFLAG
21
22 ##cmd
23 MKDIR=-mkdir -p
24 RM=-rm