config.mk (2017B)
1 VERSION = 0.0.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 ################################################################################ 11 # Tools 12 ################################################################################ 13 CC = cc 14 LD = ld 15 PKG_CONFIG = pkg-config 16 17 ################################################################################ 18 # Dependencies 19 ################################################################################ 20 PCFLAGS_SHARED = 21 PCFLAGS_STATIC = --static 22 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 23 24 PC_CFLAGS = $(PKG_CONFIG) $(PCFLAGS) --cflags 25 PC_LIBS = $(PKG_CONFIG) $(PCFLAGS) --libs 26 27 RSYS_VERSION = 0.14 28 S3D_VERSION = 0.10 29 S3DUT_VERSION = 0.4 30 SSP_VERSION = 0.14 31 SSTL_VERSION = 0.7 32 33 ################################################################################ 34 # Compilation options 35 ################################################################################ 36 WFLAGS =\ 37 -Wall\ 38 -Wcast-align\ 39 -Wconversion\ 40 -Wextra\ 41 -Wmissing-declarations\ 42 -Wmissing-prototypes\ 43 -Wshadow 44 45 CFLAGS_HARDENED =\ 46 -D_FORTIFY_SOURCES=2\ 47 -fcf-protection=full\ 48 -fstack-clash-protection\ 49 -fstack-protector-strong 50 51 CFLAGS_COMMON =\ 52 -std=c89\ 53 -pedantic\ 54 -fvisibility=hidden\ 55 -fstrict-aliasing\ 56 $(CFLAGS_HARDENED)\ 57 $(WFLAGS) 58 59 CFLAGS_RELEASE = -O3 -DNDEBUG $(CFLAGS_COMMON) 60 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 61 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 62 63 CFLAGS_SO = $(CFLAGS) -fPIC 64 CFLAGS_EXE = $(CFLAGS) -fPIE 65 66 ################################################################################ 67 # Linker options 68 ################################################################################ 69 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 70 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 71 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 72 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 73 74 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 75 LDFLAGS_EXE = $(LDFLAGS) -pie 76 77 OCPFLAGS_DEBUG = --localize-hidden 78 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 79 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))