diff options
author | midipix <writeonce@midipix.org> | 2019-01-02 22:18:23 -0500 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2019-01-02 22:21:09 -0500 |
commit | a40e0aa8c19acc3ec14bfca0c7974e3c7a493f9b (patch) | |
tree | 34f55d1616cbc23157fd4299132298a9963e4dd0 /sofort/ccenv | |
parent | 7cdf9308e6443d1c735a5d593eb7f80bc280b3b1 (diff) | |
download | bfirm-a40e0aa8c19acc3ec14bfca0c7974e3c7a493f9b.tar.bz2 bfirm-a40e0aa8c19acc3ec14bfca0c7974e3c7a493f9b.tar.xz |
build system: moved handling of pe-specific variables to ccenv.
Diffstat (limited to 'sofort/ccenv')
-rw-r--r-- | sofort/ccenv/ccenv.sh | 30 | ||||
-rw-r--r-- | sofort/ccenv/ccenv.vars | 4 | ||||
-rw-r--r-- | sofort/ccenv/pedefs.in | 4 |
3 files changed, 36 insertions, 2 deletions
diff --git a/sofort/ccenv/ccenv.sh b/sofort/ccenv/ccenv.sh index d6876c7..83b5daa 100644 --- a/sofort/ccenv/ccenv.sh +++ b/sofort/ccenv/ccenv.sh @@ -903,11 +903,30 @@ ccenv_set_os_dso_patterns() esac } +ccenv_set_os_pe_switches() +{ + if [ "$ccenv_os" = 'PE' ] && [ -z "$ccenv_pe_subsystem" ]; then + case "$ccenv_os" in + midipix | mingw ) + ccenv_pe_subsystem='windows' + ;; + * ) + ccenv_pe_subsystem='console' + ;; + esac + fi +} + ccenv_output_defs() { ccenv_in="$mb_project_dir/sofort/ccenv/ccenv.in" ccenv_mk="$mb_pwd/ccenv/$ccenv_cfgtype.mk" + if [ "$ccenv_cc_binfmt" = 'PE' ]; then + ccenv_pe="$mb_project_dir/sofort/ccenv/pedefs.in" + ccenv_in="$ccenv_in $ccenv_pe" + fi + if [ $ccenv_cfgtype = 'native' ]; then ccenv_tmp=$(mktemp) @@ -919,7 +938,7 @@ ccenv_output_defs() -e 's/NATIVE_#/#/g' \ -e 's/ =/=/g' \ -e 's/ +=/+=/g' \ - "$ccenv_in" > "$ccenv_tmp" + $ccenv_in > "$ccenv_tmp" ccenv_in="$ccenv_tmp" fi @@ -935,7 +954,7 @@ ccenv_output_defs() "$__var" "'/g' "; \ done)" - eval sed $ccenv_sed_substs "$ccenv_in" \ + eval sed $ccenv_sed_substs $ccenv_in \ | sed -e 's/[ \t]*$//g' \ > "$ccenv_mk" @@ -1015,12 +1034,18 @@ ccenv_common_init() ccenv_cc="$mb_user_cc" ccenv_cpp="$mb_user_cpp" ccenv_cxx="$mb_user_cxx" + + ccenv_pe_subsystem="$mb_pe_subsystem" + ccenv_pe_image_base="$mb_pe_image_base" else ccenv_tflags= ccenv_cflags="$mb_native_cflags" ccenv_cc="$mb_native_cc" ccenv_cpp="$mb_native_cpp" ccenv_cxx="$mb_native_cxx" + + ccenv_pe_subsystem="$mb_native_pe_subsystem" + ccenv_pe_image_base="$mb_native_pe_image_base" fi } @@ -1048,6 +1073,7 @@ ccenv_set_toolchain_variables() ccenv_set_os_dso_exrules ccenv_set_os_dso_linkage ccenv_set_os_dso_patterns + ccenv_set_os_pe_switches ccenv_output_defs ccenv_clean_up diff --git a/sofort/ccenv/ccenv.vars b/sofort/ccenv/ccenv.vars index 1d68357..4775b37 100644 --- a/sofort/ccenv/ccenv.vars +++ b/sofort/ccenv/ccenv.vars @@ -80,3 +80,7 @@ ccenv_windrc= # cflags ccenv_cflags_os= ccenv_cflags_pic= + +# pe +ccenv_pe_subsystem= +ccenv_pe_image_base= diff --git a/sofort/ccenv/pedefs.in b/sofort/ccenv/pedefs.in new file mode 100644 index 0000000..300d990 --- /dev/null +++ b/sofort/ccenv/pedefs.in @@ -0,0 +1,4 @@ +# @ccenv_cfgtype@ pe switches +PE_SUBSYSTEM = @ccenv_pe_subsystem@ +PE_IMAGE_BASE = @ccenv_pe_image_base@ + |