-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
59 lines (45 loc) · 1.18 KB
/
Copy pathMakefile
File metadata and controls
59 lines (45 loc) · 1.18 KB
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
NAME = huffmanCoding
TEST_NAME = huffmanCodingTest
CC = g++
SRC_DIR = ./src
INC_DIR = ./include
LIB_DIR = $(INC_DIR)/lib
BIN_DIR = ./bin
OBJ_DIR = ./obj
CFLAGS = --std=c++11 -Wall -O0 -g
TEST_DIR = $(SRC_DIR)/test
EXE = $(BIN_DIR)/$(NAME)
EXE_TEST = $(BIN_DIR)/$(TEST_NAME)
OBJS = \
$(OBJ_DIR)/Compactor.o \
$(OBJ_DIR)/TreeNode.o \
$(OBJ_DIR)/QuickSort.o \
$(OBJ_DIR)/AVLTree.o
TEST_OBJS = \
$(OBJ_DIR)/TestLinkedList.o \
$(OBJ_DIR)/TestQuickSort.o
all: mkdir $(EXE)
run: all
$(EXE) $(ARGS)
mkdir:
mkdir -p $(BIN_DIR)
mkdir -p $(OBJ_DIR)
$(EXE): $(OBJ_DIR)/$(NAME).o $(OBJS)
$(CC) $(CFLAGS) $< $(OBJS) -o $@
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(INC_DIR)/%.hpp
$(CC) -c $(CFLAGS) $< -I $(INC_DIR) -o $@
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
$(CC) -c $(CFLAGS) $< -I $(INC_DIR) -o $@
test: mkdir $(EXE_TEST)
run_test: test
$(EXE_TEST)
$(EXE_TEST): $(OBJ_DIR)/$(TEST_NAME).o $(OBJS) $(TEST_OBJS)
$(CC) $(CFLAGS) $< $(OBJS) $(TEST_OBJS) -o $(EXE_TEST)
$(OBJ_DIR)/%.o: $(TEST_DIR)/%.cpp
$(CC) -c $(CFLAGS) $< -I $(INC_DIR) -I $(LIB_DIR) -o $@
$(OBJ_DIR)/%.o: $(TEST_DIR)/%.cpp
$(CC) -c $(CFLAGS) $< -I $(INC_DIR) -I $(LIB_DIR) -o $@
clean:
rm -f $(OBJ_DIR)/*
rm -f $(EXE)
rm -f $(EXE_TEST)