-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
51 lines (33 loc) · 877 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
SHELL := /bin/bash
CC := g++
ifeq ($(CPP_VERSION),)
CPP_VERSION := c++23
endif
ifneq ($(DEBUG),)
CFLAGS += -ggdb3
endif
ifeq ($(OPTIM),)
OPTIM := -O3
endif
CFLAGS += $(OPTIM) -Wall -Wextra -Wno-unused-parameter -Wno-unused-function
ifeq ($(INCLUDE_DIR),)
INCLUDE_DIR := .
endif
HEADER_FILES := HttpRouter.hpp
HEADER_FILES := $(foreach header, $(HEADER_FILES), $(INCLUDE_DIR)/$(header))
INCLUDE_FLAGS := $(foreach include_dir, $(INCLUDE_DIR), -I$(include_dir))
LIBS :=
LD_FLAGS := $(foreach lib, $(LIBS), -l$(lib))
SRCS := tests.cpp
OBJECTS := $(SRCS:.cpp=.o)
TARGETS := $(SRCS:.cpp=)
all: $(TARGETS)
$(OBJECTS): $(HEADER_FILES)
$(TARGETS): $(OBJECTS)
./%: ./%.o
$(CC) $(INCLUDE_FLAGS) -o $@ $< $(LD_FLAGS)
./%.o: ./%.cpp $(HEADER_FILES)
$(CC) -std=$(CPP_VERSION) $(CFLAGS) $(INCLUDE_FLAGS) -o $@ -c $<
clean:
rm -f $(OBJECTS) $(TARGETS)
.PHONY: all clean