htrdr

Solving radiative transfer in heterogeneous media
git clone git://git.meso-star.fr/htrdr.git
Log | Files | Refs | README | LICENSE

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))