Browse Source

fix native builds

Waldemar Brodkorb 13 years ago
parent
commit
50e7ffe10d

+ 1 - 0
.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

+ 11 - 0
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

+ 24 - 0
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

+ 14 - 1
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')

+ 1 - 1
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

+ 1 - 1
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

+ 22 - 9
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 || \

+ 1 - 1
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
-

+ 1 - 1
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

+ 1 - 1
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

+ 1 - 1
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

+ 1 - 1
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

+ 1 - 1
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

+ 1 - 1
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

+ 1 - 1
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

+ 1 - 1
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

+ 1 - 1
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

+ 1 - 1
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

+ 1 - 1
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