summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2010-12-31 16:47:57 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2010-12-31 16:47:57 +0100
commit50e7ffe10d0bca1ef5b2d27ebc518b456035a18d (patch)
treec25c7f2ab1a256d0f6a6781015c9febfb9631314
parent23251c0c6ee9f7c0d3c4b20a5db9f51b4a0cc361 (diff)
fix native builds
-rw-r--r--.gitignore1
-rw-r--r--Makefile11
-rw-r--r--mk/build.mk24
-rwxr-xr-xscripts/update-sys15
-rw-r--r--target/arm/Config.in2
-rw-r--r--target/armeb/Config.in2
-rw-r--r--target/config/Config.in31
-rw-r--r--target/config/Config.in.arch.choice2
-rw-r--r--target/cris/Config.in2
-rw-r--r--target/mips/Config.in2
-rw-r--r--target/mips64/Config.in2
-rw-r--r--target/mips64el/Config.in2
-rw-r--r--target/mipsel/Config.in2
-rw-r--r--target/ppc/Config.in2
-rw-r--r--target/ppc64/Config.in2
-rw-r--r--target/sparc/Config.in2
-rw-r--r--target/sparc64/Config.in2
-rw-r--r--target/x86/Config.in2
-rw-r--r--target/x86_64/Config.in2
19 files changed, 86 insertions, 24 deletions
diff --git a/.gitignore b/.gitignore
index 6aed8ed9e..b7a544049 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,3 +50,4 @@ target/packages/pkg-enabled
target/packages/Config.in
target/config/Config.in.system.default
target/config/Config.in.system
+target/config/Config.in.native
diff --git a/Makefile b/Makefile
index d2dbfdbb9..e465732bb 100644
--- a/Makefile
+++ b/Makefile
@@ -203,6 +203,17 @@ NO_ERROR=0
-e 's/cris.*/cris/' \
-e 's/i[3-9]86/i386/' \
)" >>prereq.mk
+ @echo "HOSTARCH:=$$(${CC} -dumpmachine | sed -e s'/-.*//' \
+ -e 's/sparc.*/sparc/' \
+ -e 's/arm.*/arm/g' \
+ -e 's/m68k.*/m68k/' \
+ -e 's/v850.*/v850/g' \
+ -e 's/sh[234]/sh/' \
+ -e 's/mips-.*/mips/' \
+ -e 's/mipsel-.*/mipsel/' \
+ -e 's/cris.*/cris/' \
+ -e 's/i[3-9]86/x86/' \
+ )" >>prereq.mk
@echo 'HOSTCC:=${CC}' >>prereq.mk
@echo 'HOSTCFLAGS:=-O2' >>prereq.mk
@echo 'HOSTCXX:=${CXX}' >>prereq.mk
diff --git a/mk/build.mk b/mk/build.mk
index 4bc23cc32..f5451b5b8 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -312,10 +312,22 @@ endif
ifeq ($(ADKtype),ibm-x40)
@echo ADK_LINUX_NATIVE=y >> $(TOPDIR)/.defconfig
@echo ADK_TARGET_SYSTEM_IBM_X40=y >> $(TOPDIR)/.defconfig
+ @sed -e "s#TARGET#NATIVE#" target/$(HOSTARCH)/sys-available/$(ADKtype) > \
+ target/$(HOSTARCH)/sys-enabled/.$(ADKtype)
+ @echo "choice" > $(TOPDIR)/target/config/Config.in.native
+ @echo "prompt \"Target system (autodetected)\"" >> $(TOPDIR)/target/config/Config.in.native
+ @echo "source \"target/$(HOSTARCH)/sys-enabled/.$(ADKtype)\"" >> $(TOPDIR)/target/config/Config.in.native
+ @echo "endchoice" >> $(TOPDIR)/target/config/Config.in.native
endif
ifeq ($(ADKtype),lemote-yeelong)
@echo ADK_LINUX_NATIVE=y >> $(TOPDIR)/.defconfig
@echo ADK_TARGET_SYSTEM_LEMOTE_YEELONG=y >> $(TOPDIR)/.defconfig
+ @sed -e "s#TARGET#NATIVE#" target/$(HOSTARCH)/sys-available/$(ADKtype) > \
+ target/$(HOSTARCH)/sys-enabled/.$(ADKtype)
+ @echo "choice" > $(TOPDIR)/target/config/Config.in.native
+ @echo "prompt \"Target system (autodetected)\"" >> $(TOPDIR)/target/config/Config.in.native
+ @echo "source \"target/$(HOSTARCH)/sys-enabled/.$(ADKtype)\"" >> $(TOPDIR)/target/config/Config.in.native
+ @echo "endchoice" >> $(TOPDIR)/target/config/Config.in.native
endif
@echo 'source "target/config/Config.in.arch.default"' > target/config/Config.in.arch
@echo 'source "target/config/Config.in.arch.choice"' >> target/config/Config.in.arch
@@ -383,9 +395,21 @@ ifneq (,$(filter CYGWIN%,${OStype}))
endif
ifeq ($(ADKtype),ibmx-40)
@echo ADK_TARGET_SYSTEM_IBM_X40=y >> $(TOPDIR)/all.config
+ @sed -e "s#TARGET#NATIVE#" target/$(HOSTARCH)/sys-available/$(ADKtype) > \
+ target/$(HOSTARCH)/sys-enabled/.$(ADKtype)
+ @echo "choice" > $(TOPDIR)/target/config/Config.in.native
+ @echo "prompt \"Target system (autodetected)\"" >> $(TOPDIR)/target/config/Config.in.native
+ @echo "source \"target/$(HOSTARCH)/sys-enabled/.$(ADKtype)\"" >> $(TOPDIR)/target/config/Config.in.native
+ @echo "endchoice" >> $(TOPDIR)/target/config/Config.in.native
endif
ifeq ($(ADKtype),lemote-yeelong)
@echo ADK_TARGET_SYSTEM_LEMOTE_YEELONG=y >> $(TOPDIR)/all.config
+ @sed -e "s#TARGET#NATIVE#" target/$(HOSTARCH)/sys-available/$(ADKtype) > \
+ target/$(HOSTARCH)/sys-enabled/.$(ADKtype)
+ @echo "choice" > $(TOPDIR)/target/config/Config.in.native
+ @echo "prompt \"Target system (autodetected)\"" >> $(TOPDIR)/target/config/Config.in.native
+ @echo "source \"target/$(HOSTARCH)/sys-enabled/.$(ADKtype)\"" >> $(TOPDIR)/target/config/Config.in.native
+ @echo "endchoice" >> $(TOPDIR)/target/config/Config.in.native
endif
@echo 'source "target/config/Config.in.arch.default"' > target/config/Config.in.arch
@echo 'source "target/config/Config.in.arch.choice"' >> target/config/Config.in.arch
diff --git a/scripts/update-sys b/scripts/update-sys
index 6a40aff36..bbbfcdbf8 100755
--- a/scripts/update-sys
+++ b/scripts/update-sys
@@ -1,4 +1,7 @@
-#!/bin/sh
+#!/usr/bin/env bash
+# 1. create Config.in.systems with all available target systems for each architecture
+# 2. if ADK configuration exist, create Config.in.arch/Config.in.system with fixed values
+
topdir=$(readlink -nf $(dirname $0)/.. 2>/dev/null || (cd $(dirname $0)/..; pwd -P))
defaults() {
@@ -9,12 +12,22 @@ defaults() {
exit 0
}
+check_native() {
+ native=$(grep ^ADK_LINUX_NATIVE $topdir/.config)
+ if [ ! -z "$native" ];then
+ exit 0
+ fi
+}
+
for i in $(ls $topdir/target/);do
if [ -d "$topdir/target/$i/sys-enabled" ];then
cat $topdir/target/$i/sys-enabled/* > $topdir/target/$i/Config.in.systems 2>/dev/null
fi
done
if [ -f $topdir/.config ];then
+
+check_native
+
arch=$(grep ^ADK_TARGET_ARCH $topdir/.config|cut -f 2 -d = | sed -e 's#"##g')
systemsym=$(grep ^ADK_TARGET_SYSTEM_ $topdir/.config|cut -f 1 -d =)
system=$(grep ^ADK_TARGET_SYSTEM= $topdir/.config|cut -f 2 -d = | sed -e 's#"##g')
diff --git a/target/arm/Config.in b/target/arm/Config.in
index a69f0906d..bd1b5c297 100644
--- a/target/arm/Config.in
+++ b/target/arm/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_ARM || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_ARM && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_ARM
diff --git a/target/armeb/Config.in b/target/armeb/Config.in
index 47b970694..2031c3a1e 100644
--- a/target/armeb/Config.in
+++ b/target/armeb/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_ARMEB || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_ARMEB && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_ARMEB
diff --git a/target/config/Config.in b/target/config/Config.in
index 77b48c71a..11fd58224 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -1,9 +1,14 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
+
source "target/config/Config.in.arch"
source "target/config/Config.in.system"
+if ADK_LINUX_NATIVE
+source "target/config/Config.in.native"
+endif
+
# hardware features
config ADK_TARGET_WITH_USB
boolean
@@ -65,7 +70,7 @@ config ADK_TARGET_WITH_DSL
config ADK_TARGET_WITH_USB_BOOT
boolean
-# global features
+# global symbols
config ADK_TOOLCHAIN_ONLY
boolean
@@ -81,6 +86,9 @@ config ADK_LINUX_64
config ADK_HARDWARE_QEMU
boolean
+config ADK_NATIVE
+ boolean
+
# cpu features
config ADK_TARGET_CPU_WITH_VT
boolean
@@ -165,16 +173,16 @@ config ADK_TARGET_CMDLINE
# c library
config ADK_uclibc
- tristate
+ boolean
config ADK_eglibc
- tristate
+ boolean
config ADK_glibc
- tristate
+ boolean
config ADK_libc
- tristate
+ boolean
config ADK_TARGET_LIBC
string
@@ -189,20 +197,23 @@ choice
prompt "Target C library"
depends on !ADK_CHOOSE_TARGET_SYSTEM && !ADK_CHOOSE_TARGET_ARCH
config ADK_TARGET_LIB_UCLIBC
- bool "uClibc embedded C library"
+ prompt "uClibc embedded C library"
+ boolean
+ select ADK_uclibc
depends on \
!ADK_TARGET_SYSTEM_LEMOTE_YEELONG && \
!ADK_LINUX_SPARC64 && \
!ADK_LINUX_SPARC && \
!ADK_LINUX_PPC64
- select ADK_uclibc
help
http://uclibc.org
config ADK_TARGET_LIB_EGLIBC
- bool "Embedded GNU C library"
+ prompt "Embedded GNU C library"
+ boolean
select ADK_eglibc
depends on \
+ ADK_LINUX_NATIVE || \
ADK_LINUX_ARM || \
ADK_LINUX_ARMEB || \
ADK_LINUX_MIPS || \
@@ -219,9 +230,11 @@ config ADK_TARGET_LIB_EGLIBC
http://www.eglibc.org
config ADK_TARGET_LIB_GLIBC
- bool "GNU C library"
+ prompt "GNU C library"
+ boolean
select ADK_glibc
depends on \
+ ADK_LINUX_NATIVE || \
ADK_LINUX_ARM || \
ADK_LINUX_ARMEB || \
ADK_LINUX_MIPS || \
diff --git a/target/config/Config.in.arch.choice b/target/config/Config.in.arch.choice
index 5e9566981..4b5292d88 100644
--- a/target/config/Config.in.arch.choice
+++ b/target/config/Config.in.arch.choice
@@ -8,6 +8,7 @@ config ADK_LINUX_NATIVE
bool "native build"
select ADK_libc
select ADK_native
+ select ADK_NATIVE
depends on ADK_HOST_LINUX
help
Make a native build. Use host tools.
@@ -92,4 +93,3 @@ config ADK_LINUX_X86_64
Support for x86_64/amd64 systems.
endchoice
-
diff --git a/target/cris/Config.in b/target/cris/Config.in
index 3a78084da..4ad4b681d 100644
--- a/target/cris/Config.in
+++ b/target/cris/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_CRIS || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_CRIS && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_CRIS
diff --git a/target/mips/Config.in b/target/mips/Config.in
index a27e679df..90a519f6b 100644
--- a/target/mips/Config.in
+++ b/target/mips/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_MIPS || ADK_LINUX_NATIVE && ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_MIPS && ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_MIPS
diff --git a/target/mips64/Config.in b/target/mips64/Config.in
index 304473f0d..d890f6ff6 100644
--- a/target/mips64/Config.in
+++ b/target/mips64/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_MIPS64 || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_MIPS64 && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_MIPS64
diff --git a/target/mips64el/Config.in b/target/mips64el/Config.in
index 9ca387e5c..4aa5edd01 100644
--- a/target/mips64el/Config.in
+++ b/target/mips64el/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_MIPS64EL || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_MIPS64EL && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_MIPS64EL
diff --git a/target/mipsel/Config.in b/target/mipsel/Config.in
index cbc38beeb..618d0ea24 100644
--- a/target/mipsel/Config.in
+++ b/target/mipsel/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_MIPSEL || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_MIPSEL && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_MIPSEL
diff --git a/target/ppc/Config.in b/target/ppc/Config.in
index b30a05a5c..272621e9f 100644
--- a/target/ppc/Config.in
+++ b/target/ppc/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_PPC || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_PPC && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_PPC
diff --git a/target/ppc64/Config.in b/target/ppc64/Config.in
index bbd37c280..a262de1f4 100644
--- a/target/ppc64/Config.in
+++ b/target/ppc64/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_PPC64 || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_PPC64 && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_PPC64
diff --git a/target/sparc/Config.in b/target/sparc/Config.in
index 7c956b58a..38db872ef 100644
--- a/target/sparc/Config.in
+++ b/target/sparc/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_SPARC || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_SPARC && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_SPARC
diff --git a/target/sparc64/Config.in b/target/sparc64/Config.in
index 9d114982c..7c22783e6 100644
--- a/target/sparc64/Config.in
+++ b/target/sparc64/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_SPARC64 || ADK_LINUX_NATIVE && ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_SPARC64 && ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_SPARC64
diff --git a/target/x86/Config.in b/target/x86/Config.in
index 10294d2c2..037dfb42c 100644
--- a/target/x86/Config.in
+++ b/target/x86/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_X86 || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_X86 && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_X86
diff --git a/target/x86_64/Config.in b/target/x86_64/Config.in
index e8c113ddf..eda6e949f 100644
--- a/target/x86_64/Config.in
+++ b/target/x86_64/Config.in
@@ -1,5 +1,5 @@
choice
-depends on ADK_LINUX_X86_64 || ADK_LINUX_NATIVE && !ADK_CHOOSE_TARGET_ARCH
+depends on ADK_LINUX_X86_64 && !ADK_CHOOSE_TARGET_ARCH
prompt "Target system"
config ADK_CHOOSE_TARGET_SYSTEM_X86_64