config.mk (2676B)
1 VERSION = 0.3.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 LD = ld 16 OBJCOPY = objcopy 17 PKG_CONFIG = pkg-config 18 RANLIB = ranlib 19 20 ################################################################################ 21 # Dependencies 22 ################################################################################ 23 PCFLAGS_SHARED = 24 PCFLAGS_STATIC = --static 25 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 26 27 HTCP_VERSION = 0.1 28 HTCP_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags htcp) 29 HTCP_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs htcp) 30 31 HTGOP_VERSION = 0.2 32 HTGOP_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags htgop) 33 HTGOP_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs htgop) 34 35 HTMIE_VERSION = 0.1 36 HTMIE_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags htmie) 37 HTMIE_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs htmie) 38 39 RSYS_VERSION = 0.14 40 RSYS_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys) 41 RSYS_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys) 42 43 SVX_VERSION = 0.3 44 SVX_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags svx) 45 SVX_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs svx) 46 47 DPDC_CFLAGS =\ 48 $(HTCP_CFLAGS)\ 49 $(HTGOP_CFLAGS)\ 50 $(HTMIE_CFLAGS)\ 51 $(RSYS_CFLAGS)\ 52 $(SVX_CFLAGS)\ 53 -fopenmp 54 55 DPDC_LIBS =\ 56 $(HTCP_LIBS)\ 57 $(HTGOP_LIBS)\ 58 $(HTMIE_LIBS)\ 59 $(RSYS_LIBS)\ 60 $(SVX_LIBS)\ 61 -fopenmp\ 62 -lm 63 64 ################################################################################ 65 # Compilation options 66 ################################################################################ 67 WFLAGS =\ 68 -Wall\ 69 -Wcast-align\ 70 -Wconversion\ 71 -Wextra\ 72 -Wmissing-declarations\ 73 -Wmissing-prototypes\ 74 -Wshadow 75 76 CFLAGS_HARDENED =\ 77 -D_FORTIFY_SOURCES=2\ 78 -fcf-protection=full\ 79 -fstack-clash-protection\ 80 -fstack-protector-strong 81 82 CFLAGS_COMMON =\ 83 -std=c89\ 84 -pedantic\ 85 -fPIC\ 86 -fvisibility=hidden\ 87 -fstrict-aliasing\ 88 $(CFLAGS_HARDENED)\ 89 $(WFLAGS) 90 91 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 92 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 93 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 94 95 ################################################################################ 96 # Linker options 97 ################################################################################ 98 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 99 LDFLAGS_COMMON = -shared -Wl,--no-undefined $(LDFLAGS_HARDENED) 100 LDFLAGS_DEBUG = $(LDFLAGS_COMMON) 101 LDFLAGS_RELEASE = -s $(LDFLAGS_COMMON) 102 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 103 104 OCPFLAGS_DEBUG = --localize-hidden 105 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 106 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))