summaryrefslogtreecommitdiff
path: root/sofort/ccenv
diff options
context:
space:
mode:
Diffstat (limited to 'sofort/ccenv')
-rw-r--r--sofort/ccenv/ccenv.sh30
-rw-r--r--sofort/ccenv/ccenv.vars4
-rw-r--r--sofort/ccenv/pedefs.in4
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@
+