star-gs

Literate program for a geometric sensitivity calculation
git clone git://git.meso-star.fr/star-gs.git
Log | Files | Refs | README | LICENSE

commit 211ede871569f33a23256664283442019c018417
parent 610fbf9a1e20843a0245c2f7d1541ac44dd8acb4
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri, 14 Oct 2022 16:24:59 +0200

Makefile: distinguish between program and document configuration

Diffstat:
M.gitignore | 2+-
MMakefile | 19+++++++++++--------
Mconfig.mk | 8+++++---
Mconfigure.sh | 90+++++++++++++++++++++++++++++++++++++++++--------------------------------------
4 files changed, 64 insertions(+), 55 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -5,7 +5,7 @@ tmp *.[aod] *~ tags -.config +.config* sgs *.aux *.bbl diff --git a/Makefile b/Makefile @@ -48,7 +48,7 @@ TEX = $(NOWEB:.nw=.tex) ################################################################################ # Program ################################################################################ -build_executable: .config $(DEP) +build_executable: .config_program $(DEP) @$(MAKE) -fMakefile $$(for i in $(DEP); do echo -f $${i}; done) sgs $(OBJ): config.mk @@ -57,8 +57,8 @@ sgs: $(OBJ) @echo "LD $@" @$(CC) $(CFLAGS) -o $@ $(OBJ) $(LDFLAGS) -.config: config.mk configure.sh - @$(SHELL) configure.sh && echo "config done" > $@ || exit 1 +.config_program: config.mk configure.sh + @$(SHELL) configure.sh program && echo "config done" > $@ || exit 1 .SUFFIXES: .c .d .o .c.d: @@ -74,16 +74,19 @@ sgs: $(OBJ) ################################################################################ pdf: $(DOC).pdf -$(DOC).pdf: .config $(TEX) $(DOC).bbl +$(DOC).pdf: .config_document $(TEX) $(DOC).bbl $(LATEX) src/$(DOC).tex && $(LATEX) src/$(DOC).tex +.config_document: config.mk configure.sh + @$(SHELL) configure.sh document && echo "config done" > $@ || exit 1 + $(DOC).bbl: $(TEX) src/biblio.bib $(LATEX) src/$(DOC).tex && rm -f $(DOC).pdf && $(BIBTEX) $(DOC) $(TEX): weave.all weave.all: $(NOWEB) noweave_backend.sh config.mk - noweave $(NOWEAVE_OPTS) -backend "sh noweave_backend.sh" $(NOWEB) + $(WEAVE) $(NOWEAVE_OPTS) -backend "sh noweave_backend.sh" $(NOWEB) ################################################################################ # Miscellaneous targets @@ -100,9 +103,9 @@ uninstall: rm -f $(DESTDIR)$(PREFIX)/share/doc/star-gs/README.md clean: - @rm -f $(OBJ) $(TEX) sgs .config ./*.aux ./*.bbl ./*.idx ./*.log ./*.dvi\ - ./*.glo ./*.lof ./*.toc ./*.out ./*.blg ./*.bbl ./*.nav ./*.snm ./*.vrb\ - weave* $(DOC).pdf + @rm -f $(OBJ) $(TEX) sgs .config_program .config_document ./*.aux ./*.bbl\ + ./*.idx ./*.log ./*.dvi ./*.glo ./*.lof ./*.toc ./*.out ./*.blg\ + ./*.nav ./*.snm ./*.vrb weave* $(DOC).pdf distclean: clean @rm -f $(DEP) diff --git a/config.mk b/config.mk @@ -28,11 +28,13 @@ PKG_CONFIG = pkg-config ################################################################################ # Noweb & latex ################################################################################ -NOTANGLE_OPTS = #-L -NOWEAVE_OPTS = -index -delay -v - BIBTEX = bibtex LATEX = pdflatex +TANGLE = notangle +WEAVE = noweave + +TANGLE_OPTS = #-L +WEAVE_OPTS = -index -delay -v ################################################################################ # Dependencies diff --git a/configure.sh b/configure.sh @@ -37,54 +37,58 @@ showvar: EOF } +check_programs() +{ + for i in "$@"; do + if ! command -v "${i}" > /dev/null; then + printf "\e[1;31merror\e[0m:%s: program is missing\n" "${i}" + exit 1 + fi + done +} + ################################################################################ -# Check required programs +# Configure the program ################################################################################ -bibtex=$(showvar BIBTEX) -latex=$(showvar LATEX) -cc=$(showvar CC) -pkg_config=$(showvar PKG_CONFIG) +program() +{ + cc=$(showvar CC) + pkg_config=$(showvar PKG_CONFIG) + check_programs "${cc}" "${pkg_config}" + + rsys_version=$(showvar RSYS_VERSION) + s3d_version=$(showvar STAR-3D_VERSION) + smc_version=$(showvar STAR-MC_VERSION) + ssp_version=$(showvar STAR-SP_VERSION) + dependencies="\ + RSys rsys ${rsys_version} + Star-3D s3d ${s3d_version} + Star-MonteCarlo smc ${smc_version} + Star-SamPling star-sp ${ssp_version}" -programs="\ - ${bibtex} - ${cc} - cpif - ${latex} - notangle - noweave - ${pkg_config}" + printf "%s\n" "${dependencies}" | while read -r i; do + name=$(printf "%s" "${i}" | awk '{print $1}') + pc=$(printf "%s" "${i}" | awk '{print $2}') + version=$(printf "%s" "${i}" | awk '{print $3}') -printf "%s\n" "${programs}" | while read -r i; do - if ! command -v "${i}" > /dev/null; then - printf "\e[1;31merror\e[0m:%s: program is missing\n" "${i}" - exit 1 - fi -done || exit $? + if ! "${pkg_config}" --atleast-version "${version}" "${pc}"; then + >&2 printf "\e[1;31merror\e[0m:%s %s: dependency is missing\n" \ + "${name}" "${version}" + exit 1 + fi + done || exit $? +} ################################################################################ -# Check required dependencies +# Configure the document ################################################################################ -rsys_version=$(showvar RSYS_VERSION) -s3d_version=$(showvar STAR-3D_VERSION) -smc_version=$(showvar STAR-MC_VERSION) -ssp_version=$(showvar STAR-MC_VERSION) - -deps="\ - RSys rsys ${rsys_version} - Star-3D s3d ${s3d_version} - Star-MonteCarlo smc ${smc_version} - Star-SamPling star-sp ${ssp_version}" - -printf "%s\n" "${deps}" | while read -r i; do - name=$(printf "%s" "${i}" | awk '{print $1}') - pc=$(printf "%s" "${i}" | awk '{print $2}') - version=$(printf "%s" "${i}" | awk '{print $3}') - - if ! "${pkg_config}" --atleast-version "${version}" "${pc}"; then - >&2 printf "\e[1;31merror\e[0m:%s %s: dependency is missing\n" \ - "${name}" "${version}" - exit 1 - fi -done || exit $? +document() +{ + bibtex=$(showvar BIBTEX) + latex=$(showvar LATEX) + tangle=$(showvar TANGLE) + weave=$(showvar WEAVE) + check_programs "${bibtex}" cpif "${latex}" "${tangle}" "${weave}" +} -printf "configure done\n" +"$@"