summaryrefslogtreecommitdiff
path: root/sofort/ccenv
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2021-04-17 13:38:34 +0000
committermidipix <writeonce@midipix.org>2021-04-17 13:49:59 +0000
commitb5b3266b2a87b21293da1726b7146987e3b16ee0 (patch)
tree3bc21bba42a042166b88bb6afefa558653945149 /sofort/ccenv
parenta6f65a3ac66bd4e81a0c33ef8ec5edd9aa7cffb2 (diff)
downloadslibtool-b5b3266b2a87b21293da1726b7146987e3b16ee0.tar.bz2
slibtool-b5b3266b2a87b21293da1726b7146987e3b16ee0.tar.xz
build system: ccenv_output_defs(): enhanced makefile generation.
Diffstat (limited to 'sofort/ccenv')
-rw-r--r--sofort/ccenv/ccenv.sh26
1 files changed, 18 insertions, 8 deletions
diff --git a/sofort/ccenv/ccenv.sh b/sofort/ccenv/ccenv.sh
index 5aa1554..67b5720 100644
--- a/sofort/ccenv/ccenv.sh
+++ b/sofort/ccenv/ccenv.sh
@@ -1279,19 +1279,29 @@ ccenv_output_defs()
unset ccenv_tmp
fi
+ ccenv_var_defs=
+ ccenv_sed_substs=
+
ccenv_vars=$(cut -d'=' -f1 "$mb_project_dir/sofort/ccenv/ccenv.vars" \
- | grep -v '^#')
+ | grep -v '^#');
ccenv_exvars="ccenv_cfgtype ccenv_makevar_prefix"
- ccenv_sed_substs=" \
- $(for __var in $(printf '%s' "$ccenv_vars $ccenv_exvars"); do \
- printf '%s"$%s"%s' "-e 's/@$__var@/'" \
- "$__var" "'/g' "; \
- done)"
+ for __var in $(printf '%s' "$ccenv_vars $ccenv_exvars"); do
+ ccenv_sed_subst=$(printf '%s %s%s%s' \
+ '-e' "'s^@$__var@" \
+ "^___${__var}___" \
+ "^g'")
+
+ ccenv_sed_substs="$ccenv_sed_substs $ccenv_sed_subst"
+
+ ccenv_var_def=$(printf '%s%s="${%s}"' "-D" "___${__var}___" "${__var}")
+ eval ccenv_var_defs='"$ccenv_var_defs "$ccenv_var_def'
+ done
- eval sed $ccenv_sed_substs $ccenv_in \
- | sed -e 's/[[:blank:]]*$//g' \
+ eval sed $ccenv_sed_substs $(printf '%s ' $ccenv_in) \
+ | eval m4 $ccenv_var_defs - \
+ | sed -e 's/[[:blank:]]*$//g' \
> "$ccenv_mk"
if [ "$ccenv_cfgtype" = 'host' ]; then