config.mk (2114B)
1 VERSION = 0.3.0 2 3 PREFIX = /usr/local 4 LIBDIR = $(PREFIX)/lib 5 INCDIR = $(PREFIX)/include 6 DOCDIR = $(PREFIX)/share/doc 7 8 BUILD_TYPE = RELEASE 9 #BUILD_TYPE = DEBUG 10 11 LIB_TYPE = SHARED 12 #LIB_TYPE = STATIC 13 14 ################################################################################ 15 # Tools 16 ################################################################################ 17 AR = ar 18 CC = cc 19 LD = ld 20 OBJCOPY = objcopy 21 PKG_CONFIG = pkg-config 22 RANLIB = ranlib 23 24 ################################################################################ 25 # Dependencies 26 ################################################################################ 27 PCFLAGS_SHARED = 28 PCFLAGS_STATIC = --static 29 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 30 31 RSYS_VERSION = 0.14 32 S2D_VERSION = 0.7 33 S3D_VERSION = 0.10 34 SSP_VERSION = 0.14 35 36 INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys s2d s3d star-sp) 37 LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys s2d s3d star-sp) -lm 38 39 ################################################################################ 40 # Compilation options 41 ################################################################################ 42 WFLAGS =\ 43 -Wall\ 44 -Wcast-align\ 45 -Wconversion\ 46 -Wextra\ 47 -Wmissing-declarations\ 48 -Wmissing-prototypes\ 49 -Wshadow 50 51 CFLAGS_HARDENED =\ 52 -D_FORTIFY_SOURCES=2\ 53 -fstack-protector-strong 54 55 CFLAGS_COMMON =\ 56 -std=c89\ 57 -pedantic\ 58 -fvisibility=hidden\ 59 -fstrict-aliasing\ 60 $(CFLAGS_HARDENED)\ 61 $(WFLAGS) 62 63 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 64 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 65 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 66 67 CFLAGS_SO = $(CFLAGS) -fPIC 68 CFLAGS_EXE = $(CFLAGS) -FPIE 69 70 ################################################################################ 71 # Linker options 72 ################################################################################ 73 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 74 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 75 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 76 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 77 78 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 79 LDFLAGS_EXE = $(LDFLAGS) -pie 80 81 OCPFLAGS_DEBUG = --localize-hidden 82 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 83 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))