From ef82732b0e38b7a7f493339b38de87f9a293fa9c Mon Sep 17 00:00:00 2001 From: midipix Date: Wed, 2 Jan 2019 22:18:23 -0500 Subject: build system: moved handling of pe-specific variables to ccenv. --- sofort/ccenv/ccenv.sh | 30 ++++++++++++++++++++++++++++-- sofort/ccenv/ccenv.vars | 4 ++++ sofort/ccenv/pedefs.in | 4 ++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 sofort/ccenv/pedefs.in (limited to 'sofort/ccenv') 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@ + -- cgit v1.2.3