diff options
author | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2012-10-06 22:08:58 +0200 |
---|---|---|
committer | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2012-10-06 22:08:58 +0200 |
commit | 287850933d1a2b1a11f3eec86445ccbcd0471436 (patch) | |
tree | 1c99dded2ca944c5d83fad915ecf876332dccc44 /mk | |
parent | 8d38553beb87af2b268217e1514d1386ac978be1 (diff) | |
download | embtoolkit-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.mk | 258 |
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) |