config.mk (2213B)
1 VERSION = 0.0 2 3 PREFIX = /usr/local 4 BINPREFIX = $(PREFIX)/bin 5 LIBPREFIX = $(PREFIX)/lib 6 INCPREFIX = $(PREFIX)/include 7 MANPREFIX = $(PREFIX)/share/man 8 9 LIB_TYPE = SHARED 10 #LIB_TYPE = STATIC 11 12 BUILD_TYPE = RELEASE 13 #BUILD_TYPE = DEBUG 14 15 ################################################################################ 16 # Tools 17 ################################################################################ 18 AR = ar 19 CC = cc 20 LD = ld 21 OBJCOPY = objcopy 22 PKG_CONFIG = pkg-config 23 RANLIB = ranlib 24 25 ################################################################################ 26 # Dependencies 27 ################################################################################ 28 PCFLAGS_STATIC = --static 29 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 30 31 LBLU_VERSION = 0.0.1 32 RSYS_VERSION = 0.14 33 SHTR_VERSION = 0 34 35 # Dependencies for the sln-slab util 36 SSP_VERSION = 0.15 37 SBB_VERSION = 0.0 38 39 INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags lblu rsys shtr) 40 LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs lblu rsys shtr) -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_HARDENED =\ 55 -D_FORTIFY_SOURCES=2\ 56 -fcf-protection=full\ 57 -fstack-clash-protection\ 58 -fstack-protector-strong 59 60 CFLAGS_COMMON=\ 61 -pedantic\ 62 -fvisibility=hidden\ 63 -fstrict-aliasing\ 64 $(CFLAGS_HARDENED)\ 65 $(WFLAGS) 66 67 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 68 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 69 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 70 71 CFLAGS_SO = $(CFLAGS) -fPIC 72 CFLAGS_EXE = $(CFLAGS) -fPIE 73 74 ################################################################################ 75 # Linker options 76 ################################################################################ 77 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 78 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 79 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 80 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 81 82 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 83 LDFLAGS_EXE = $(LDFLAGS) -pie 84 85 OCPFLAGS_DEBUG = --localize-hidden 86 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 87 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))