config.mk (2448B)
1 VERSION = 0.2.0 2 3 PREFIX = /usr/local 4 BINPREFIX = $(PREFIX)/bin 5 LIBPREFIX = $(PREFIX)/lib 6 INCPREFIX = $(PREFIX)/include 7 MANPREFIX = $(PREFIX)/share/man 8 9 LIB_TYPE = SHARED 10 #LIB_TYPE = STATIC 11 12 BUILD_TYPE = RELEASE 13 #BUILD_TYPE = DEBUG 14 15 ################################################################################ 16 # Tools 17 ################################################################################ 18 AR = ar 19 CC = cc 20 LD = ld 21 OBJCOPY = objcopy 22 PKG_CONFIG = pkg-config 23 RANLIB = ranlib 24 25 ################################################################################ 26 # Dependencies 27 ################################################################################ 28 PCFLAGS_SHARED = 29 PCFLAGS_STATIC = --static 30 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 31 32 RNSF_VERSION = 0.1 33 RNSL_VERSION = 0.1 34 RSYS_VERSION = 0.14 35 SARS_VERSION = 0.1 36 SBUF_VERSION = 0.1 37 SCK_VERSION = 0.1 38 SMSH_VERSION = 0.1 39 SSF_VERSION = 0.9 40 SUVM_VERSION = 0.3 41 SVX_VERSION = 0.3 42 43 INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags\ 44 rnsf rnsl rsys sars sbuf sck smsh ssf suvm svx) -fopenmp 45 LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs\ 46 rnsf rnsl rsys sars sbuf sck smsh ssf suvm svx) -fopenmp -lm 47 48 ################################################################################ 49 # Compilation options 50 ################################################################################ 51 WFLAGS =\ 52 -Wall\ 53 -Wcast-align\ 54 -Wconversion\ 55 -Wextra\ 56 -Wmissing-declarations\ 57 -Wmissing-prototypes\ 58 -Wshadow 59 60 # Increase the security and robustness of generated binaries 61 CFLAGS_HARDENED =\ 62 -D_FORTIFY_SOURCES=2\ 63 -fcf-protection=full\ 64 -fstack-clash-protection\ 65 -fstack-protector-strong 66 67 CFLAGS_COMMON =\ 68 -std=c89\ 69 -pedantic\ 70 -fvisibility=hidden\ 71 -fstrict-aliasing\ 72 $(CFLAGS_HARDENED)\ 73 $(WFLAGS) 74 75 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 76 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 77 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 78 79 CFLAGS_SO = $(CFLAGS) -fPIC 80 CFLAGS_EXE = $(CFLAGS) -fPIE 81 82 ################################################################################ 83 # Linker options 84 ################################################################################ 85 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 86 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 87 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 88 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 89 90 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 91 LDFLAGS_EXE = $(LDFLAGS) -pie 92 93 OCPFLAGS_DEBUG = --localize-hidden 94 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 95 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))