/
Makefile
76 lines (58 loc) · 1.6 KB
/
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
66
67
68
69
70
71
72
73
74
75
76
# IMPORTANCE!!!
# This Makefile is deprecated. It is recommended to use WAF (./waf configure; ./waf)
# to build the project.
# This file is kept though, to make us easier to use Makefile-support IDE such as
# netbeans to analyze our codes.
#
.PHONY: all mpaxos test kvdb clean
export VERSION_MAJOR=1
export VERSION_MINOR=0
export VERSION_REVISION=$(shell git log -1 --decorate=no --abbrev=6 --no-notes --no-color --format="%h")
export debug ?= y
export V ?= @
export DIR_BASE ?= ${PWD}
export DIR_OBJ ?= ${PWD}/obj
export DIR_BIN ?= ${PWD}/bin
export DIR_INC ?= ${PWD}/include
export MAKEFILE_MAIN ?= 1
export COMMA:= ,
export EMPTY:=
export SPACE:=$(EMPTY) $(EMPTY)
#export CC=gcc
#export CXX=g++
#export LD=gcc
#export LDXX=c++
export CC=clang
export CXX=clang++
export LD=clang
export LDXX=clang++
ifeq ($(debug),y)
export CCFLAGS=-std=c99 -O0 -g -pg -c -Wall -Wno-unused -rdynamic
export CXXFLAGS=-std=c++11 -O0 -g -pg -c -Wall -Wno-unused
export LDFLAGS=-O0 -g -p -pg -rdynamic
export VERSION_SUFFIX=.out
else
export CCFLAGS=-std=c99 -O2 -c -Wall -Wno-unused
export CXXFLAGS=-std=c++11 -O2 -c -Wall -Wno-unused
export LDFLAGS=-O2
export VERSION_SUFFIX=-$(shell uname -m)-$(VERSION_MAJOR).$(VERSION_MINOR)-$(VERSION_REVISION).out
endif
all: mpaxos test kvdb
$(DIR_BIN):
$(V)echo "[ MD ] $@"
$(V)mkdir -p $@
$(DIR_OBJ):
$(V)echo "[ MD ] $@"
$(V)mkdir -p $@
mpaxos: $(DIR_BIN) $(DIR_OBJ)
$(V)make -C libmpaxos
kvdb: mpaxos
$(V)make -C libkvdb
$(V)make -C test kvdb
test_%: test
test: mpaxos kvdb
$(V)make -C test
clean:
-rm -rf $(DIR_OBJ)
-rm -rf $(DIR_BIN)
# vim: ai:ts=4:sw=4:et!