star-sp

Random number generators and distributions
git clone git://git.meso-star.fr/star-sp.git
Log | Files | Refs | README | LICENSE

config.mk (2384B)


      1 VERSION = 0.15.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 BINPREFIX = $(PREFIX)/bin
     11 LIBPREFIX = $(PREFIX)/lib
     12 INCPREFIX = $(PREFIX)/include
     13 MANPREFIX = $(PREFIX)/share/man
     14 
     15 ################################################################################
     16 # Tools
     17 ################################################################################
     18 AR = ar
     19 CC = cc
     20 CXX = c++
     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.14
     34 RANDOM123_VERSION = 1.14
     35 INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags random123 rsys)
     36 LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs random123 rsys)
     37 
     38 ################################################################################
     39 # Compilation options
     40 ################################################################################
     41 # Comment to disable the Random123 AES RNG
     42 AES_CFLAGS = -DWITH_R123_AES -maes
     43 
     44 FLAGS =\
     45  -pedantic\
     46  -fvisibility=hidden\
     47  -fstrict-aliasing\
     48  -Wall\
     49  -Wconversion\
     50  -Wextra\
     51  -Wmissing-declarations\
     52  -Wshadow
     53 
     54 CFLAGS_HARDENED =\
     55  -D_FORTIFY_SOURCES=2\
     56  -fcf-protection=full\
     57  -fstack-clash-protection\
     58  -fstack-protector-strong
     59 
     60 CFLAGS_COMMON =\
     61  -std=c89\
     62  -Wmissing-prototypes\
     63  $(CFLAGS_HARDENED)\
     64  $(FLAGS)
     65 
     66 CXXFLAGS_COMMON =\
     67  -std=c++11\
     68  $(CFLAGS_HARDENED)\
     69  $(FLAGS)
     70 
     71 CFLAGS_DEBUG = -g $(CFLAGS_COMMON)
     72 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON)
     73 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) -fPIE
     74 
     75 CXXFLAGS_RELEASE = -O2 -DNDEBUG $(CXXFLAGS_COMMON)
     76 CXXFLAGS_DEBUG = -g $(CXXFLAGS_COMMON)
     77 CXXFLAGS = $(CXXFLAGS_$(BUILD_TYPE)) $(AES_CFLAGS) -fPIC
     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))