config.mk (2379B)
1 VERSION = 0.10.0 2 PREFIX = /usr/local 3 4 LIB_TYPE = SHARED 5 #LIB_TYPE = STATIC 6 7 BUILD_TYPE = RELEASE 8 #BUILD_TYPE = DEBUG 9 10 SIMD_WIDTH = NONE 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 OBJCOPY = objcopy 24 PKG_CONFIG = pkg-config 25 RANLIB = ranlib 26 27 ################################################################################ 28 # Dependencies 29 ################################################################################ 30 PCFLAGS_STATIC = --static 31 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 32 33 RSIMD_VERSION = 0.5 34 RSYS_VERSION = 0.14 35 SSP_VERSION = 0.14 36 RSIMD_PC_128 = rsimd 37 RSIMD_PC_256 = rsimd 38 39 INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys star-sp $(RSIMD_PC_$(SIMD_WIDTH))) 40 LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys star-sp $(RSIMD_PC_$(SIMD_WIDTH))) -lm 41 42 ################################################################################ 43 # Compilation options 44 ################################################################################ 45 WFLAGS =\ 46 -Wall\ 47 -Wcast-align\ 48 -Wconversion\ 49 -Wextra\ 50 -Wmissing-declarations\ 51 -Wmissing-prototypes\ 52 -Wshadow 53 54 CFLAGS_SIMD_128 = -DSSF_USE_SIMD_128 55 CFLAGS_SIMD_256 = $(CFLAGS_SIMD_128) -DSSF_USE_SIMD_256 56 CFLAGS_SIMD = $(CFLAGS_SIMD_$(SIMD_WIDTH)) 57 58 CFLAGS_HARDENED =\ 59 -D_FORTIFY_SOURCES=2\ 60 -fcf-protection=full\ 61 -fstack-clash-protection\ 62 -fstack-protector-strong 63 64 CFLAGS_COMMON =\ 65 -std=c89\ 66 -pedantic\ 67 -fvisibility=hidden\ 68 -fstrict-aliasing\ 69 $(CFLAGS_HARDENED)\ 70 $(WFLAGS)\ 71 72 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 73 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 74 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 75 76 CFLAGS_SO = $(CFLAGS) -fPIC 77 CFLAGS_EXE = $(CFLAGS) -fPIE 78 79 ################################################################################ 80 # Linker options 81 ################################################################################ 82 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 83 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 84 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 85 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 86 87 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 88 LDFLAGS_EXE = $(LDFLAGS) -pie 89 90 OCPFLAGS_DEBUG = --localize-hidden 91 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 92 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))