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