htrdr

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

Makefile.combustion (9195B)


      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 = libhtrdr-combustion.a
     30 
     31 default: command tests
     32 
     33 ################################################################################
     34 # Build the library
     35 ################################################################################
     36 SRC =\
     37  src/combustion/htrdr_combustion.c\
     38  src/combustion/htrdr_combustion_args.c\
     39  src/combustion/htrdr_combustion_draw_map.c\
     40  src/combustion/htrdr_combustion_compute_radiance_sw.c\
     41  src/combustion/htrdr_combustion_geometry_ray_filter.c\
     42  src/combustion/htrdr_combustion_laser.c\
     43  src/combustion/htrdr_combustion_main.c\
     44  src/combustion/htrdr_combustion_phase_func.c
     45 OBJ = $(SRC:.c=.o)
     46 DEP = $(SRC:.c=.d)
     47 
     48 # Use CFLAGS_EXE because the object files will be linked as executables
     49 CFLAGS_LIB = $(CFLAGS_EXE) $(COMBUSTION_INCS) -DHTRDR_SHARED_BUILD
     50 
     51 library: core .config_combustion htrdr-combustion.pc $(DEP)
     52 	@$(MAKE) -fMakefile.combustion \
     53 	$$(for i in $(DEP); do echo -f $${i}; done) $(LIBNAME)
     54 
     55 core:
     56 	@$(MAKE) -fMakefile.core
     57 
     58 .config_combustion: config.mk
     59 	$(PKG_CONFIG) --atleast-version $(ATRSTM_VERSION) atrstm
     60 	$(PKG_CONFIG) --atleast-version $(RSYS_VERSION) rsys
     61 	$(PKG_CONFIG) --atleast-version $(S3D_VERSION) s3d
     62 	$(PKG_CONFIG) --atleast-version $(SCAM_VERSION) scam
     63 	$(PKG_CONFIG) --atleast-version $(SSF_VERSION) ssf
     64 	$(PKG_CONFIG) --atleast-version $(SSP_VERSION) star-sp
     65 	$(PKG_CONFIG) --atleast-version $(SVX_VERSION) svx
     66 	echo 'config done' > $@
     67 
     68 $(LIBNAME): libhtrdr-combustion.o
     69 	$(AR) -rc $@ $?
     70 	$(RANLIB) $@
     71 
     72 libhtrdr-combustion.o: $(OBJ)
     73 	$(LD) -r $(OBJ) -o $@
     74 	$(OBJCOPY) $(OCPFLAGS) $@
     75 
     76 $(DEP) $(OBJ): config.mk src/combustion/htrdr_combustion_args.h
     77 
     78 # Inference rules
     79 .SUFFIXES: .c .d .o
     80 .c.d:
     81 	@$(CC) $(CFLAGS_LIB) -MM -MT "$(@:.d=.o) $@" $< -MF $@
     82 
     83 .c.o:
     84 	$(CC) $(CFLAGS_LIB) -c $< -o $@
     85 
     86 ################################################################################
     87 # Build the command
     88 ################################################################################
     89 CMD_SRC = src/commands/htrdr_combustion_cmd.c
     90 CMD_OBJ = $(CMD_SRC:.c=.o)
     91 CMD_DEP = $(CMD_SRC:.c=.d)
     92 
     93 CFLAGS_CMD = $(CFLAGS_EXE) $$($(PKG_CONFIG_LOCAL) --static --cflags htrdr-combustion)
     94 LDFLAGS_CMD = $(LDFLAGS_EXE) $$($(PKG_CONFIG_LOCAL) --static --libs htrdr-combustion)
     95 
     96 command: library $(CMD_DEP)
     97 	@$(MAKE) -fMakefile.combustion -f$(CMD_DEP) htrdr-combustion
     98 
     99 htrdr-combustion: $(CMD_OBJ) $(LIBNAME) $(CORE_NAME)
    100 	$(CC) $(CFLAGS_CMD) -o $@ $(CMD_OBJ) $(LDFLAGS_CMD)
    101 
    102 $(CMD_DEP):
    103 	@$(CC) $(CFLAGS_CMD) -MM -MT "$(@:.d=.o) $@" $(@:.d=.c) -MF $@
    104 
    105 $(CMD_OBJ):
    106 	$(CC) $(CFLAGS_CMD) -c $(@:.o=.c) -o $@
    107 
    108 ################################################################################
    109 # Build the test
    110 ################################################################################
    111 TEST_SRC = src/combustion/test_htrdr_combustion_laser.c
    112 TEST_OBJ = $(TEST_SRC:.c=.o)
    113 TEST_DEP = $(TEST_SRC:.c=.d)
    114 
    115 CFLAGS_TEST = $(CFLAGS_EXE) $(COMBUSTION_INCS)
    116 LDFLAGS_TEST = $(LDFLAGS_EXE) $(COMBUSTION_LIBS)
    117 
    118 test: tests
    119 	./test_htrdr_combustion_laser > /dev/null 2>&1
    120 
    121 tests: library $(TEST_DEP)
    122 	@$(MAKE) -fMakefile.combustion -f$(TEST_DEP) test_htrdr_combustion_laser
    123 
    124 # Link with all obj files in the combustion library since the test checks
    125 # hidden functions
    126 test_htrdr_combustion_laser: $(TEST_OBJ) $(CORE_NAME)
    127 	$(CC) $(CFLAGS_TEST) -o $@ $(TEST_OBJ) $(OBJ) $(LDFLAGS_TEST)
    128 
    129 $(TEST_DEP):
    130 	@$(CC) $(CFLAGS_TEST) -MM -MT "$(@:.d=.o) $@" $(@:.d=.c) -MF $@
    131 
    132 $(TEST_OBJ):
    133 	$(CC) $(CFLAGS_TEST) -c $(@:.o=.c) -o $@
    134 
    135 ################################################################################
    136 # Generate files from template
    137 ################################################################################
    138 src/combustion/htrdr_combustion_args.h: config.mk src/combustion/htrdr_combustion_args.h.in
    139 	sed -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_LASER_FLUX_DENSITY@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_LASER_FLUX_DENSITY)/g' \
    140 	    -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_FRACTAL_DIMENSION@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_FRACTAL_DIMENSION)/g' \
    141 	    -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_FRACTAL_PREFACTOR@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_FRACTAL_PREFACTOR)/g' \
    142 	    -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD)/g' \
    143 	    -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_GRID_DEFINITION_HINT@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_GRID_DEFINITION_HINT)/g' \
    144 	    -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_WAVELENGTH@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_WAVELENGTH)/g' \
    145 	    $@.in > $@
    146 
    147 htrdr-combustion.pc: config.mk htrdr-combustion.pc.in
    148 	sed -e 's/@VERSION@/$(VERSION)/g' \
    149 	    -e 's/@ATRSTM_VERSION@/$(ATRSTM_VERSION)/g' \
    150 	    -e 's/@RSYS_VERSION@/$(RSYS_VERSION)/g' \
    151 	    -e 's/@S3D_VERSION@/$(S3D_VERSION)/g' \
    152 	    -e 's/@SCAM_VERSION@/$(SCAM_VERSION)/g' \
    153 	    -e 's/@SSF_VERSION@/$(SSF_VERSION)/g' \
    154 	    -e 's/@SSP_VERSION@/$(SSP_VERSION)/g' \
    155 	    -e 's/@SVX_VERSION@/$(SVX_VERSION)/g' \
    156 	    $@.in > $@
    157 
    158 doc/htrdr-combustion.1: doc/htrdr-combustion.1.in
    159 	sed -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_LASER_FLUX_DENSITY@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_LASER_FLUX_DENSITY)/g' \
    160 	    -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_FRACTAL_DIMENSION@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_FRACTAL_DIMENSION)/g' \
    161 	    -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_FRACTAL_PREFACTOR@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_FRACTAL_PREFACTOR)/g' \
    162 	    -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD)/g' \
    163 	    -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_GRID_DEFINITION_HINT@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_GRID_DEFINITION_HINT)/g' \
    164 	    -e 's/@HTRDR_COMBUSTION_ARGS_DEFAULT_WAVELENGTH@/$(HTRDR_COMBUSTION_ARGS_DEFAULT_WAVELENGTH)/g' \
    165 	    -e 's/@HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MIN@/$(HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MIN)/g' \
    166 	    -e 's/@HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MAX@/$(HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MAX)/g' \
    167 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOCAL_DST@/$(HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOCAL_DST)/g' \
    168 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOV@/$(HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOV)/g' \
    169 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_LENS_RADIUS@/$(HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_LENS_RADIUS)/g' \
    170 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_POS@/$(HTRDR_ARGS_DEFAULT_CAMERA_POS)/g' \
    171 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_TGT@/$(HTRDR_ARGS_DEFAULT_CAMERA_TGT)/g' \
    172 	    -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_UP@/$(HTRDR_ARGS_DEFAULT_CAMERA_UP)/g' \
    173 	    -e 's/@HTRDR_ARGS_DEFAULT_IMG_WIDTH@/$(HTRDR_ARGS_DEFAULT_IMG_WIDTH)/g' \
    174 	    -e 's/@HTRDR_ARGS_DEFAULT_IMG_HEIGHT@/$(HTRDR_ARGS_DEFAULT_IMG_HEIGHT)/g' \
    175 	    -e 's/@HTRDR_ARGS_DEFAULT_IMG_SPP@/$(HTRDR_ARGS_DEFAULT_IMG_SPP)/g' \
    176 	    -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_POS@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_POS)/g' \
    177 	    -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_TGT@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_TGT)/g' \
    178 	    -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_UP@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_UP)/g' \
    179 	    -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_SZ@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_SZ)/g'\
    180 	    $@.in > $@
    181 
    182 ################################################################################
    183 # Miscellaneous
    184 ################################################################################
    185 install: command doc/htrdr-combustion.1
    186 	@$(SHELL) install.sh 755 "$(DESTDIR)$(BINPREFIX)" htrdr-combustion
    187 	@$(SHELL) install.sh 644 "$(DESTDIR)$(MANPREFIX)/man1" doc/htrdr-combustion.1
    188 
    189 uninstall:
    190 	rm -f "$(DESTDIR)$(BINPREFIX)/htrdr-combustion"
    191 	rm -f "$(DESTDIR)$(MANPREFIX)/man1/htrdr-combustion.1"
    192 
    193 clean:
    194 	rm -f $(OBJ) $(DEP) $(LIBNAME)
    195 	rm -f htrdr-combustion $(CMD_OBJ) $(CMD_DEP)
    196 	rm -f .config_combustion libhtrdr-combustion.o htrdr-combustion.pc
    197 	rm -f doc/htrdr-combustion.1 src/combustion/htrdr_combustion_args.h
    198 	rm -f test_htrdr_combustion_laser laser.obj
    199 
    200 lint: doc/htrdr-combustion.1
    201 	mandoc -Tlint -Wall doc/htrdr-combustion.1 || [ $$? -le 1 ]