config.mk (2186B)
1 VERSION = 0.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_SHARED = 29 PCFLAGS_STATIC = --static 30 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 31 32 ATRTP_VERSION = 0.1 33 SMSH_VERSION = 0.2 34 SUVM_VERSION = 0.4 35 RSYS_VERSION = 0.14 36 37 INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags atrtp smsh suvm rsys) 38 LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs atrtp smsh suvm rsys) 39 40 ################################################################################ 41 # Compilation options 42 ################################################################################ 43 WFLAGS =\ 44 -Wall\ 45 -Wcast-align\ 46 -Wconversion\ 47 -Wextra\ 48 -Wmissing-declarations\ 49 -Wmissing-prototypes\ 50 -Wshadow 51 52 CFLAGS_HARDENED =\ 53 -D_FORTIFY_SOURCES=2\ 54 -fcf-protection=full\ 55 -fstack-clash-protection\ 56 -fstack-protector-strong 57 58 CFLAGS_COMMON =\ 59 -pedantic\ 60 -fvisibility=hidden\ 61 -fstrict-aliasing\ 62 $(CFLAGS_HARDENED)\ 63 $(WFLAGS) 64 65 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 66 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 67 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 68 69 CFLAGS_SO = $(CFLAGS) -fPIC 70 CFLAGS_EXE = $(CFLAGS) -fPIE 71 72 ################################################################################ 73 # Linker options 74 ################################################################################ 75 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 76 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 77 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 78 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 79 80 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 81 LDFLAGS_EXE = $(LDFLAGS) -pie 82 83 OCPFLAGS_DEBUG = --localize-hidden 84 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 85 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))