-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
46 lines (32 loc) · 927 Bytes
/
Makefile
File metadata and controls
46 lines (32 loc) · 927 Bytes
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
ENABLE_ASAN ?= 0
CXX ?= g++
CXXFLAGS = -std=c++20 -Wall -g
CXXFLAGS += -fno-strict-aliasing # fix libev warnings
CXXFLAGS += -I .
CXXFLAGS += -I third-party/libev/build/include
LDFLAGS = -lpthread
LDFLAGS += -L third-party/libev/build/lib
LDFLAGS += -Wl,-Bstatic -lev -Wl,-Bdynamic
OPTIMIZATION = -O2
ifeq ($(ENABLE_ASAN), 1)
CXXFLAGS += -fsanitize=address -fno-omit-frame-pointer
LDFLAGS += -fsanitize=address
OPTIMIZATION = -O0
endif
CXXFLAGS += $(OPTIMIZATION)
ifeq ($(ENABLE_ASAN), 1)
CXXFLAGS += -fsanitize=address -fno-omit-frame-pointer
LDFLAGS += -fsanitize=address
endif
SRC_DIR := examples
BUILD_DIR := build
SRCS = $(wildcard $(SRC_DIR)/*.cc)
BINS := $(patsubst $(SRC_DIR)/%.cc,$(BUILD_DIR)/%,$(SRCS))
all: prepare $(BINS)
prepare:
mkdir -p $(BUILD_DIR)
$(BUILD_DIR)/%: $(SRC_DIR)/%.cc
$(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS)
clean:
rm -rf $(BUILD_DIR)
.PHONY: all clean prepare