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