config.mk (5657B)
1 VERSION_MAJOR = 0 2 VERSION_MINOR = 12 3 VERSION_PATCH = 0 4 5 VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH) 6 7 PREFIX = /usr/local 8 BINPREFIX = $(PREFIX)/bin 9 DOCPREFIX = $(PREFIX)/share/doc 10 INCPREFIX = $(PREFIX)/include 11 LIBPREFIX = $(PREFIX)/lib 12 MANPREFIX = $(PREFIX)/share/man 13 14 # Define the features supported, i.e. the htrdr commands to be built. 15 # Any value other than ENABLE disables the corresponding functionality. 16 # So, simply comment on a feature to deactivate it. 17 ATMOSPHERE = ENABLE 18 COMBUSTION = ENABLE 19 PLANETS = ENABLE 20 21 LIB_TYPE = SHARED 22 #LIB_TYPE = STATIC 23 24 BUILD_TYPE = RELEASE 25 #BUILD_TYPE = DEBUG 26 27 # MPI pkg-config file 28 MPI_PC = ompi 29 30 ################################################################################ 31 # Default argument values 32 ################################################################################ 33 # Core 34 HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MIN = 0.0 35 HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MAX = 180.0 36 HTRDR_ARGS_DEFAULT_CAMERA_POS = 0,0,0 37 HTRDR_ARGS_DEFAULT_CAMERA_TGT = 0,1,0 38 HTRDR_ARGS_DEFAULT_CAMERA_UP = 0,0,1 39 HTRDR_ARGS_DEFAULT_CAMERA_ORTHOGRAPHIC_HEIGHT = 1 40 HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOV = 70 41 HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_LENS_RADIUS = 0 42 HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOCAL_DST = 1 43 HTRDR_ARGS_DEFAULT_RECTANGLE_POS = 0,0,0 44 HTRDR_ARGS_DEFAULT_RECTANGLE_TGT = 0,0,1 45 HTRDR_ARGS_DEFAULT_RECTANGLE_UP = 0,1,0 46 HTRDR_ARGS_DEFAULT_RECTANGLE_SZ = 1,1 47 HTRDR_ARGS_DEFAULT_IMG_WIDTH = 320 48 HTRDR_ARGS_DEFAULT_IMG_HEIGHT = 240 49 HTRDR_ARGS_DEFAULT_IMG_SPP = 1 50 51 # Atmosphere 52 HTRDR_ATMOSPHERE_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD = 1 53 HTRDR_ATMOSPHERE_ARGS_DEFAULT_SKY_MTL_NAME = "air" 54 55 # Combustion 56 HTRDR_COMBUSTION_ARGS_DEFAULT_LASER_FLUX_DENSITY = 1 57 HTRDR_COMBUSTION_ARGS_DEFAULT_FRACTAL_DIMENSION = 1.80 58 HTRDR_COMBUSTION_ARGS_DEFAULT_FRACTAL_PREFACTOR = 1.30 59 HTRDR_COMBUSTION_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD = 1.0 60 HTRDR_COMBUSTION_ARGS_DEFAULT_GRID_DEFINITION_HINT = 256 61 HTRDR_COMBUSTION_ARGS_DEFAULT_WAVELENGTH = 532 62 63 # Planets 64 HTRDR_PLANETS_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD = 1 65 HTRDR_PLANETS_ARGS_DEFAULT_GRID_DEFINITION_HINT = 512 66 HTRDR_PLANETS_ARGS_DEFAULT_VOLRAD_BUDGET_SPT = 1000 67 68 ################################################################################ 69 # Tools 70 ################################################################################ 71 AR = ar 72 CC = cc 73 LD = ld 74 OBJCOPY = objcopy 75 PKG_CONFIG = pkg-config 76 PKG_CONFIG_LOCAL = PKG_CONFIG_PATH="./:$${PKG_CONFIG_PATH}" $(PKG_CONFIG) 77 RANLIB = ranlib 78 79 ################################################################################ 80 # Dependencies 81 ################################################################################ 82 PCFLAGS_SHARED = 83 PCFLAGS_STATIC = --static 84 PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) 85 86 AW_VERSION = 2.1 87 ATRSTM_VERSION = 0.1 88 HTSKY_VERSION = 0.3 89 MPI_VERSION = 2 90 MRUMTL_VERSION = 0.2 91 RNATM_VERSION = 0.1 92 RNGRD_VERSION = 0.1 93 RSYS_VERSION = 0.14 94 S3D_VERSION = 0.10 95 SBUF_VERSION = 0.1 96 SCAM_VERSION = 0.2 97 SSF_VERSION = 0.9 98 SMSH_VERSION = 0.1 99 SSP_VERSION = 0.14 100 SVX_VERSION = 0.3 101 102 # Atmosphere 103 ATMOSPHERE_INCS = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --cflags\ 104 htrdr-core htsky rsys s3d scam ssf star-sp svx) 105 ATMOSPHERE_LIBS = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --libs\ 106 htrdr-core htsky rsys s3d scam ssf star-sp svx) -lm 107 108 # Combustion 109 COMBUSTION_INCS = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --cflags\ 110 atrstm htrdr-core rsys s3d scam ssf star-sp svx) 111 COMBUSTION_LIBS = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --libs\ 112 atrstm htrdr-core rsys s3d scam ssf star-sp svx) -lm 113 114 # Core 115 CORE_INCS = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --cflags\ 116 aw $(MPI_PC) mrumtl rsys s3d scam ssf star-sp) -fopenmp 117 CORE_LIBS = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --libs\ 118 aw $(MPI_PC) mrumtl rsys s3d scam ssf star-sp) -fopenmp -lm 119 120 # Planets 121 PLANETS_INCS = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --cflags\ 122 $(MPI_PC) htrdr-core rnatm rngrd rsys s3d sbuf scam smsh ssf star-sp svx) 123 PLANETS_LIBS = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --libs\ 124 $(MPI_PC) htrdr-core rnatm rngrd rsys s3d sbuf scam smsh ssf star-sp svx) -lm 125 126 ################################################################################ 127 # Name of the core library 128 ################################################################################ 129 CORE_NAME_STATIC = libhtrdr-core.a 130 CORE_NAME_SHARED = libhtrdr-core.so 131 CORE_NAME = $(CORE_NAME_$(LIB_TYPE)) 132 133 ################################################################################ 134 # Compilation options 135 ################################################################################ 136 WFLAGS =\ 137 -Wall\ 138 -Wcast-align\ 139 -Wconversion\ 140 -Wextra\ 141 -Wmissing-declarations\ 142 -Wmissing-prototypes\ 143 -Wshadow 144 145 # Increase the security and robustness of generated binaries 146 CFLAGS_HARDENED =\ 147 -D_FORTIFY_SOURCES=2\ 148 -fcf-protection=full\ 149 -fstack-clash-protection\ 150 -fstack-protector-strong 151 152 CFLAGS_COMMON =\ 153 -std=c89\ 154 -pedantic\ 155 -fvisibility=hidden\ 156 -fstrict-aliasing\ 157 $(CFLAGS_HARDENED)\ 158 $(WFLAGS) 159 160 CFLAGS_DEBUG = -g $(CFLAGS_COMMON) 161 CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) 162 CFLAGS = $(CFLAGS_$(BUILD_TYPE)) 163 164 CFLAGS_SO = $(CFLAGS) -fPIC 165 CFLAGS_EXE = $(CFLAGS) -fPIE 166 167 ################################################################################ 168 # Linker options 169 ################################################################################ 170 LDFLAGS_HARDENED = -Wl,-z,relro,-z,now 171 LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) 172 LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) 173 LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) 174 175 LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined 176 LDFLAGS_EXE = $(LDFLAGS) -pie 177 178 OCPFLAGS_DEBUG = --localize-hidden 179 OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded 180 OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE))