config.mk (2228B)
1 VERSION = 0.1.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 ################################################################################ 11 # Tools 12 ################################################################################ 13 AR = ar 14 CC = cc 15 LD = ld 16 OBJCOPY = objcopy 17 PKG_CONFIG = pkg-config 18 RANLIB = ranlib 19 20 ################################################################################ 21 # Dependencies 22 ################################################################################ 23 PCFLAGS_SHARED = 24 PCFLAGS_STATIC = --static 25 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 26 27 NETCDF_VERSION = 4 28 NETCDF_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags netcdf) 29 NETCDF_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs netcdf) 30 31 RSYS_VERSION = 0.14 32 RSYS_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys) 33 RSYS_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys) 34 35 DPDC_CFLAGS = $(NETCDF_CFLAGS) $(RSYS_CFLAGS) 36 DPDC_LIBS = $(NETCDF_LIBS) $(RSYS_LIBS) 37 38 ################################################################################ 39 # Compilation options 40 ################################################################################ 41 WFLAGS =\ 42 -Wall\ 43 -Wcast-align\ 44 -Wconversion\ 45 -Wextra\ 46 -Wmissing-declarations\ 47 -Wmissing-prototypes\ 48 -Wshadow 49 50 CFLAGS_HARDENED =\ 51 -D_FORTIFY_SOURCES=2\ 52 -fcf-protection=full\ 53 -fstack-clash-protection\ 54 -fstack-protector-strong 55 56 CFLAGS_COMMON =\ 57 -std=c89\ 58 -pedantic\ 59 -fvisibility=hidden\ 60 -fstrict-aliasing\ 61 $(CFLAGS_HARDENED)\ 62 $(WFLAGS) 63 64 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 65 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 66 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 67 68 CFLAGS_SO = $(CFLAGS) -fPIC 69 CFLAGS_EXE = $(CFLAGS) -fPIE 70 71 ################################################################################ 72 # Linker options 73 ################################################################################ 74 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 75 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 76 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 77 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 78 79 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 80 LDFLAGS_EXE = $(LDFLAGS) -pie 81 82 OCPFLAGS_DEBUG = --localize-hidden 83 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 84 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))