-
Notifications
You must be signed in to change notification settings - Fork 76
/
Copy pathMakefile
65 lines (55 loc) · 992 Bytes
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#配置编译参数
DEBUG = 1
SHARED = 0
BITS64 = 1
CC = gcc
GG = g++
AR = ar rc
CFLAGS = -fPIC -Wall -std=gnu11
GFLAGS = -fPIC -Wall -std=c++11
LFLAGS =
OUT_DIR = $(PWD)/out/
TMP_DIR = $(PWD)/out/tmp/
ifeq ($(BITS64),0)
CFLAGS += -m32
GFLAGS += -m32
LFLAGS += -m32
OUT_DIR = $(PWD)/out/linux32/
TMP_DIR = $(PWD)/out/tmp/linux32/
else
CFLAGS += -m64
GFLAGS += -m64
LFLAGS += -m64
OUT_DIR = $(PWD)/out/linux64/
TMP_DIR = $(PWD)/out/tmp/linux64/
endif
ifeq ($(DEBUG),0)
#release
CFLAGS += -O -DNDEBUG
GFLAGS += -O -DNDEBUG
else
CFLAGS += -g
GFLAGS += -g
endif
ifeq ($(SHARED),0)
#static
CFLAGS += -static
LFLAGS += -static
TAGTYPE = _static
else
TAGTYPE = _shared
endif
export CC GG AR CFLAGS GFLAGS LFLAGS OUT_DIR TMP_DIR TAGTYPE
#创建输出目录
$(shell mkdir -p $(OUT_DIR))
SUBDIR = projects#thirdparty common uvmodules projects
all:$(SUBDIR)
#
$(SUBDIR):ECHO
make -C $@
ECHO:
@echo $@
.PHONY:clean
clean:CLEANDIR
CLEANDIR:ECHO
make -C $(SUBDIR) clean