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