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