summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2012-10-06 22:08:58 +0200
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2012-10-06 22:08:58 +0200
commit287850933d1a2b1a11f3eec86445ccbcd0471436 (patch)
tree1c99dded2ca944c5d83fad915ecf876332dccc44 /mk
parent8d38553beb87af2b268217e1514d1386ac978be1 (diff)
downloadembtoolkit-287850933d1a2b1a11f3eec86445ccbcd0471436.tar.gz
embtoolkit-287850933d1a2b1a11f3eec86445ccbcd0471436.tar.bz2
embtoolkit-287850933d1a2b1a11f3eec86445ccbcd0471436.tar.xz
MIPS arch: factorize selection of cores
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
Diffstat (limited to 'mk')
-rw-r--r--mk/arch/mips/mips.mk258
1 files changed, 61 insertions, 197 deletions
diff --git a/mk/arch/mips/mips.mk b/mk/arch/mips/mips.mk
index 34484e2..e844979 100644
--- a/mk/arch/mips/mips.mk
+++ b/mk/arch/mips/mips.mk
@@ -16,240 +16,104 @@
# 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
################################################################################
#
-# \file mips_arch.mk
-# \brief mips_arch.mk of Embtoolkit
+# \file mips.mk
+# \brief mips.mk of Embtoolkit
# \author Abdoulaye Walsimou GAYE <awg@embtoolkit.org>
# \date May 2009
################################################################################
-LINUX_ARCH := mips
+LINUX_ARCH := mips
-ifeq ($(CONFIG_EMBTK_CLIB_EGLIBC),y)
-#we use EGLIBC C library
+__embtk_mips_endian := $(if $(CONFIG_EMBTK_TARGET_ARCH_LITTLE_ENDIAN),el)
+__embtk_mips_clib-(CONFIG_EMBTK_CLIB_EGLIBC) := gnu
+__embtk_mips_clib := $(or $(__embtk_mips_clib-y),$(embtk_clib))
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS1_LITTLE),y)
-GNU_TARGET := mipsel-$(embtk_os)
-STRICT_GNU_TARGET := mipsel-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips1
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS1_BIG),y)
-GNU_TARGET := mips-$(embtk_os)
-STRICT_GNU_TARGET := mips-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips1
-endif
-
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS2_LITTLE),y)
-GNU_TARGET := mipsel-$(embtk_os)
-STRICT_GNU_TARGET := mipsel-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips2
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS2_BIG),y)
-GNU_TARGET := mips-$(embtk_os)
-STRICT_GNU_TARGET := mips-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips2
-endif
-
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS3_LITTLE),y)
-GNU_TARGET := mips64el-$(embtk_os)
-STRICT_GNU_TARGET := mips64el-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips3
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS3_BIG),y)
-GNU_TARGET := mips64-$(embtk_os)
-STRICT_GNU_TARGET := mips64-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips3
-endif
-
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS4_LITTLE),y)
-GNU_TARGET := mips64el-$(embtk_os)
-STRICT_GNU_TARGET := mips64el-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips4
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS4_BIG),y)
-GNU_TARGET := mips64-$(embtk_os)
-STRICT_GNU_TARGET := mips64-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips4
-endif
-
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS32_LITTLE),y)
-GNU_TARGET := mipsel-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa32el-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips32
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS32_BIG),y)
-GNU_TARGET := mips-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa32-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips32
-endif
-
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS32R2_LITTLE),y)
-GNU_TARGET := mipsel-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa32r2el-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips32r2
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS32R2_BIG),y)
-GNU_TARGET := mips-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa32r2-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips32r2
-endif
-
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS64_LITTLE),y)
-GNU_TARGET := mips64el-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa64el-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips64
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS64_BIG),y)
-GNU_TARGET := mips64-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa64-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips64
+ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS1),y)
+GNU_TARGET := mips$(__embtk_mips_endian)-$(embtk_os)
+STRICT_GNU_TARGET := mips$(__embtk_mips_endian)-unknown-$(embtk_os)-$(__embtk_mips_clib)
+GNU_TARGET_ARCH := mips1
endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS64R2_LITTLE),y)
-GNU_TARGET := mips64el-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa64r2el-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips64r2
+ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS2),y)
+GNU_TARGET := mips$(__embtk_mips_endian)-$(embtk_os)
+STRICT_GNU_TARGET := mips$(__embtk_mips_endian)-unknown-$(embtk_os)-$(__embtk_mips_clib)
+GNU_TARGET_ARCH := mips2
endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS64R2_BIG),y)
-GNU_TARGET := mips64-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa64r2-unknown-$(embtk_os)-gnu
-GNU_TARGET_ARCH := mips64r2
-endif
-
-else
-#We use uClibc C library
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS1_LITTLE),y)
-GNU_TARGET := mipsel-$(embtk_os)
-STRICT_GNU_TARGET := mipsel-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips1
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS1_BIG),y)
-GNU_TARGET := mips-$(embtk_os)
-STRICT_GNU_TARGET := mips-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips1
+ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS3),y)
+GNU_TARGET := mips64$(__embtk_mips_endian)-$(embtk_os)
+STRICT_GNU_TARGET := mips64$(__embtk_mips_endian)-unknown-$(embtk_os)-$(__embtk_mips_clib)
+GNU_TARGET_ARCH := mips3
endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS2_LITTLE),y)
-GNU_TARGET := mipsel-$(embtk_os)
-STRICT_GNU_TARGET := mipsel-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips2
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS2_BIG),y)
-GNU_TARGET := mips-$(embtk_os)
-STRICT_GNU_TARGET := mips-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips2
+ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS4),y)
+GNU_TARGET := mips64$(__embtk_mips_endian)-$(embtk_os)
+STRICT_GNU_TARGET := mips64$(__embtk_mips_endian)-unknown-$(embtk_os)-$(__embtk_mips_clib)
+GNU_TARGET_ARCH := mips4
endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS3_LITTLE),y)
-GNU_TARGET := mips64el-$(embtk_os)
-STRICT_GNU_TARGET := mips64el-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips3
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS3_BIG),y)
-GNU_TARGET := mips64-$(embtk_os)
-STRICT_GNU_TARGET := mips64-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips3
+ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS32),y)
+GNU_TARGET := mips$(__embtk_mips_endian)-$(embtk_os)
+STRICT_GNU_TARGET := mipsisa32$(__embtk_mips_endian)-unknown-$(embtk_os)-$(__embtk_mips_clib)
+GNU_TARGET_ARCH := mips32
endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS4_LITTLE),y)
-GNU_TARGET := mips64el-$(embtk_os)
-STRICT_GNU_TARGET := mips64el-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips4
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS4_BIG),y)
-GNU_TARGET := mips64-$(embtk_os)
-STRICT_GNU_TARGET := mips64-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips4
+ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS32R2),y)
+GNU_TARGET := mips$(__embtk_mips_endian)-$(embtk_os)
+STRICT_GNU_TARGET := mipsisa32r2$(__embtk_mips_endian)-unknown-$(embtk_os)-$(__embtk_mips_clib)
+GNU_TARGET_ARCH := mips32r2
endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS32_LITTLE),y)
-GNU_TARGET := mipsel-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa32el-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips32
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS32_BIG),y)
-GNU_TARGET := mips-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa32-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips32
+ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS64),y)
+GNU_TARGET := mips64$(__embtk_mips_endian)-$(embtk_os)
+STRICT_GNU_TARGET := mipsisa64$(__embtk_mips_endian)-unknown-$(embtk_os)-$(__embtk_mips_clib)
+GNU_TARGET_ARCH := mips64
endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS32R2_LITTLE),y)
-GNU_TARGET := mipsel-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa32r2el-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips32r2
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS32R2_BIG),y)
-GNU_TARGET := mips-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa32r2-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips32r2
+ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS64R2),y)
+GNU_TARGET := mips64$(__embtk_mips_endian)-$(embtk_os)
+STRICT_GNU_TARGET := mipsisa64r2$(__embtk_mips_endian)-unknown-$(embtk_os)-$(__embtk_mips_clib)
+GNU_TARGET_ARCH := mips64r2
endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS64_LITTLE),y)
-GNU_TARGET := mips64el-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa64el-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips64
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS64_BIG),y)
-GNU_TARGET := mips64-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa64-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips64
-endif
+EMBTK_MCU_FLAG := $(GNU_TARGET_ARCH)
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS64R2_LITTLE),y)
-GNU_TARGET := mips64el-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa64r2el-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips64r2
-endif
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS_MIPS64R2_BIG),y)
-GNU_TARGET := mips64-$(embtk_os)
-STRICT_GNU_TARGET := mipsisa64r2-unknown-$(embtk_os)-uclibc
-GNU_TARGET_ARCH := mips64r2
-endif
-
-endif
-
-EMBTK_MCU_FLAG := $(GNU_TARGET_ARCH)
-
-#GCC configure options
-GCC_WITH_ARCH := --with-arch=$(GNU_TARGET_ARCH)
-export GCC_WITH_ARCH
+#
+# GCC configure options
+#
+GCC_WITH_ARCH := --with-arch=$(GNU_TARGET_ARCH)
-#Hard or soft floating point for GCC?
+# Hard or soft floating point for GCC?
ifeq ($(CONFIG_EMBTK_HARDFLOAT),y)
-GCC_WITH_FLOAT := --with-float=hard
-EMBTK_TARGET_FLOAT_CFLAGS := -mhard-float
+GCC_WITH_FLOAT := --with-float=hard
+EMBTK_TARGET_FLOAT_CFLAGS := -mhard-float
else
-GCC_WITH_FLOAT := --with-float=soft
-EMBTK_TARGET_FLOAT_CFLAGS := -msoft-float
+GCC_WITH_FLOAT := --with-float=soft
+EMBTK_TARGET_FLOAT_CFLAGS := -msoft-float
endif
-export GCC_WITH_FLOAT EMBTK_TARGET_FLOAT_CFLAGS
+# ABI part
ifeq ($(CONFIG_EMBTK_ARCH_MIPS_ABI_O32),y)
-GCC_WITH_ABI := --with-abi=32
-EMBTK_TARGET_ABI := -mabi=32
-export GCC_WITH_ABI EMBTK_TARGET_ABI
+GCC_WITH_ABI := --with-abi=32
+EMBTK_TARGET_ABI := -mabi=32
else ifeq ($(CONFIG_EMBTK_ARCH_MIPS_ABI_N32),y)
-GCC_WITH_ABI := --with-abi=n32
-EMBTK_TARGET_ABI := -mabi=n32
-export GCC_WITH_ABI EMBTK_TARGET_ABI
+GCC_WITH_ABI := --with-abi=n32
+EMBTK_TARGET_ABI := -mabi=n32
#else ifeq ($(CONFIG_EMBTK_ARCH_MIPS_ABI_EABI),y)
-#GCC_WITH_ABI := --with-abi=eabi
-#EMBTK_TARGET_ABI := -mabi=eabi
-#export GCC_WITH_ABI EMBTK_TARGET_ABI
+#GCC_WITH_ABI := --with-abi=eabi
+#EMBTK_TARGET_ABI := -mabi=eabi
#else ifeq ($(CONFIG_EMBTK_ARCH_MIPS_ABI_O64),y)
-#GCC_WITH_ABI := --with-abi=o64
-#EMBTK_TARGET_ABI := -mabi=o64
-#export GCC_WITH_ABI EMBTK_TARGET_ABI
+#GCC_WITH_ABI := --with-abi=o64
+#EMBTK_TARGET_ABI := -mabi=o64
else
-GCC_WITH_ABI := --with-abi=64
-EMBTK_TARGET_ABI := -mabi=64
-export GCC_WITH_ABI EMBTK_TARGET_ABI
+GCC_WITH_ABI := --with-abi=64
+EMBTK_TARGET_ABI := -mabi=64
endif
# Some other flags for TARGET_CFLAGS
-EMBTK_TARGET_MCPU :=
-EMBTK_TARGET_MARCH := -march=$(EMBTK_MCU_FLAG)
+EMBTK_TARGET_MCPU :=
+EMBTK_TARGET_MARCH := -march=$(EMBTK_MCU_FLAG)