Makefile.atmosphere (7344B)
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-atmosphere.a 30 31 default: command 32 33 ################################################################################ 34 # Build the library 35 ################################################################################ 36 SRC =\ 37 src/atmosphere/htrdr_atmosphere_args.c\ 38 src/atmosphere/htrdr_atmosphere.c\ 39 src/atmosphere/htrdr_atmosphere_compute_radiance_lw.c\ 40 src/atmosphere/htrdr_atmosphere_compute_radiance_sw.c\ 41 src/atmosphere/htrdr_atmosphere_draw_map.c\ 42 src/atmosphere/htrdr_atmosphere_ground.c\ 43 src/atmosphere/htrdr_atmosphere_main.c\ 44 src/atmosphere/htrdr_atmosphere_sun.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) $(ATMOSPHERE_INCS) -DHTRDR_SHARED_BUILD 50 51 library: core .config_atmosphere htrdr-atmosphere.pc $(DEP) 52 @$(MAKE) -fMakefile.atmosphere \ 53 $$(for i in $(DEP); do echo -f $${i}; done) $(LIBNAME) 54 55 core: 56 @$(MAKE) -fMakefile.core 57 58 .config_atmosphere: config.mk 59 $(PKG_CONFIG) --atleast-version $(HTSKY_VERSION) htsky 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-atmosphere.o 69 $(AR) -rc $@ $? 70 $(RANLIB) $@ 71 72 libhtrdr-atmosphere.o: $(OBJ) 73 $(LD) -r $(OBJ) -o $@ 74 $(OBJCOPY) $(OCPFLAGS) $@ 75 76 $(DEP) $(OBJ): config.mk src/atmosphere/htrdr_atmosphere_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_atmosphere_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-atmosphere) 94 LDFLAGS_CMD = $(LDFLAGS_EXE) $$($(PKG_CONFIG_LOCAL) --static --libs htrdr-atmosphere) 95 96 command: library $(CMD_DEP) 97 @$(MAKE) -fMakefile.atmosphere -f$(CMD_DEP) htrdr-atmosphere 98 99 htrdr-atmosphere: $(CMD_OBJ) $(LIBNAME) $(CORE_NAME) 100 $(CC) $(CFLAGS_CMD) -o $@ $(CMD_OBJ) $(LDFLAGS_CMD) 101 102 $(CMD_DEP) $(CMD_OBJ): config.mk htrdr-atmosphere.pc 103 104 $(CMD_DEP): 105 @$(CC) $(CFLAGS_CMD) -MM -MT "$(@:.d=.o) $@" $(@:.d=.c) -MF $@ 106 107 $(CMD_OBJ): 108 $(CC) $(CFLAGS_CMD) -c $(@:.o=.c) -o $@ 109 110 ################################################################################ 111 # Generate files from template 112 ################################################################################ 113 src/atmosphere/htrdr_atmosphere_args.h: config.mk src/atmosphere/htrdr_atmosphere_args.h.in 114 sed -e 's/@HTRDR_ATMOSPHERE_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD@/$(HTRDR_ATMOSPHERE_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD)/g' \ 115 -e 's/@HTRDR_ATMOSPHERE_ARGS_DEFAULT_SKY_MTL_NAME@/$(HTRDR_ATMOSPHERE_ARGS_DEFAULT_SKY_MTL_NAME)/g' \ 116 $@.in > $@ 117 118 htrdr-atmosphere.pc: config.mk htrdr-atmosphere.pc.in 119 sed -e 's/@VERSION@/$(VERSION)/g' \ 120 -e 's/@HTSKY_VERSION@/$(HTSKY_VERSION)/g' \ 121 -e 's/@RSYS_VERSION@/$(RSYS_VERSION)/g' \ 122 -e 's/@S3D_VERSION@/$(S3D_VERSION)/g' \ 123 -e 's/@SCAM_VERSION@/$(SCAM_VERSION)/g' \ 124 -e 's/@SSF_VERSION@/$(SSF_VERSION)/g' \ 125 -e 's/@SSP_VERSION@/$(SSP_VERSION)/g' \ 126 -e 's/@SVX_VERSION@/$(SVX_VERSION)/g' \ 127 $@.in > $@ 128 129 doc/htrdr-atmosphere.1: doc/htrdr-atmosphere.1.in 130 sed -e 's/@HTRDR_ATMOSPHERE_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD@/$(HTRDR_ATMOSPHERE_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD)/g' \ 131 -e 's/@HTRDR_ATMOSPHERE_ARGS_DEFAULT_SKY_MTL_NAME@/$(HTRDR_ATMOSPHERE_ARGS_DEFAULT_SKY_MTL_NAME)/g' \ 132 -e 's/@HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MIN@/$(HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MIN)/g' \ 133 -e 's/@HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MAX@/$(HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MAX)/g' \ 134 -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOCAL_DST@/$(HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOCAL_DST)/g' \ 135 -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOV@/$(HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOV)/g' \ 136 -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_LENS_RADIUS@/$(HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_LENS_RADIUS)/g' \ 137 -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_POS@/$(HTRDR_ARGS_DEFAULT_CAMERA_POS)/g' \ 138 -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_TGT@/$(HTRDR_ARGS_DEFAULT_CAMERA_TGT)/g' \ 139 -e 's/@HTRDR_ARGS_DEFAULT_CAMERA_UP@/$(HTRDR_ARGS_DEFAULT_CAMERA_UP)/g' \ 140 -e 's/@HTRDR_ARGS_DEFAULT_IMG_WIDTH@/$(HTRDR_ARGS_DEFAULT_IMG_WIDTH)/g' \ 141 -e 's/@HTRDR_ARGS_DEFAULT_IMG_HEIGHT@/$(HTRDR_ARGS_DEFAULT_IMG_HEIGHT)/g' \ 142 -e 's/@HTRDR_ARGS_DEFAULT_IMG_SPP@/$(HTRDR_ARGS_DEFAULT_IMG_SPP)/g' \ 143 -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_POS@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_POS)/g' \ 144 -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_TGT@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_TGT)/g' \ 145 -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_UP@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_UP)/g' \ 146 -e 's/@HTRDR_ARGS_DEFAULT_RECTANGLE_SZ@/$(HTRDR_ARGS_DEFAULT_RECTANGLE_SZ)/g'\ 147 $@.in > $@ 148 149 ################################################################################ 150 # Miscellaneous 151 ################################################################################ 152 install: command doc/htrdr-atmosphere.1 153 @$(SHELL) install.sh 755 "$(DESTDIR)$(BINPREFIX)" htrdr-atmosphere 154 @$(SHELL) install.sh 644 "$(DESTDIR)$(MANPREFIX)/man1" doc/htrdr-atmosphere.1 155 156 uninstall: 157 rm -f "$(DESTDIR)$(BINPREFIX)/htrdr-atmosphere" 158 rm -f "$(DESTDIR)$(MANPREFIX)/man1/htrdr-atmosphere.1" 159 160 clean: 161 rm -f $(OBJ) $(DEP) $(LIBNAME) 162 rm -f $(CMD_OBJ) $(CMD_DEP) htrdr-atmosphere 163 rm -f .config_atmosphere libhtrdr-atmosphere.o htrdr-atmosphere.pc 164 rm -f doc/htrdr-atmosphere.1 src/atmosphere/htrdr_atmosphere_args.h 165 166 lint: doc/htrdr-atmosphere.1 167 mandoc -Tlint -Wall doc/htrdr-atmosphere.1 || [ $$? -le 1 ]