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:
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"
+"$@"