diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | mk/build.mk | 24 | ||||
-rwxr-xr-x | scripts/update-sys | 15 | ||||
-rw-r--r-- | target/arm/Config.in | 2 | ||||
-rw-r--r-- | target/armeb/Config.in | 2 | ||||
-rw-r--r-- | target/config/Config.in | 31 | ||||
-rw-r--r-- | target/config/Config.in.arch.choice | 2 | ||||
-rw-r--r-- | target/cris/Config.in | 2 | ||||
-rw-r--r-- | target/mips/Config.in | 2 | ||||
-rw-r--r-- | target/mips64/Config.in | 2 | ||||
-rw-r--r-- | target/mips64el/Config.in | 2 | ||||
-rw-r--r-- | target/mipsel/Config.in | 2 | ||||
-rw-r--r-- | target/ppc/Config.in | 2 | ||||
-rw-r--r-- | target/ppc64/Config.in | 2 | ||||
-rw-r--r-- | target/sparc/Config.in | 2 | ||||
-rw-r--r-- | target/sparc64/Config.in | 2 | ||||
-rw-r--r-- | target/x86/Config.in | 2 | ||||
-rw-r--r-- | target/x86_64/Config.in | 2 |
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 @@ -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 |