-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathconfig.mk
executable file
·135 lines (117 loc) · 2.81 KB
/
config.mk
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# PATHS
MKFILE_PATH=$(abspath $(lastword $(MAKEFILE_LIST)))
CUR_DIR := $(shell pwd)
BLD_DIR := build
INC_DIR := $(realpath $(PWD))
DEPS_DIR := $(realpath third_party)
PREFIX := /opt/xyz
PYTHON3_PATH := $(shell python3 -c "import site; print(site.getsitepackages()[0])")
# COMPILER SETTINGS
BUILD_TYPE := debug
# BUILD_TYPE := release
ADDRESS_SANITIZER := 1
# ADDRESS_SANITIZER := 0
CI_MODE := 0
# CC := clang
CC := gcc
# CC := tcc
# LIBRARIES
STB_CFLAGS:=-I$(DEPS_DIR)/src/stb
OPENSSL_LDFLAGS := -lssl -lcrypto
GLAD_LDFLAGS := -lglad
OPENGL_LDFLAGS := $(GLAD_LDFLAGS) -lGL
FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2)
FREETYPE_LDFLAGS := $(shell pkg-config --libs freetype2)
BLAS_LDFLAGS := -lblas -llapack -llapacke
SUITESPARSE_LDFLAGS := -llapack -lcamd -lamd -lccolamd -lcolamd -lcholmod -lcxsparse
CERES_CFLAGS := -I/usr/include/eigen3
CERES_LDFLAGS := -lgflags -lglog -lceres
ASSIMP_LDFLAGS := -lassimp
APRILTAG_LDFLAGS := -L$(DEPS_DIR)/lib -lapriltag
YAML_LDFLAGS := -lyaml
XYZ_LDFLAGS := -L$(BLD_DIR) -lxyz
# CFLAGS
CFLAGS := -Wall -Wpedantic -Wstrict-prototypes
ifeq ($(BUILD_TYPE), debug)
CFLAGS += -g -fopenmp
else
CFLAGS += -g -O2 -march=native -mtune=native -DNDEBUG -fopenmp
endif
ifeq ($(ADDRESS_SANITIZER), 1)
ifeq ($(CC), gcc)
CFLAGS += -fsanitize=address -static-libasan
else
CFLAGS += -fsanitize=address -static-libsan
endif
endif
ifeq ($(CI_MODE), 1)
CFLAGS += -DMU_REDIRECT_STREAMS=1 -DCI_MODE=1
endif
CFLAGS += \
-I$(INC_DIR) \
-I$(DEPS_DIR)/include \
-fPIC \
$(STB_CFLAGS) \
$(FREETYPE_CFLAGS) \
$(CERES_CFLAGS)
# LDFLAGS
RPATH := -Wl,-rpath,$(DEPS_DIR)/lib
LDFLAGS= \
$(RPATH) \
$(XYZ_LDFLAGS) \
$(CERES_LDFLAGS) \
$(APRILTAG_LDFLAGS) \
$(OPENGL_LDFLAGS) \
$(SUITESPARSE_LDFLAGS) \
$(BLAS_LDFLAGS) \
$(OPENSSL_LDFLAGS) \
$(ASSIMP_LDFLAGS) \
$(YAML_LDFLAGS) \
$(FREETYPE_LDFLAGS) \
-lglfw3 \
-lstdc++ \
-lpthread \
-lm \
-ldl
# ARCHIVER SETTTINGS
AR = ar
ARFLAGS = rvs
# TARGETS
LIBXYZ := $(BLD_DIR)/libxyz.a
LIBXYZ_OBJS := \
$(BLD_DIR)/xyz.o \
$(BLD_DIR)/xyz_ds.o \
$(BLD_DIR)/xyz_http.o \
$(BLD_DIR)/xyz_kitti.o \
$(BLD_DIR)/xyz_gnuplot.o \
$(BLD_DIR)/xyz_aprilgrid.o \
$(BLD_DIR)/xyz_cv.o \
$(BLD_DIR)/xyz_timeline.o \
$(BLD_DIR)/xyz_se.o \
$(BLD_DIR)/xyz_sim.o \
$(BLD_DIR)/xyz_control.o \
$(BLD_DIR)/xyz_gimbal.o \
$(BLD_DIR)/xyz_mav.o \
$(BLD_DIR)/xyz_euroc.o \
$(BLD_DIR)/xyz_calib.o \
$(BLD_DIR)/xyz_octree.o \
$(BLD_DIR)/xyz_ceres.o \
$(BLD_DIR)/xyz_gui.o
# TESTS
TESTS := \
$(BLD_DIR)/test_aprilgrid \
$(BLD_DIR)/test_calib \
$(BLD_DIR)/test_control \
$(BLD_DIR)/test_cv \
$(BLD_DIR)/test_ds \
$(BLD_DIR)/test_euroc \
$(BLD_DIR)/test_gimbal \
$(BLD_DIR)/test_gnuplot \
$(BLD_DIR)/test_gui \
$(BLD_DIR)/test_http \
$(BLD_DIR)/test_kitti \
$(BLD_DIR)/test_mav \
$(BLD_DIR)/test_octree \
$(BLD_DIR)/test_se \
$(BLD_DIR)/test_sim \
$(BLD_DIR)/test_xyz