config.mk (2614B)
1 VERSION = 0.5.1 2 PREFIX = /usr/local 3 4 LIB_TYPE = SHARED 5 #LIB_TYPE = STATIC 6 7 BUILD_TYPE = RELEASE 8 #BUILD_TYPE = DEBUG 9 10 ################################################################################ 11 # Tools 12 ################################################################################ 13 AR = ar 14 CC = cc 15 CXX = c++ 16 LD = ld 17 OBJCOPY = objcopy 18 PKG_CONFIG = pkg-config 19 RANLIB = ranlib 20 21 ################################################################################ 22 # Dependencies 23 ################################################################################ 24 PCFLAGS_STATIC = --static 25 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 26 27 CLIPPER2_VERSION = 1.4 28 CLIPPER2_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags Clipper2) 29 CLIPPER2_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs Clipper2) 30 31 POLYGON_VERSION = 0.2 32 POLYGON_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags polygon) 33 POLYGON_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs polygon) 34 35 RSYS_VERSION = 0.14 36 RSYS_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys) 37 RSYS_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys) 38 39 DPDC_CFLAGS = $(CLIPPER2_CFLAGS) $(POLYGON_CFLAGS) $(RSYS_CFLAGS) 40 DPDC_LIBS = $(CLIPPER2_LIBS) $(POLYGON_LIBS) $(RSYS_LIBS) 41 42 ################################################################################ 43 # Compilation options 44 ################################################################################ 45 FLAGS =\ 46 -fvisibility=hidden\ 47 -fstrict-aliasing\ 48 -Wall\ 49 -Wcast-align\ 50 -Wconversion\ 51 -Wextra\ 52 -Wmissing-declarations\ 53 -Wshadow 54 55 CFLAGS_HARDENED =\ 56 -D_FORTIFY_SOURCES=2\ 57 -fcf-protection=full\ 58 -fstack-clash-protection\ 59 -fstack-protector-strong 60 61 CFLAGS_COMMON =\ 62 -std=c89\ 63 -Wmissing-prototypes\ 64 $(CFLAGS_HARDENED)\ 65 $(FLAGS) 66 67 CXXFLAGS_COMMON =\ 68 -std=c++17\ 69 $(CFLAGS_HARDENED)\ 70 $(FLAGS) 71 72 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 73 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 74 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) -fPIE # C is only used for the tests 75 76 CXXFLAGS_DEBUG = -g $(CXXFLAGS_COMMON) 77 CXXFLAGS_RELEASE = -O2 -DNDEBUG $(CXXFLAGS_COMMON) 78 CXXFLAGS = $(CXXFLAGS_$(BUILD_TYPE)) -fPIC # C++ is only used for the library 79 80 ################################################################################ 81 # Linker options 82 ################################################################################ 83 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 84 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 85 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 86 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 87 88 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 89 LDFLAGS_EXE = $(LDFLAGS) -pie 90 91 OCPFLAGS_DEBUG = --localize-hidden 92 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 93 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))