config.mk (2209B)
1 VERSION = 0.6.1 # Library version 2 PREFIX = /usr/local 3 4 LIB_TYPE = SHARED 5 #LIB_TYPE = STATIC 6 7 BUILD_TYPE = RELEASE 8 #BUILD_TYPE = DEBUG 9 10 # Instruction sets to be used 11 # SIMD_WIDTH = 128 12 SIMD_WIDTH = 256 13 14 LIBPREFIX = $(PREFIX)/lib 15 INCPREFIX = $(PREFIX)/include 16 17 ################################################################################ 18 # Tools 19 ################################################################################ 20 AR = ar 21 CC = cc 22 LD = ld 23 PKG_CONFIG = pkg-config 24 OBJCOPY = objcopy 25 RANLIB = ranlib 26 27 ################################################################################ 28 # Dependencies 29 ################################################################################ 30 PCFLAGS_SHARED = 31 PCFLAGS_STATIC = --static 32 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 33 34 RSYS_VERSION = 0.14 35 SLEEF_VERSION = 3.6 36 37 INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys sleef) 38 LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys sleef) 39 40 ################################################################################ 41 # Compilation options 42 ################################################################################ 43 WFLAGS =\ 44 -Wall\ 45 -Wcast-align\ 46 -Wconversion\ 47 -Wextra\ 48 -Wmissing-declarations\ 49 -Wmissing-prototypes\ 50 -Wshadow 51 52 CFLAGS_HARDENED =\ 53 -D_FORTIFY_SOURCES=2\ 54 -fcf-protection=full\ 55 -fstack-clash-protection\ 56 -fstack-protector-strong 57 58 CFLAGS_SIMD = -march=native 59 60 CFLAGS_COMMON =\ 61 -pedantic\ 62 -fPIC\ 63 -fvisibility=hidden\ 64 -fstrict-aliasing\ 65 $(WFLAGS)\ 66 $(CFLAGS_HARDENED)\ 67 $(CFLAGS_SIMD) 68 69 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 70 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 71 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 72 73 CFLAGS_SO = $(CFLAGS) -fPIC 74 CFLAGS_EXE = $(CFLAGS) -fPIE 75 76 ################################################################################ 77 # Linker options 78 ################################################################################ 79 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 80 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 81 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 82 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 83 84 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 85 LDFLAGS_EXE = $(LDFLAGS) -pie 86 87 OCPFLAGS_DEBUG = --localize-hidden 88 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 89 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))