config.mk (2545B)
1 VERSION = 0.7.2 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 RSYS_VERSION = 0.14 28 RSYS_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys) 29 RSYS_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys) 30 31 S3D_VERSION = 0.10 32 S3D_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags s3d) 33 S3D_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs s3d) 34 35 # Optional dependency 36 SSP_VERSION = 0.14 37 SSP_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags star-sp) 38 SSP_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs star-sp) 39 40 # Optional dependency 41 S3DUT_VERSION = 0.4 42 S3DUT_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags s3dut) 43 S3DUT_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs s3dut) 44 45 DPDC_CFLAGS = $(RSYS_CFLAGS) $(S3D_CFLAGS) -fopenmp 46 DPDC_LIBS = $(RSYS_LIBS) $(S3D_LIBS) -lm -fopenmp 47 48 ################################################################################ 49 # Compilation options 50 ################################################################################ 51 WFLAGS =\ 52 -Wall\ 53 -Wcast-align\ 54 -Wconversion\ 55 -Wextra\ 56 -Wmissing-declarations\ 57 -Wmissing-prototypes\ 58 -Wshadow 59 60 CFLAGS_HARDENED =\ 61 -D_FORTIFY_SOURCES=2\ 62 -fcf-protection=full\ 63 -fstack-clash-protection\ 64 -fstack-protector-strong 65 66 CFLAGS_COMMON =\ 67 -std=c89\ 68 -pedantic\ 69 -fvisibility=hidden\ 70 -fstrict-aliasing\ 71 $(CFLAGS_HARDENED)\ 72 $(WFLAGS) 73 74 CFLAGS_RELEASE = -O3 -DNDEBUG $(CFLAGS_COMMON) 75 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 76 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 77 78 CFLAGS_SO = $(CFLAGS) -fPIC 79 CFLAGS_EXE = $(CFLAGS) -fPIE 80 81 ################################################################################ 82 # Linker options 83 ################################################################################ 84 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 85 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 86 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 87 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 88 89 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 90 LDFLAGS_EXE = $(LDFLAGS) -pie 91 92 OCPFLAGS_DEBUG = --localize-hidden 93 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 94 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))