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