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