summaryrefslogtreecommitdiff
path: root/target/config
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2011-04-26 12:50:25 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2011-04-26 12:50:25 +0200
commita8c14536161a7f62f06beb5928acfd78691bef78 (patch)
treeadeaed5057b137598c625e1fc6f8054d2cd9bfa7 /target/config
parentce64829c0d165fe0f25c861117a359b05293ec51 (diff)
make arm/mips architectures more configurable in a simpler way
Diffstat (limited to 'target/config')
-rw-r--r--target/config/Config.in87
-rw-r--r--target/config/Config.in.arch.choice34
-rw-r--r--target/config/Config.in.system.choice4
3 files changed, 92 insertions, 33 deletions
diff --git a/target/config/Config.in b/target/config/Config.in
index 265e339e8..cfa53894a 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -1,10 +1,85 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
+config ADK_big
+ boolean
+
+config ADK_little
+ boolean
+
+config ADK_TARGET_ENDIAN
+ string
+ default "little" if ADK_little
+ default "big" if ADK_big
source "target/config/Config.in.arch"
source "target/config/Config.in.system"
+choice
+prompt "Target Endianess"
+depends on ADK_LINUX_ARM || ADK_LINUX_MIPS && ADK_TOOLCHAIN_ONLY
+config ADK_ENDIAN
+ boolean "Choose target endianess"
+
+config ADK_TARGET_LITTLE_ENDIAN
+ boolean "Little endian"
+ select ADK_little
+
+config ADK_TARGET_BIG_ENDIAN
+ boolean "Big endian"
+ select ADK_big
+
+endchoice
+
+choice
+prompt "Target Kernel"
+depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+config ADK_TARGET_KERNEL
+ boolean "Choose target kernel"
+
+config ADK_TARGET_KERNEL32
+ boolean "32 Bit Kernel"
+
+config ADK_TARGET_KERNEL64
+ boolean "64 Bit Kernel"
+
+endchoice
+
+config ADK_o32
+ boolean
+
+config ADK_n32
+ boolean
+
+config ADK_n64
+ boolean
+
+config ADK_TARGET_ABI
+ string
+ default "32" if ADK_o32
+ default "n32" if ADK_n32
+ default "64" if ADK_n64
+
+choice
+prompt "Target ABI"
+depends on ADK_TARGET_KERNEL64 && ADK_LINUX_MIPS
+config ADK_ABI
+ boolean "Choose target ABI"
+
+config ADK_TARGET_ABI_O32
+ boolean "O32 ABI (old)"
+ select ADK_o32
+
+config ADK_TARGET_ABI_N32
+ boolean "N32 ABI (new)"
+ select ADK_n32
+
+config ADK_TARGET_ABI_N64
+ boolean "N64 ABI"
+ select ADK_n64
+
+endchoice
+
if ADK_LINUX_NATIVE
source "target/config/Config.in.native"
endif
@@ -164,6 +239,18 @@ config ADK_TARGET_CPU_ARCH
default "i686" if ADK_CPU_I686
default "i586" if ADK_CPU_GEODE
default "i686" if ADK_CPU_PENTIUM_M
+ default "mips64" if ADK_LINUX_MIPS && ADK_big && ADK_TARGET_KERNEL64
+ default "mips64el" if ADK_LINUX_MIPS && ADK_little && ADK_TARGET_KERNEL64
+ default "mips" if ADK_LINUX_MIPS && ADK_big
+ default "mipsel" if ADK_LINUX_MIPS && ADK_little
+ default "arm" if ADK_LINUX_ARM && ADK_little
+ default "armeb" if ADK_LINUX_ARM && ADK_big
+
+config ADK_TARGET_ABI_CFLAGS
+ string
+ default "-mabi=32" if ADK_TARGET_ABI_O32
+ default "-mabi=n32 -Wl,-m -Wl,elf32ltsmipn32" if ADK_TARGET_ABI_N32
+ default "-mabi=64 -Wl,-m -Wl,elf64ltsmip" if ADK_TARGET_ABI_N64
config ADK_TARGET_CFLAGS
string
diff --git a/target/config/Config.in.arch.choice b/target/config/Config.in.arch.choice
index 607fbb4b9..092a0297d 100644
--- a/target/config/Config.in.arch.choice
+++ b/target/config/Config.in.arch.choice
@@ -15,46 +15,22 @@ config ADK_LINUX_NATIVE
No toolchain will be created.
config ADK_LINUX_ARM
- bool "arm system (little endian)"
+ bool "arm system"
select ADK_arm
help
- Support for arm little endian systems.
-
-config ADK_LINUX_ARMEB
- bool "armeb system (big endian)"
- select ADK_armeb
- help
- Support for arm big endian systems.
+ Support for ARM systems.
config ADK_LINUX_CRIS
bool "cris system"
select ADK_cris
help
- Support for cris systems.
+ Support for CRIS systems.
config ADK_LINUX_MIPS
- bool "mips system (big endian)"
+ bool "mips system"
select ADK_mips
help
- Support for mips big endian systems.
-
-config ADK_LINUX_MIPSEL
- bool "mipsel system (little endian)"
- select ADK_mipsel
- help
- Support for mips little endian systems.
-
-config ADK_LINUX_MIPS64
- bool "mips64 system (big endian)"
- select ADK_mips64
- help
- Support for mips64 big endian systems.
-
-config ADK_LINUX_MIPS64EL
- bool "mips64el system (little endian)"
- select ADK_mips64el
- help
- Support for mips64 little endian systems.
+ Support for MIPS systems.
config ADK_LINUX_PPC
bool "ppc system"
diff --git a/target/config/Config.in.system.choice b/target/config/Config.in.system.choice
index 59b8a7bb7..597d8054a 100644
--- a/target/config/Config.in.system.choice
+++ b/target/config/Config.in.system.choice
@@ -1,10 +1,6 @@
source "target/arm/Config.in"
-source "target/armeb/Config.in"
source "target/cris/Config.in"
source "target/mips/Config.in"
-source "target/mipsel/Config.in"
-source "target/mips64/Config.in"
-source "target/mips64el/Config.in"
source "target/ppc/Config.in"
source "target/ppc64/Config.in"
source "target/sparc/Config.in"