summary refs log tree commit diff
path: root/ports/sysdeps/mips/preconfigure
diff options
context:
space:
mode:
Diffstat (limited to 'ports/sysdeps/mips/preconfigure')
-rw-r--r--ports/sysdeps/mips/preconfigure29
1 files changed, 29 insertions, 0 deletions
diff --git a/ports/sysdeps/mips/preconfigure b/ports/sysdeps/mips/preconfigure
new file mode 100644
index 0000000000..9190eee87a
--- /dev/null
+++ b/ports/sysdeps/mips/preconfigure
@@ -0,0 +1,29 @@
+case "$machine" in
+mips64*)	base_machine=mips64
+		case "$CC $CFLAGS $CPPFLAGS " in
+		*" -mabi=n32 "*) mips_cc_abi=n32 ;;
+		*" -mabi=64 "*|*" -mabi=n64 "*) mips_cc_abi=64 ;;
+		*" -mabi=32 "*|*" -mabi=o32 "*) mips_cc_abi=32 ;;
+		*) mips_cc_abi=default ;;
+		esac
+		case $config_os in
+		*abin32*) mips_config_abi=n32 ;;
+		*abi64*|*abin64*) mips_config_abi=64 ;;
+		*abi32*|*abio32*) mips_config_abi=32 ;;
+		*) mips_config_abi=$mips_cc_abi ;;
+		esac
+		case $mips_config_abi in
+		default) machine=mips/mips64/n32 mips_config_abi=n32 ;;
+		n32) machine=mips/mips64/n32 ;;
+		64) machine=mips/mips64/n64 ;;
+		32) machine=mips/mips32/kern64 ;;
+		esac
+		machine=$machine/$config_machine
+		if test $mips_config_abi != $mips_cc_abi; then
+		  # This won't make it to config.make, but we want to
+		  # set this in case configure tests depend on it.
+		  CPPFLAGS="$CPPFLAGS -mabi=$mips_config_abi"
+		fi
+		;;
+mips*)		base_machine=mips machine=mips/mips32/$machine ;;
+esac