htrdr

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

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 ]