config.mk (2354B)
1 VERSION_MAJOR = 0 2 VERSION_MINOR = 11 3 VERSION_PATCH = 0 4 VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH) 5 6 PREFIX = /usr/local 7 LIBPREFIX = $(PREFIX)/lib 8 INCPREFIX = $(PREFIX)/include 9 10 LIB_TYPE = SHARED 11 #LIB_TYPE = STATIC 12 13 BUILD_TYPE = RELEASE 14 #BUILD_TYPE = DEBUG 15 16 ################################################################################ 17 # Tools 18 ################################################################################ 19 AR = ar 20 CC = cc 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.15 34 S3D_VERSION = 0.10 35 S3DUT_VERSION = 0.4 36 SCPR_VERSION = 0.5 37 SSF_VERSION = 0.10 38 SSP_VERSION = 0.15 39 SCEM_VERSION = 0.1 40 41 INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys s3d s3dut scpr ssf star-sp scem)\ 42 -fopenmp 43 LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys s3d s3dut scpr ssf star-sp scem)\ 44 -fopenmp -lm 45 46 ################################################################################ 47 # Compilation options 48 ################################################################################ 49 WFLAGS =\ 50 -Wall\ 51 -Wcast-align\ 52 -Wconversion\ 53 -Wextra\ 54 -Wmissing-declarations\ 55 -Wmissing-prototypes\ 56 -Wshadow 57 58 CFLAGS_HARDENED =\ 59 -D_FORTIFY_SOURCES=2\ 60 -fcf-protection=full\ 61 -fstack-clash-protection\ 62 -fstack-protector-strong 63 64 CFLAGS_COMMON =\ 65 -std=c89\ 66 -pedantic\ 67 -fvisibility=hidden\ 68 -fstrict-aliasing\ 69 $(CFLAGS_HARDENED)\ 70 $(WFLAGS) 71 72 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 73 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 74 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 75 76 CFLAGS_SO = $(CFLAGS) -fPIC 77 CFLAGS_EXE = $(CFLAGS) -fPIE 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))