config.mk (2544B)
1 VERSION = 0.6 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_STATIC = --static 24 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 25 26 GMSH_VERSION = 4.14.1 27 GMSH_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags gmsh) 28 GMSH_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs gmsh) 29 30 RSYS_VERSION = 0.14 31 RSYS_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys) 32 RSYS_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys) 33 34 SENC3D_VERSION = 0.7.1 35 SENC3D_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags senc3d) 36 SENC3D_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs senc3d) 37 38 SG3D_VERSION = 0.2 39 SG3D_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags sg3d) 40 SG3D_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs sg3d) 41 42 DPDC_CFLAGS = $(GMSH_CFLAGS) $(RSYS_CFLAGS) $(SENC3D_CFLAGS) $(SG3D_CFLAGS) 43 DPDC_LIBS = $(GMSH_LIBS) $(RSYS_LIBS) $(SENC3D_LIBS) $(SG3D_LIBS) -lm 44 45 ################################################################################ 46 # Compilation options 47 ################################################################################ 48 WFLAGS =\ 49 -Wall\ 50 -Wcast-align\ 51 -Wconversion\ 52 -Wextra\ 53 -Wmissing-declarations\ 54 -Wmissing-prototypes\ 55 -Wshadow 56 57 CFLAGS_HARDENED =\ 58 -D_FORTIFY_SOURCES=2\ 59 -fcf-protection=full\ 60 -fstack-clash-protection\ 61 -fstack-protector-strong 62 63 CFLAGS_COMMON =\ 64 -std=c89\ 65 -pedantic\ 66 -fPIC\ 67 -fvisibility=hidden\ 68 -fstrict-aliasing\ 69 $(CFLAGS_HARDENED)\ 70 $(WFLAGS) 71 72 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 73 CFLAGS_RELEASE = -O2 -DNDEBUG $(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))