Xinqi Bao's Git

first commit, implemented game wordscapes
[CheaterHub.git] / server / Makefile
1 EXE = CheaterHub
2
3 export DIR = $(shell pwd)
4 export BUILD_DIR = $(DIR)/build
5
6 WORDSCAPES_DIR = wordscapes
7
8 vpath %.o $(BUILD_DIR)
9
10 export MAKE := make
11 export CXX := g++
12 export OPTIONS = -std=c++11
13 MODE ?= debug
14
15 OBJ = cheaterHub.o
16 OBJ_ADDITION = wordscapes.o
17
18 ifeq ($(strip $(MODE)), release)
19 OPTIONS += -O2
20 TARGET = $(EXE)
21 else
22 OPTIONS += -g
23 TARGET = $(EXE)-staging
24 endif
25
26 all: build_wordscapes $(TARGET)
27
28 build_wordscapes:
29 @mkdir -p $(BUILD_DIR)
30 $(MAKE) -C $(WORDSCAPES_DIR)
31
32 $(TARGET): $(OBJ)
33 $(CXX) $(OPTIONS) -pthread \
34 $(addprefix $(BUILD_DIR)/, $(OBJ)) \
35 $(addprefix $(BUILD_DIR)/, $(OBJ_ADDITION)) \
36 -o $(BUILD_DIR)/$@
37
38 $(OBJ):%.o:%.cc
39 @mkdir -p $(BUILD_DIR)
40 $(CXX) $(OPTIONS) -c $< -o $(BUILD_DIR)/$@
41
42 clean:
43 $(MAKE) -C $(WORDSCAPES_DIR) clean
44 rm -rf $(BUILD_DIR)