config.mk (3042B)
1 VERSION = 0.1.1 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 MRUMTL_VERSION = 0.2 28 MRUMTL_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags mrumtl) 29 MRUMTL_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs mrumtl) 30 31 RNSL_VERSION = 0.1 32 RNSL_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rnsl) 33 RNSL_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rnsl) 34 35 RSYS_VERSION = 0.14 36 RSYS_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys) 37 RSYS_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys) 38 39 S3D_VERSION = 0.10 40 S3D_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags s3d) 41 S3D_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs s3d) 42 43 SBUF_VERSION = 0.1 44 SBUF_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags sbuf) 45 SBUF_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs sbuf) 46 47 SMSH_VERSION = 0.1 48 SMSH_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags smsh) 49 SMSH_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs smsh) 50 51 SSF_VERSION = 0.9 52 SSF_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags ssf) 53 SSF_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs ssf) 54 55 DPDC_CFLAGS =\ 56 $(MRUMTL_CFLAGS)\ 57 $(RNSL_CFLAGS)\ 58 $(RSYS_CFLAGS)\ 59 $(S3D_CFLAGS)\ 60 $(SBUF_CFLAGS)\ 61 $(SMSH_CFLAGS)\ 62 $(SSF_CFLAGS) 63 64 DPDC_LIBS =\ 65 $(MRUMTL_LIBS)\ 66 $(RNSL_LIBS)\ 67 $(RSYS_LIBS)\ 68 $(S3D_LIBS)\ 69 $(SBUF_LIBS)\ 70 $(SMSH_LIBS)\ 71 $(SSF_LIBS)\ 72 -lm 73 74 ################################################################################ 75 # Compilation options 76 ################################################################################ 77 WFLAGS =\ 78 -Wall\ 79 -Wcast-align\ 80 -Wconversion\ 81 -Wextra\ 82 -Wmissing-declarations\ 83 -Wmissing-prototypes\ 84 -Wshadow 85 86 CFLAGS_HARDENED =\ 87 -D_FORTIFY_SOURCES=2\ 88 -fcf-protection=full\ 89 -fstack-clash-protection\ 90 -fstack-protector-strong 91 92 CFLAGS_COMMON =\ 93 -std=c89\ 94 -pedantic\ 95 -fvisibility=hidden\ 96 -fstrict-aliasing\ 97 $(CFLAGS_HARDENED)\ 98 $(WFLAGS) 99 100 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 101 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 102 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 103 104 CFLAGS_SO = $(CFLAGS) -fPIC 105 CFLAGS_EXE = $(CFLAGS) -fPIE 106 107 ################################################################################ 108 # Linker options 109 ################################################################################ 110 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 111 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 112 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 113 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 114 115 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 116 LDFLAGS_EXE = $(LDFLAGS) -pie 117 118 OCPFLAGS_DEBUG = --localize-hidden 119 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 120 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))