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 ]