config.mk (2384B)
1 VERSION = 0.15.0 2 PREFIX = /usr/local 3 4 LIB_TYPE = SHARED 5 #LIB_TYPE = STATIC 6 7 BUILD_TYPE = RELEASE 8 #BUILD_TYPE = DEBUG 9 10 BINPREFIX = $(PREFIX)/bin 11 LIBPREFIX = $(PREFIX)/lib 12 INCPREFIX = $(PREFIX)/include 13 MANPREFIX = $(PREFIX)/share/man 14 15 ################################################################################ 16 # Tools 17 ################################################################################ 18 AR = ar 19 CC = cc 20 CXX = c++ 21 LD = ld 22 OBJCOPY = objcopy 23 PKG_CONFIG = pkg-config 24 RANLIB = ranlib 25 26 ################################################################################ 27 # Dependencies 28 ################################################################################ 29 PCFLAGS_SHARED = 30 PCFLAGS_STATIC = --static 31 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 32 33 RSYS_VERSION = 0.14 34 RANDOM123_VERSION = 1.14 35 INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags random123 rsys) 36 LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs random123 rsys) 37 38 ################################################################################ 39 # Compilation options 40 ################################################################################ 41 # Comment to disable the Random123 AES RNG 42 AES_CFLAGS = -DWITH_R123_AES -maes 43 44 FLAGS =\ 45 -pedantic\ 46 -fvisibility=hidden\ 47 -fstrict-aliasing\ 48 -Wall\ 49 -Wconversion\ 50 -Wextra\ 51 -Wmissing-declarations\ 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 -std=c89\ 62 -Wmissing-prototypes\ 63 $(CFLAGS_HARDENED)\ 64 $(FLAGS) 65 66 CXXFLAGS_COMMON =\ 67 -std=c++11\ 68 $(CFLAGS_HARDENED)\ 69 $(FLAGS) 70 71 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 72 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 73 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) -fPIE 74 75 CXXFLAGS_RELEASE = -O2 -DNDEBUG $(CXXFLAGS_COMMON) 76 CXXFLAGS_DEBUG = -g $(CXXFLAGS_COMMON) 77 CXXFLAGS = $(CXXFLAGS_$(BUILD_TYPE)) $(AES_CFLAGS) -fPIC 78 79 ################################################################################ 80 # Linker options 81 ################################################################################ 82 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 83 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 84 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 85 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 86 87 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 88 LDFLAGS_EXE = $(LDFLAGS) -pie 89 90 OCPFLAGS_DEBUG = --localize-hidden 91 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 92 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))