htrdr

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

Makefile.core (6522B)


      1 # Copyright (C) 2018-2019, 2022-2025 Centre National de la Recherche Scientifique
      2 # Copyright (C) 2020-2022 Institut Mines Télécom Albi-Carmaux
      3 # Copyright (C) 2022-2025 Institut Pierre-Simon Laplace
      4 # Copyright (C) 2022-2025 Institut de Physique du Globe de Paris
      5 # Copyright (C) 2018-2025 |Méso|Star> (contact@meso-star.com)
      6 # Copyright (C) 2022-2025 Observatoire de Paris
      7 # Copyright (C) 2022-2025 Université de Reims Champagne-Ardenne
      8 # Copyright (C) 2022-2025 Université de Versaille Saint-Quentin
      9 # Copyright (C) 2018-2019, 2022-2025 Université Paul Sabatier
     10 #
     11 # This program is free software: you can redistribute it and/or modify
     12 # it under the terms of the GNU General Public License as published by
     13 # the Free Software Foundation, either version 3 of the License, or
     14 # (at your option) any later version.
     15 #
     16 # This program is distributed in the hope that it will be useful,
     17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     19 # GNU General Public License for more details.
     20 #
     21 # You should have received a copy of the GNU General Public License
     22 # along with this program. If not, see <http://www.gnu.org/licenses/>.
     23 
     24 .POSIX:
     25 .SUFFIXES: # Clean up default inference rules
     26 
     27 include config.mk
     28 
     29 LIBNAME_STATIC = $(CORE_NAME_STATIC)
     30 LIBNAME_SHARED = $(CORE_NAME_SHARED)
     31 LIBNAME = $(CORE_NAME)
     32 
     33 default: core
     34 
     35 ################################################################################
     36 # Build library
     37 ################################################################################
     38 SRC =\
     39  src/core/htrdr.c\
     40  src/core/htrdr_args.c\
     41  src/core/htrdr_buffer.c\
     42  src/core/htrdr_draw_map.c\
     43  src/core/htrdr_geometry.c\
     44  src/core/htrdr_log.c\
     45  src/core/htrdr_materials.c\
     46  src/core/htrdr_proc_work.c\
     47  src/core/htrdr_ran_wlen_cie_xyz.c\
     48  src/core/htrdr_ran_wlen_discrete.c\
     49  src/core/htrdr_ran_wlen_planck.c\
     50  src/core/htrdr_rectangle.c\
     51  src/core/htrdr_slab.c\
     52  src/core/htrdr_solve_buffer.c\
     53  src/core/htrdr_spectral.c
     54 OBJ = $(SRC:.c=.o)
     55 DEP = $(SRC:.c=.d)
     56 
     57 # Use CFLAGS_EXE when the library is built as a static library because
     58 # the object files will be linked as executables.
     59 CFLAGS_STATIC = $(CFLAGS_EXE)
     60 CFLAGS_SHARED = $(CFLAGS_SO)
     61 
     62 CFLAGS_CORE = $(CFLAGS_$(LIB_TYPE)) -Isrc -DHTRDR_SHARED_BUILD $(CORE_INCS)
     63 LDFLAGS_CORE = $(LDFLAGS_SO) $(CORE_LIBS)
     64 
     65 core: .config_core htrdr-core.pc $(DEP)
     66 	@$(MAKE) -fMakefile.core $$(for i in $(DEP); do echo -f $${i}; done) \
     67 	$$(if [ -n "$(LIBNAME)" ]; then \
     68 	     echo "$(LIBNAME)"; \
     69 	   else \
     70 	     echo "$(LIBNAME_SHARED)"; \
     71 	   fi)
     72 
     73 $(LIBNAME_SHARED): $(OBJ)
     74 	$(CC) $(CFLAGS_CORE) -o $@ $(OBJ) $(LDFLAGS_CORE)
     75 
     76 $(LIBNAME_STATIC): libhtrdr-core.o
     77 	$(AR) -rc $@ $?
     78 	$(RANLIB) $@
     79 
     80 libhtrdr-core.o: $(OBJ)
     81 	$(LD) -r $(OBJ) -o $@
     82 	$(OBJCOPY) $(OCPFLAGS) $@
     83 
     84 $(DEP) $(OBJ): config.mk src/core/htrdr_args.h src/core/htrdr_version.h
     85 
     86 .config_core: config.mk
     87 	$(PKG_CONFIG) --atleast-version $(AW_VERSION) aw
     88 	$(PKG_CONFIG) --atleast-version $(MPI_VERSION) $(MPI_PC)
     89 	$(PKG_CONFIG) --atleast-version $(MRUMTL_VERSION) mrumtl
     90 	$(PKG_CONFIG) --atleast-version $(RSYS_VERSION) rsys
     91 	$(PKG_CONFIG) --atleast-version $(S3D_VERSION) s3d
     92 	$(PKG_CONFIG) --atleast-version $(SCAM_VERSION) scam
     93 	$(PKG_CONFIG) --atleast-version $(SSF_VERSION) ssf
     94 	$(PKG_CONFIG) --atleast-version $(SSP_VERSION) star-sp
     95 	echo 'config done' > $@
     96 
     97 # Inference rules
     98 .SUFFIXES: .c .d .o
     99 .c.d:
    100 	@$(CC) $(CFLAGS_CORE) -MM -MT "$(@:.d=.o) $@" $< -MF $@
    101 
    102 .c.o:
    103 	$(CC) $(CFLAGS_CORE) -c $< -o $@
    104 
    105 ################################################################################
    106 # Generate files
    107 ################################################################################
    108 src/core/htrdr_args.h: config.mk src/core/htrdr_args.h.in
    109 	sed -e 's/@HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MIN@/$(HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MIN)/g' \
    110 	    -e 's/@HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MAX@/$(HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MAX)/g' \
    111 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_POS@/$(HTRDR_ARGS_DEFAULT_CAMERA_POS)/g' \
    112 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_TGT@/$(HTRDR_ARGS_DEFAULT_CAMERA_TGT)/g' \
    113 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_UP@/$(HTRDR_ARGS_DEFAULT_CAMERA_UP)/g' \
    114 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_ORTHOGRAPHIC_HEIGHT@/$(HTRDR_ARGS_DEFAULT_CAMERA_ORTHOGRAPHIC_HEIGHT)/g' \
    115 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOV@/$(HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOV)/g' \
    116 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_LENS_RADIUS@/$(HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_LENS_RADIUS)/g' \
    117 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOCAL_DST@/$(HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOCAL_DST)/g' \
    118 	    -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_POS@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_POS)/g' \
    119 	    -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_TGT@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_TGT)/g' \
    120 	    -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_UP@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_UP)/g' \
    121 	    -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_SZ@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_SZ)/g' \
    122 	    -e 's/@HTRDR_ARGS_DEFAULT_IMG_WIDTH@/$(HTRDR_ARGS_DEFAULT_IMG_WIDTH)/g' \
    123 	    -e 's/@HTRDR_ARGS_DEFAULT_IMG_HEIGHT@/$(HTRDR_ARGS_DEFAULT_IMG_HEIGHT)/g' \
    124 	    -e 's/@HTRDR_ARGS_DEFAULT_IMG_SPP@/$(HTRDR_ARGS_DEFAULT_IMG_SPP)/g' \
    125 	    $@.in > $@
    126 
    127 src/core/htrdr_version.h: config.mk src/core/htrdr_version.h.in
    128 	sed -e 's/@VERSION_MAJOR@/$(VERSION_MAJOR)/g' \
    129 	    -e 's/@VERSION_MINOR@/$(VERSION_MINOR)/g' \
    130 	    -e 's/@VERSION_PATCH@/$(VERSION_PATCH)/g' \
    131 	    $@.in > $@
    132 
    133 htrdr-core.pc: config.mk htrdr-core.pc.in
    134 	sed -e 's/@VERSION@/$(VERSION)/g' \
    135 	    -e 's/@AW_VERSION@/$(AW_VERSION)/g' \
    136 	    -e 's/@MPI_PC@/$(MPI_PC)/g' \
    137 	    -e 's/@MPI_VERSION@/$(MPI_VERSION)/g' \
    138 	    -e 's/@MRUMTL_VERSION@/$(MRUMTL_VERSION)/g' \
    139 	    -e 's/@RSYS_VERSION@/$(RSYS_VERSION)/g' \
    140 	    -e 's/@S3D_VERSION@/$(S3D_VERSION)/g' \
    141 	    -e 's/@SCAM_VERSION@/$(SCAM_VERSION)/g' \
    142 	    -e 's/@SSF_VERSION@/$(SSF_VERSION)/g' \
    143 	    -e 's/@SSP_VERSION@/$(SSP_VERSION)/g' \
    144 	    $@.in > $@
    145 
    146 ################################################################################
    147 # Miscellaneous
    148 ################################################################################
    149 install:
    150 	@if [ "$(LIB_TYPE)" = "SHARED" ]; then \
    151 	  $(SHELL) install.sh 755 "$(DESTDIR)$(LIBPREFIX)" $(LIBNAME); \
    152 	fi
    153 
    154 uninstall:
    155 	rm -f "$(DESTDIR)$(LIBPREFIX)/$(LIBNAME)"
    156 
    157 clean:
    158 	rm -f $(LIBNAME_SHARED) $(LIBNAME_STATIC) $(OBJ) $(DEP)
    159 	rm -f libhtrdr-core.o .config_core htrdr-core.pc
    160 	rm -f src/core/htrdr_args.h src/core/htrdr_version.h
    161 
    162 lint: # no lint