config.mk (2188B)
1 VERSION_MAJOR = 0 2 VERSION_MINOR = 2 3 VERSION_PATCH = 0 4 VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH) 5 6 PREFIX = /usr/local 7 8 LIB_TYPE = SHARED 9 #LIB_TYPE = STATIC 10 11 BUILD_TYPE = RELEASE 12 #BUILD_TYPE = DEBUG 13 14 BINPREFIX = $(PREFIX)/bin 15 LIBPREFIX = $(PREFIX)/lib 16 INCPREFIX = $(PREFIX)/include 17 MANPREFIX = $(PREFIX)/share/man 18 19 ################################################################################ 20 # Tools 21 ################################################################################ 22 AR = ar 23 CC = cc 24 LD = ld 25 OBJCOPY = objcopy 26 PKG_CONFIG = pkg-config 27 RANLIB = ranlib 28 29 ################################################################################ 30 # Dependencies 31 ################################################################################ 32 PCFLAGS_SHARED = 33 PCFLAGS_STATIC = --static 34 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 35 36 RSYS_VERSION = 0.14 37 NETCDF_VERSION = 4 38 39 ################################################################################ 40 # Compilation options 41 ################################################################################ 42 WFLAGS =\ 43 -Wall\ 44 -Wcast-align\ 45 -Wconversion\ 46 -Wextra\ 47 -Wmissing-declarations\ 48 -Wmissing-prototypes\ 49 -Wshadow 50 51 # Increase the security and robustness of generated binaries 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 -std=c89\ 60 -pedantic\ 61 -fvisibility=hidden\ 62 -fstrict-aliasing\ 63 $(CFLAGS_HARDENED)\ 64 $(WFLAGS) 65 66 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 67 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 68 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 69 70 CFLAGS_SO = $(CFLAGS) -fPIC 71 CFLAGS_EXE = $(CFLAGS) -fPIE 72 73 ################################################################################ 74 # Linker options 75 ################################################################################ 76 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 77 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 78 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 79 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 80 81 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 82 LDFLAGS_EXE = $(LDFLAGS) -pie 83 84 OCPFLAGS_DEBUG = --localize-hidden 85 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 86 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))