diff options
author | midipix <writeonce@midipix.org> | 2021-04-17 13:38:34 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2021-04-17 13:49:37 +0000 |
commit | df0182e91bfca7960ecf41d22905442046f38b3b (patch) | |
tree | 32c95dcbb7eca9a766873b81d517c5c364e33112 /sofort/ccenv/ccenv.sh | |
parent | d5c0442da3117651e7b71dc0c1e51f12a5b84063 (diff) | |
download | tpax-df0182e91bfca7960ecf41d22905442046f38b3b.tar.bz2 tpax-df0182e91bfca7960ecf41d22905442046f38b3b.tar.xz |
build system: ccenv_output_defs(): enhanced makefile generation.
Diffstat (limited to 'sofort/ccenv/ccenv.sh')
-rw-r--r-- | sofort/ccenv/ccenv.sh | 26 |
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 |