config.mk (2052B)
1 VERSION = 0.3.1 2 PREFIX = /usr/local 3 4 LIB_TYPE = SHARED 5 #LIB_TYPE = STATIC 6 7 BUILD_TYPE = RELEASE 8 #BUILD_TYPE = DEBUG 9 10 LIBPREFIX = $(PREFIX)/lib 11 INCPREFIX = $(PREFIX)/include 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 RSYS_VERSION = 0.14 31 INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys) 32 LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys) -lm 33 34 ################################################################################ 35 # Compilation options 36 ################################################################################ 37 WFLAGS =\ 38 -Wall\ 39 -Wcast-align\ 40 -Wconversion\ 41 -Wextra\ 42 -Wmissing-declarations\ 43 -Wmissing-prototypes\ 44 -Wshadow 45 46 CFLAGS_HARDENED =\ 47 -D_FORTIFY_SOURCES=2\ 48 -fcf-protection=full\ 49 -fstack-clash-protection\ 50 -fstack-protector-strong 51 52 CFLAGS_COMMON =\ 53 -std=c89\ 54 -pedantic\ 55 -fvisibility=hidden\ 56 -fstrict-aliasing\ 57 $(CFLAGS_HARDENED)\ 58 $(WFLAGS) 59 60 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 61 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 62 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 63 64 CFLAGS_SO = $(CFLAGS) -fPIC 65 CFLAGS_EXE = $(CFLAGS) -fPIE 66 67 ################################################################################ 68 # Linker options 69 ################################################################################ 70 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 71 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 72 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 73 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 74 75 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 76 LDFLAGS_EXE = $(LDFLAGS) -pie 77 78 OCPFLAGS_DEBUG = --localize-hidden 79 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 80 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))