-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcommon.mk
65 lines (51 loc) · 1.51 KB
/
common.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
# Ignore Xcode's setting since the SDK may contain older versions of Clang and libc++.
unexport SDKROOT
# Default values.
# Boost uses some deprecated builtins (as of Clang 14).
WARNING_FLAGS ?= -Wall -Werror -Wno-deprecated-declarations -Wno-unused
OPT_FLAGS ?= -O2 -g
CMAKE ?= cmake
CP ?= cp
DOT ?= dot
GENGETOPT ?= gengetopt
MKDIR ?= mkdir
NINJA ?= ninja
PATCH ?= patch
RAGEL ?= ragel
TAR ?= tar
WGET ?= wget
GCOV ?= gcov
GCOVR ?= gcovr
CFLAGS ?=
CXXFLAGS ?=
CPPFLAGS ?=
LDFLAGS ?=
SYSTEM_CFLAGS ?=
SYSTEM_CXXFLAGS ?=
SYSTEM_CPPFLAGS ?=
SYSTEM_LDFLAGS ?=
# Target type description, used currently in the .tar.gz name.
TARGET_TYPE ?=
BOOST_ROOT ?= /usr
BOOST_INCLUDE ?= -I$(BOOST_ROOT)/include
BOOST_LIBS ?= -lboost_iostreams
CFLAGS += -std=c99 $(OPT_FLAGS) $(WARNING_FLAGS) $(SYSTEM_CFLAGS)
CXXFLAGS += -std=c++2b $(OPT_FLAGS) $(WARNING_FLAGS) $(SYSTEM_CXXFLAGS)
CPPFLAGS += -DHAVE_CONFIG_H -I../include -I../lib/cereal/include -I../lib/libbio/include -I../lib/libbio/lib/GSL/include -I../lib/libbio/lib/range-v3/include $(BOOST_INCLUDE) $(SYSTEM_CPPFLAGS)
LDFLAGS := $(LDFLAGS) $(SYSTEM_LDFLAGS)
%.cov.o: %.c
$(CC) -c --coverage $(CFLAGS) $(CPPFLAGS) -o $@ $<
%.cov.o: %.cc
$(CXX) -c --coverage $(CXXFLAGS) $(CPPFLAGS) -o $@ $<
%.o: %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
%.o: %.cc
$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<
%.c: %.ggo
$(GENGETOPT) --input="$<"
%.cc: %.rl
$(RAGEL) -L -C -G2 -o $@ $<
%.dot: %.rl
$(RAGEL) -V -p -o $@ $<
%.pdf: %.dot
$(DOT) -Tpdf $< > $@