Browse Source

Merge branch 'master' of git+ssh://openadk.org/git/openadk

Waldemar Brodkorb 11 years ago
parent
commit
70092108cb
44 changed files with 411 additions and 250 deletions
  1. 1 0
      README
  2. 0 1
      TODO
  3. 2 2
      docs/how-openadk-works.txt
  4. 2 2
      docs/package-reference.txt
  5. 4 4
      docs/using-openadk-toolchain.txt
  6. 5 2
      docs/using.txt
  7. 1 1
      mk/build.mk
  8. 5 6
      mk/host-bottom.mk
  9. 8 3
      mk/host.mk
  10. 1 1
      mk/package.mk
  11. 1 2
      mk/vars.mk
  12. 6 28
      package/base-files/Makefile
  13. 1 1
      package/base-files/files/inittab.serial
  14. 1 0
      package/base-files/files/inittab.shell
  15. 1 0
      package/bison/Makefile
  16. 1 0
      package/busybox/config/Config.in
  17. 1 1
      package/curl/Makefile
  18. 1 1
      package/dovecot/Makefile
  19. 1 1
      package/hostapd/Makefile
  20. 2 4
      package/ncurses/Makefile
  21. 1 1
      package/scons/Makefile
  22. 1 1
      package/strongswan/Makefile
  23. 1 1
      package/tntnet/Makefile
  24. 1 1
      package/wget/Makefile
  25. 1 1
      package/wpa_supplicant/Makefile
  26. 27 28
      rules.mk
  27. 6 0
      scripts/scan-tools.sh
  28. 1 0
      target/arm/sys-available/cubox-i
  29. 1 0
      target/arm/sys-available/qemu-arm
  30. 1 0
      target/arm/sys-available/qemu-armhf
  31. 1 0
      target/arm/sys-available/raspberry-pi
  32. 1 0
      target/arm/sys-available/toolchain-arm
  33. 1 0
      target/arm/sys-available/toolchain-armhf
  34. 11 0
      target/config/Config.in
  35. 1 0
      target/config/Config.in.adk
  36. 39 14
      target/config/Config.in.runtime
  37. 0 6
      target/config/Config.in.tools
  38. 1 1
      toolchain/binutils/Makefile
  39. 12 16
      toolchain/gcc/Makefile
  40. 3 4
      toolchain/glibc/Makefile
  41. 3 2
      toolchain/musl/Makefile
  42. 221 100
      toolchain/musl/patches/musl-git-20140319.patch
  43. 4 4
      toolchain/uClibc/Makefile
  44. 27 10
      tools/adk/depmaker.c

+ 1 - 0
README

@@ -19,6 +19,7 @@ Before you can start you need to install some tools:
 - ncurses5 headers
 - ncurses5 headers
 - zlib headers
 - zlib headers
 - perl
 - perl
+- git
 
 
 There is a check for the required versions of these tools in advance, though.
 There is a check for the required versions of these tools in advance, though.
 (to re-issue the checks, use "make prereq").
 (to re-issue the checks, use "make prereq").

+ 0 - 1
TODO

@@ -1,5 +1,4 @@
 - check gold for mozilla compile
 - check gold for mozilla compile
-- getty + serial rework
 - add daemon() function to functions.sh
 - add daemon() function to functions.sh
 - add printing of OK/FAIL (optional verbose bootup)
 - add printing of OK/FAIL (optional verbose bootup)
 - fixup rework libgcc --export-symbols
 - fixup rework libgcc --export-symbols

+ 2 - 2
docs/how-openadk-works.txt

@@ -59,8 +59,8 @@ is done:
 The main Makefile performs the following steps, once the
 The main Makefile performs the following steps, once the
 configuration is done (it is mainly a wrapper for +mk/build.mk+):
 configuration is done (it is mainly a wrapper for +mk/build.mk+):
 
 
-* Create all the output directories: +host_<gnu_host_name>+, +target_<arch>_<libc>+, +build_<arch>_<libc>+,
-  +pkg_<arch>_<libc>+, etc. 
+* Create all the output directories: +host_<gnu_host_name>+, +target_<arch>_<libc>+, 
+  +build_<arch>_<libc>+, +pkg_<arch>_<libc>+, etc. 
 
 
 * Call the +scan-pkgs.sh+ script to find any needed optional host software, needed to compile
 * Call the +scan-pkgs.sh+ script to find any needed optional host software, needed to compile
   software the user has configured 
   software the user has configured 

+ 2 - 2
docs/package-reference.txt

@@ -28,11 +28,11 @@ information is:
   building OpenADK behind a HTTP proxy should be working without any configuration hassle.
   building OpenADK behind a HTTP proxy should be working without any configuration hassle.
   There are also some predefined mirror sites in +mk/mirrors.mk+,
   There are also some predefined mirror sites in +mk/mirrors.mk+,
   which can be used.
   which can be used.
-  Example: PKG_SITES:=		${MASTER_SITE_GNU:=foo/}
+  Example: PKG_SITES:=		+${MASTER_SITE_GNU:=foo/}+
 
 
 * +DISTFILES+ optional, may contain the name of the tarball of
 * +DISTFILES+ optional, may contain the name of the tarball of
   the package. If +DISTFILES+ is not specified, it defaults to +PKG_NAME-PKG_VERSION.tar.gz+. 
   the package. If +DISTFILES+ is not specified, it defaults to +PKG_NAME-PKG_VERSION.tar.gz+. 
-  Example: DISTFILES=		${PKG_NAME}${PKG_VERSION}.tar.xz
+  Example: DISTFILES=		+${PKG_NAME}${PKG_VERSION}.tar.xz+
 
 
 * +NO_DISTFILES+ optional, may be set to 1, to disable fetching of any archives.
 * +NO_DISTFILES+ optional, may be set to 1, to disable fetching of any archives.
   Provide the source code for the package in +package/<pkgname>/src+, which will be
   Provide the source code for the package in +package/<pkgname>/src+, which will be

+ 4 - 4
docs/using-openadk-toolchain.txt

@@ -9,11 +9,11 @@ that are not packaged in OpenADK. In order to do this you can use the toolchain
 that was generated by OpenADK.
 that was generated by OpenADK.
 
 
 The toolchain generated by OpenADK is located by default in
 The toolchain generated by OpenADK is located by default in
-+host_<gnu_host_name>/+. The simplest way to use it is to add
-+host_<gnu_host_name>/bin/+ to your PATH environment variable and then to use
++toolchain_<gnu_host_name>/+. The simplest way to use it is to add
++toolchain_<gnu_host_name>/usr/bin/+ to your PATH environment variable and then to use
 +<arch>-<vendor>-linux-<libcsuffix>-gcc+,
 +<arch>-<vendor>-linux-<libcsuffix>-gcc+,
 +<arch>-<vendor>-linux-<libcsuffix>-objdump+, etc.
 +<arch>-<vendor>-linux-<libcsuffix>-objdump+, etc.
 
 
 It is possible to relocate the toolchain, you just need to put
 It is possible to relocate the toolchain, you just need to put
-+target_<arch>_<libc>_<abi>+ into the same directory as
-+host_<gnu_host_name>/+.
++target_<arch>_<libc>_<libcsuffix>+ into the same directory as
++toolchain_<gnu_host_name>/+.

+ 5 - 2
docs/using.txt

@@ -83,8 +83,11 @@ OpenADK output is stored in several subdirectories:
   not present, the binaries are stripped.
   not present, the binaries are stripped.
 
 
 * +host_<gnu_host_name>/+ contains the installation of tools compiled for the host
 * +host_<gnu_host_name>/+ contains the installation of tools compiled for the host
-  that are needed for the proper execution of OpenADK, including the
-  cross-compilation toolchain.
+  that are needed for the proper execution of OpenADK
+
+* +toolchain_<gnu_host_name>/+ contains just the cross-compilation toolchain.
+  Can be used together with +target_<arch>_<libc>/+ for other projects. Toolchain
+  is relocatable.
 
 
 * +toolchain_build_<arch>_<libc>/+ contains the build directories for the various
 * +toolchain_build_<arch>_<libc>/+ contains the build directories for the various
   components of the cross-compilation toolchain.
   components of the cross-compilation toolchain.

+ 1 - 1
mk/build.mk

@@ -98,7 +98,7 @@ POSTCONFIG=		-@\
 			touch .rebuild.busybox;\
 			touch .rebuild.busybox;\
 			rebuild=1;\
 			rebuild=1;\
 		fi; \
 		fi; \
-		for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_TMPFS_SIZE ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS ADK_RUNTIME_CONSOLE ADK_TARGET_QEMU_MICROBLAZE_MODEL;do \
+		for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_TMPFS_SIZE ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS ADK_RUNTIME_GETTY ADK_RUNTIME_SHELL;do \
 			if [ "$$(grep ^$$i .config|md5sum)" != "$$(grep ^$$i .config.old|md5sum)" ];then \
 			if [ "$$(grep ^$$i .config|md5sum)" != "$$(grep ^$$i .config.old|md5sum)" ];then \
 				touch .rebuild.base-files;\
 				touch .rebuild.base-files;\
 				rebuild=1;\
 				rebuild=1;\

+ 5 - 6
mk/host-bottom.mk

@@ -79,6 +79,7 @@ hpkg-install: ${ALL_HOSTINST}
 host-install:
 host-install:
 ${_HOST_FAKE_COOKIE}: ${_HOST_BUILD_COOKIE}
 ${_HOST_FAKE_COOKIE}: ${_HOST_BUILD_COOKIE}
 	@$(CMD_TRACE) "host installing... "
 	@$(CMD_TRACE) "host installing... "
+	@mkdir -p ${HOST_WRKINST}
 ifneq (${HOST_STYLE},manual)
 ifneq (${HOST_STYLE},manual)
 ifeq ($(strip ${HOST_STYLE}),)
 ifeq ($(strip ${HOST_STYLE}),)
 	cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
 	cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
@@ -92,12 +93,6 @@ else
 	env ${HOST_MAKE_ENV} ${MAKE} hpkg-install $(MAKE_TRACE)
 	env ${HOST_MAKE_ENV} ${MAKE} hpkg-install $(MAKE_TRACE)
 endif
 endif
 	env ${HOST_MAKE_ENV} ${MAKE} hostpost-install $(MAKE_TRACE)
 	env ${HOST_MAKE_ENV} ${MAKE} hostpost-install $(MAKE_TRACE)
-	rm -rf ${WRKBUILD} ${WRKDIST} ${WRKSRC}
-	exec ${MAKE} host-extract $(MAKE_TRACE)
-	mkdir -p ${HOST_WRKINST}
-	# avoid rebuild
-	@touch ${_HOST_CONFIGURE_COOKIE} 
-	@touch ${_HOST_BUILD_COOKIE}
 	@touch $@
 	@touch $@
 
 
 ${_HOST_COOKIE}:
 ${_HOST_COOKIE}:
@@ -107,3 +102,7 @@ ifeq ($(HOST_LINUX_ONLY),)
 hostpackage: ${ALL_HOSTDIRS}
 hostpackage: ${ALL_HOSTDIRS}
 	@touch ${_HOST_COOKIE}
 	@touch ${_HOST_COOKIE}
 endif
 endif
+
+hostclean:
+	@$(CMD_TRACE) "cleaning... "
+	rm -rf ${WRKDIR} ${STAGING_PKG_DIR}/stamps/${PKG_NAME}*-host

+ 8 - 3
mk/host.mk

@@ -1,6 +1,11 @@
 # This file is part of the OpenADK project. OpenADK is copyrighted
 # This file is part of the OpenADK project. OpenADK is copyrighted
 # material, please see the LICENCE file in the top-level directory.
 # material, please see the LICENCE file in the top-level directory.
 
 
+# This is where all package operation is done in
+ifneq (,$(findstring host,$(MAKECMDGOALS)))
+WRKDIR?=		${WRKDIR_BASE}/w-${PKG_NAME}-${PKG_VERSION}-${PKG_RELEASE}-host
+endif
+
 HOST_CONFIGURE_ENV+=	AUTOM4TE=${STAGING_HOST_DIR}/usr/bin/autom4te \
 HOST_CONFIGURE_ENV+=	AUTOM4TE=${STAGING_HOST_DIR}/usr/bin/autom4te \
 			CONFIG_SHELL='$(strip ${SHELL})' \
 			CONFIG_SHELL='$(strip ${SHELL})' \
 			PKG_CONFIG_LIBDIR='${STAGING_HOST_DIR}/usr/lib/pkgconfig' \
 			PKG_CONFIG_LIBDIR='${STAGING_HOST_DIR}/usr/lib/pkgconfig' \
@@ -30,7 +35,7 @@ HOST_MAKE_ENV+=		PATH='${HOST_PATH}' \
 HOST_MAKE_FLAGS+=	${HOST_XAKE_FLAGS} V=1
 HOST_MAKE_FLAGS+=	${HOST_XAKE_FLAGS} V=1
 HOST_FAKE_FLAGS+=	${HOST_XAKE_FLAGS}
 HOST_FAKE_FLAGS+=	${HOST_XAKE_FLAGS}
 
 
-HOST_WRKINST=		${WRKDIR}/host
+HOST_WRKINST=		${WRKDIR}/fake
 
 
 _HOST_EXTRACT_COOKIE=	${WRKDIST}/.extract_done
 _HOST_EXTRACT_COOKIE=	${WRKDIST}/.extract_done
 _HOST_PATCH_COOKIE=	${WRKDIST}/.prepared
 _HOST_PATCH_COOKIE=	${WRKDIST}/.prepared
@@ -54,7 +59,7 @@ hostfake: ${_HOST_FAKE_COOKIE}
 define HOST_template
 define HOST_template
 ALL_PKGOPTS+=	$(1)
 ALL_PKGOPTS+=	$(1)
 PKGNAME_$(1)=	$(2)
 PKGNAME_$(1)=	$(2)
-HOSTDIR_$(1)=	$(WRKDIR)/host
+HOSTDIR_$(1)=	$(WRKDIR)/fake
 ALL_HOSTDIRS+=	$${HOSTDIR_$(1)}
 ALL_HOSTDIRS+=	$${HOSTDIR_$(1)}
 ALL_HOSTINST+=	$(2)-hostinstall
 ALL_HOSTINST+=	$(2)-hostinstall
 
 
@@ -63,4 +68,4 @@ $$(HOSTDIR_$(1)): ${_HOST_PATCH_COOKIE} ${_HOST_FAKE_COOKIE}
 endef
 endef
 
 
 .PHONY:	all hostextract hostpatch hostconfigure \
 .PHONY:	all hostextract hostpatch hostconfigure \
-	hostbuild hostpackage hostfake
+	hostbuild hostpackage hostfake hostclean

+ 1 - 1
mk/package.mk

@@ -314,7 +314,7 @@ clean-targets:
 clean:
 clean:
 	@$(CMD_TRACE) "cleaning... "
 	@$(CMD_TRACE) "cleaning... "
 	@$(MAKE) clean-targets $(MAKE_TRACE)
 	@$(MAKE) clean-targets $(MAKE_TRACE)
-	rm -rf ${WRKDIR} ${ALL_IPKGS} ${STAGING_PKG_DIR}/stamps/${PKG_NAME}*
+	rm -rf ${WRKDIR} ${ALL_IPKGS} ${STAGING_PKG_DIR}/stamps/${PKG_NAME}${PKG_VERSION}
 
 
 distclean: clean
 distclean: clean
 	rm -f ${FULLDISTFILES}
 	rm -f ${FULLDISTFILES}

+ 1 - 2
mk/vars.mk

@@ -100,8 +100,7 @@ TARGET_CFLAGS:=		$(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts
 TARGET_CXXFLAGS:=	$(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident
 TARGET_CXXFLAGS:=	$(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident
 TARGET_LDFLAGS:=	-L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \
 TARGET_LDFLAGS:=	-L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \
 			-Wl,-O1 -Wl,-rpath -Wl,/usr/lib \
 			-Wl,-O1 -Wl,-rpath -Wl,/usr/lib \
-			-Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib \
-			$(ADK_TARGET_ABI_LDFLAGS)
+			-Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib
 
 
 # security optimization, see http://www.akkadia.org/drepper/dsohowto.pdf
 # security optimization, see http://www.akkadia.org/drepper/dsohowto.pdf
 TARGET_LDFLAGS+=	-Wl,-z,relro,-z,now
 TARGET_LDFLAGS+=	-Wl,-z,relro,-z,now

+ 6 - 28
package/base-files/Makefile

@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk
 
 
 PKG_NAME:=		base-files
 PKG_NAME:=		base-files
 PKG_VERSION:=		1.0
 PKG_VERSION:=		1.0
-PKG_RELEASE:=		72
+PKG_RELEASE:=		74
 PKG_SECTION:=		base
 PKG_SECTION:=		base
 PKG_DESCR:=		basic files and scripts
 PKG_DESCR:=		basic files and scripts
 PKG_BUILDDEP:=		pkgconf-host file-host
 PKG_BUILDDEP:=		pkgconf-host file-host
@@ -55,35 +55,13 @@ endif
 	ln -sf ../proc/mounts $(IDIR_BASE_FILES)/etc/mtab
 	ln -sf ../proc/mounts $(IDIR_BASE_FILES)/etc/mtab
 	rm -rf $(IDIR_BASE_FILES)/var
 	rm -rf $(IDIR_BASE_FILES)/var
 	ln -sf tmp $(IDIR_BASE_FILES)/var
 	ln -sf tmp $(IDIR_BASE_FILES)/var
-	test -z $(ADK_RUNTIME_CONSOLE_VGA) || \
+	test -z $(ADK_RUNTIME_SHELL) || \
+	    cat ./files/inittab.shell >> $(IDIR_BASE_FILES)/etc/inittab
+	test -z $(ADK_RUNTIME_GETTY_VGA) || \
 	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
 	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
-	test -z $(ADK_RUNTIME_CONSOLE_SERIAL) || \
+	test -z $(ADK_RUNTIME_GETTY_SERIAL) || \
 	    cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab
 	    cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab
-	test -z $(ADK_RUNTIME_CONSOLE_BOTH) || \
-	    cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab
-	test -z $(ADK_RUNTIME_CONSOLE_BOTH) || \
-	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
-ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB),y)
-	$(SED) 's#ttyS#ttyAMA#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
-ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9),y)
-	$(SED) 's#ttyS#ttyAMA#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
-ifeq ($(ADK_TARGET_SYSTEM_ARANYM_M68K),y)
-	$(SED) 's#ttyS#nfcon#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC64),y)
-	$(SED) 's#ttyS#hvc#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_SH4),y)
-	$(SED) 's#ttyS0#ttySC1#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_SH4EB),y)
-	$(SED) 's#ttyS0#ttySC1#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
-ifeq ($(ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800),y)
-	$(SED) 's#ttyS#ttyUL#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
+	$(SED) 's#@DEVICE@#$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)#' $(IDIR_BASE_FILES)/etc/inittab
 	$(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab
 	$(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab
 	test -z $(ADK_RUNTIME_HOSTNAME) || \
 	test -z $(ADK_RUNTIME_HOSTNAME) || \
 	    echo $(ADK_RUNTIME_HOSTNAME) > $(IDIR_BASE_FILES)/etc/hostname; \
 	    echo $(ADK_RUNTIME_HOSTNAME) > $(IDIR_BASE_FILES)/etc/hostname; \

+ 1 - 1
package/base-files/files/inittab.serial

@@ -1 +1 @@
-ttyS0::respawn:/sbin/getty -i -L ttyS0 @SPEED@ vt100
+@DEVICE@::respawn:/sbin/getty -i -L @DEVICE@ @SPEED@ vt100

+ 1 - 0
package/base-files/files/inittab.shell

@@ -0,0 +1 @@
+::askfirst:/bin/sh

+ 1 - 0
package/bison/Makefile

@@ -10,6 +10,7 @@ PKG_MD5SUM:=		032a7b7b9f1a6e278ccde73f82cec5c2
 PKG_DESCR:=		GNU parser generator
 PKG_DESCR:=		GNU parser generator
 PKG_SECTION:=		lang
 PKG_SECTION:=		lang
 PKG_BUILDDEP:=		m4-host flex-host bison-host
 PKG_BUILDDEP:=		m4-host flex-host bison-host
+HOST_BUILDDEP:=		m4-host flex-host
 PKG_URL:=		http://www.gnu.org/software/bison/
 PKG_URL:=		http://www.gnu.org/software/bison/
 PKG_SITES:=		${MASTER_SITE_GNU:=${PKG_NAME}/}
 PKG_SITES:=		${MASTER_SITE_GNU:=${PKG_NAME}/}
 
 

+ 1 - 0
package/busybox/config/Config.in

@@ -454,6 +454,7 @@ menu 'Build Options'
 
 
 config BUSYBOX_STATIC
 config BUSYBOX_STATIC
 	bool "Build BusyBox as a static binary (no shared libs)"
 	bool "Build BusyBox as a static binary (no shared libs)"
+	default y if ADK_STATIC
 	default n
 	default n
 	help
 	help
 	  If you want to build a static BusyBox binary, which does not
 	  If you want to build a static BusyBox binary, which does not

+ 1 - 1
package/curl/Makefile

@@ -24,7 +24,7 @@ PKGSS_LIBCURL:=		zlib
 PKG_FLAVOURS_CURL:=	WITH_IPV6
 PKG_FLAVOURS_CURL:=	WITH_IPV6
 PKGFD_WITH_IPV6:=	enable IPv6 support
 PKGFD_WITH_IPV6:=	enable IPv6 support
 
 
-PKG_CHOICES_LIBCURL:=	WITHOUT_SSL WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_LIBCURL:=	WITH_GNUTLS WITH_OPENSSL WITHOUT_SSL
 PKGCD_WITHOUT_SSL:=	use no SSL
 PKGCD_WITHOUT_SSL:=	use no SSL
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=	libopenssl ca-certificates libgmp
 PKGCS_WITH_OPENSSL:=	libopenssl ca-certificates libgmp

+ 1 - 1
package/dovecot/Makefile

@@ -12,7 +12,7 @@ PKG_SECTION:=		mail
 PKG_URL:=		http://www.dovecot.org/
 PKG_URL:=		http://www.dovecot.org/
 PKG_SITES:=		http://www.dovecot.org/releases/2.0/
 PKG_SITES:=		http://www.dovecot.org/releases/2.0/
 
 
-PKG_CHOICES_DOVECOT:=	WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_DOVECOT:=	WITH_GNUTLS WITH_OPENSSL
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=	libopenssl
 PKGCS_WITH_OPENSSL:=	libopenssl
 PKGCB_WITH_OPENSSL:=	openssl
 PKGCB_WITH_OPENSSL:=	openssl

+ 1 - 1
package/hostapd/Makefile

@@ -16,7 +16,7 @@ PKG_SITES:=		http://hostap.epitest.fi/releases/
 PKG_MULTI:=		1
 PKG_MULTI:=		1
 
 
 PKG_SUBPKGS:=		HOSTAPD HOSTAPD_UTILS
 PKG_SUBPKGS:=		HOSTAPD HOSTAPD_UTILS
-PKG_CHOICES_HOSTAPD:=	WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_HOSTAPD:=	WITH_GNUTLS WITH_OPENSSL
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=	libopenssl
 PKGCS_WITH_OPENSSL:=	libopenssl
 PKGCB_WITH_OPENSSL:=	openssl
 PKGCB_WITH_OPENSSL:=	openssl

+ 2 - 4
package/ncurses/Makefile

@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
 
 
 PKG_NAME:=		ncurses
 PKG_NAME:=		ncurses
 PKG_VERSION:=		5.9
 PKG_VERSION:=		5.9
-PKG_RELEASE:=		4
+PKG_RELEASE:=		5
 PKG_MD5SUM:=		8cb9c412e5f2d96bc6f459aa8c6282a1
 PKG_MD5SUM:=		8cb9c412e5f2d96bc6f459aa8c6282a1
 PKG_DESCR:=		a terminal handling library
 PKG_DESCR:=		a terminal handling library
 PKG_SECTION:=		libs
 PKG_SECTION:=		libs
@@ -50,6 +50,7 @@ CONFIGURE_ARGS+=	--without-cxx \
 ALL_TARGET:=		libs
 ALL_TARGET:=		libs
 INSTALL_TARGET:=	install.libs install.data
 INSTALL_TARGET:=	install.libs install.data
 
 
+HOST_STYLE:=		auto
 # use sth which does not exist
 # use sth which does not exist
 HOST_ALL_TARGET:=	progs
 HOST_ALL_TARGET:=	progs
 HOST_INSTALL_TARGET:=	install.includes install.progs
 HOST_INSTALL_TARGET:=	install.includes install.progs
@@ -69,9 +70,6 @@ HOST_CONFIGURE_ARGS+=	--without-shared \
 			--without-debug \
 			--without-debug \
 			--without-profile
 			--without-profile
 
 
-libncurses-hostinstall:
-	${CP} ${HOST_WRKINST}/usr/bin/* ${STAGING_HOST_DIR}/usr/bin
-
 libncurses-install:
 libncurses-install:
 	rm -rf ${WRKINST}/usr/lib/terminfo
 	rm -rf ${WRKINST}/usr/lib/terminfo
 	# this is installed as libncurses - make libcurses a "link"
 	# this is installed as libncurses - make libcurses a "link"

+ 1 - 1
package/scons/Makefile

@@ -9,7 +9,7 @@ PKG_RELEASE:=		1
 PKG_MD5SUM:=		083ce5624d6adcbdaf2526623f456ca9
 PKG_MD5SUM:=		083ce5624d6adcbdaf2526623f456ca9
 PKG_DESCR:=		a software construction tool
 PKG_DESCR:=		a software construction tool
 PKG_SECTION:=		lang
 PKG_SECTION:=		lang
-PKG_BUILDDEP:=		bzip2-host python2-host
+HOST_BUILDDEP:=		bzip2-host python2-host
 PKG_URL:=		http://www.scons.org
 PKG_URL:=		http://www.scons.org
 PKG_SITES:=		${MASTER_SITE_SOURCEFORGE:=scons/}
 PKG_SITES:=		${MASTER_SITE_SOURCEFORGE:=scons/}
 
 

+ 1 - 1
package/strongswan/Makefile

@@ -20,7 +20,7 @@ PKG_SITES:=		http://download.strongswan.org/
 
 
 PKG_LIBC_DEPENDS:=	uclibc glibc
 PKG_LIBC_DEPENDS:=	uclibc glibc
 
 
-PKG_CHOICES_STRONGSWAN:=WITH_GMP WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_STRONGSWAN:=WITH_GNUTLS WITH_OPENSSL WITH_GMP
 PKGCD_WITH_GMP:=	use GMP for crypto
 PKGCD_WITH_GMP:=	use GMP for crypto
 PKGCS_WITH_GMP:=	libgmp
 PKGCS_WITH_GMP:=	libgmp
 PKGCB_WITH_GMP:=	gmp
 PKGCB_WITH_GMP:=	gmp

+ 1 - 1
package/tntnet/Makefile

@@ -17,7 +17,7 @@ PKG_NEED_CXX:=		1
 
 
 PKG_ARCH_DEPENDS:=	!arm !m68k
 PKG_ARCH_DEPENDS:=	!arm !m68k
 
 
-PKG_CHOICES_TNTNET:=	WITHOUT_SSL WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_TNTNET:=	WITH_GNUTLS WITH_OPENSSL WITHOUT_SSL
 PKGCD_WITHOUT_SSL:=	use no SSL
 PKGCD_WITHOUT_SSL:=	use no SSL
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=	libopenssl
 PKGCS_WITH_OPENSSL:=	libopenssl

+ 1 - 1
package/wget/Makefile

@@ -13,7 +13,7 @@ PKG_BUILDDEP:=		autotool
 PKG_URL:=		http://www.gnu.org/software/wget/
 PKG_URL:=		http://www.gnu.org/software/wget/
 PKG_SITES:=		${MASTER_SITE_GNU:=wget/}
 PKG_SITES:=		${MASTER_SITE_GNU:=wget/}
 
 
-PKG_CHOICES_WGET:=	WITHOUT_SSL WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_WGET:=	WITH_GNUTLS WITH_OPENSSL WITHOUT_SSL
 PKGCD_WITHOUT_SSL:=	use no SSL
 PKGCD_WITHOUT_SSL:=	use no SSL
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=	libopenssl ca-certificates libgmp
 PKGCS_WITH_OPENSSL:=	libopenssl ca-certificates libgmp

+ 1 - 1
package/wpa_supplicant/Makefile

@@ -18,7 +18,7 @@ PKG_DFLT_WPA_SUPPLICANT:=	y if ADK_TARGET_SYSTEM_IBM_X40
 
 
 WRKSRC=			${WRKDIST}/${PKG_NAME}
 WRKSRC=			${WRKDIST}/${PKG_NAME}
 
 
-PKG_CHOICES_WPA_SUPPLICANT:=	WITH_OPENSSL WITH_GNUTLS WITH_INTERNAL
+PKG_CHOICES_WPA_SUPPLICANT:=	WITH_GNUTLS WITH_OPENSSL WITH_INTERNAL
 PKGCD_WITH_OPENSSL:=		use OpenSSL for crypto
 PKGCD_WITH_OPENSSL:=		use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=		libopenssl
 PKGCS_WITH_OPENSSL:=		libopenssl
 PKGCB_WITH_OPENSSL:=		openssl
 PKGCB_WITH_OPENSSL:=		openssl

+ 27 - 28
rules.mk

@@ -25,37 +25,36 @@ SET_DASHX:=		:
 endif
 endif
 
 
 # Strip off the annoying quoting
 # Strip off the annoying quoting
-ADK_TARGET_KERNEL:=	$(strip $(subst ",, $(ADK_TARGET_KERNEL)))
-ADK_TARGET_ARCH:=	$(strip $(subst ",, $(ADK_TARGET_ARCH)))
-ADK_TARGET_SYSTEM:=	$(strip $(subst ",, $(ADK_TARGET_SYSTEM)))
-ADK_TARGET_LIBC:=	$(strip $(subst ",, $(ADK_TARGET_LIBC)))
-ADK_TARGET_LIBC_PATH:=	$(strip $(subst ",, $(ADK_TARGET_LIBC_PATH)))
-ADK_TARGET_ENDIAN:=	$(strip $(subst ",, $(ADK_TARGET_ENDIAN)))
-ADK_TARGET_FLOAT:=	$(strip $(subst ",, $(ADK_TARGET_FLOAT)))
-ADK_TARGET_ARM_MODE:=	$(strip $(subst ",, $(ADK_TARGET_ARM_MODE)))
-ADK_TARGET_CPU_ARCH:=	$(strip $(subst ",, $(ADK_TARGET_CPU_ARCH)))
-ADK_TARGET_CFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_CFLAGS)))
-ADK_TARGET_ABI_CFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_ABI_CFLAGS)))
-ADK_TARGET_ABI_LDFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_ABI_LDFLAGS)))
-ADK_TARGET_KERNEL_LDFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_KERNEL_LDFLAGS)))
-ADK_TARGET_ABI:=	$(strip $(subst ",, $(ADK_TARGET_ABI)))
-ADK_TARGET_MIPS_ABI:=	$(strip $(subst ",, $(ADK_TARGET_MIPS_ABI)))
-ADK_TARGET_IP:=		$(strip $(subst ",, $(ADK_TARGET_IP)))
-ADK_TARGET_SUFFIX:=	$(strip $(subst ",, $(ADK_TARGET_SUFFIX)))
-ADK_TARGET_CMDLINE:=	$(strip $(subst ",, $(ADK_TARGET_CMDLINE)))
-ADK_QEMU_ARGS:=		$(strip $(subst ",, $(ADK_QEMU_ARGS)))
-ADK_RUNTIME_TMPFS_SIZE:=	$(strip $(subst ",, $(ADK_RUNTIME_TMPFS_SIZE)))
+ADK_TARGET_KERNEL:=			$(strip $(subst ",, $(ADK_TARGET_KERNEL)))
+ADK_TARGET_ARCH:=			$(strip $(subst ",, $(ADK_TARGET_ARCH)))
+ADK_TARGET_SYSTEM:=			$(strip $(subst ",, $(ADK_TARGET_SYSTEM)))
+ADK_TARGET_LIBC:=			$(strip $(subst ",, $(ADK_TARGET_LIBC)))
+ADK_TARGET_LIBC_PATH:=			$(strip $(subst ",, $(ADK_TARGET_LIBC_PATH)))
+ADK_TARGET_ENDIAN:=			$(strip $(subst ",, $(ADK_TARGET_ENDIAN)))
+ADK_TARGET_FLOAT:=			$(strip $(subst ",, $(ADK_TARGET_FLOAT)))
+ADK_TARGET_FPU:=			$(strip $(subst ",, $(ADK_TARGET_FPU)))
+ADK_TARGET_ARM_MODE:=			$(strip $(subst ",, $(ADK_TARGET_ARM_MODE)))
+ADK_TARGET_CPU_ARCH:=			$(strip $(subst ",, $(ADK_TARGET_CPU_ARCH)))
+ADK_TARGET_CFLAGS:=			$(strip $(subst ",, $(ADK_TARGET_CFLAGS)))
+ADK_TARGET_ABI_CFLAGS:=			$(strip $(subst ",, $(ADK_TARGET_ABI_CFLAGS)))
+ADK_TARGET_ABI:=			$(strip $(subst ",, $(ADK_TARGET_ABI)))
+ADK_TARGET_MIPS_ABI:=			$(strip $(subst ",, $(ADK_TARGET_MIPS_ABI)))
+ADK_TARGET_IP:=				$(strip $(subst ",, $(ADK_TARGET_IP)))
+ADK_TARGET_SUFFIX:=			$(strip $(subst ",, $(ADK_TARGET_SUFFIX)))
+ADK_TARGET_CMDLINE:=			$(strip $(subst ",, $(ADK_TARGET_CMDLINE)))
+ADK_QEMU_ARGS:=				$(strip $(subst ",, $(ADK_QEMU_ARGS)))
+ADK_RUNTIME_TMPFS_SIZE:=		$(strip $(subst ",, $(ADK_RUNTIME_TMPFS_SIZE)))
 ADK_RUNTIME_CONSOLE_SERIAL_SPEED:=	$(strip $(subst ",, $(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)))
 ADK_RUNTIME_CONSOLE_SERIAL_SPEED:=	$(strip $(subst ",, $(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)))
-ADK_HOST:=		$(strip $(subst ",, $(ADK_HOST)))
-ADK_VENDOR:=		$(strip $(subst ",, $(ADK_VENDOR)))
-ADK_DL_DIR:=		$(strip $(subst ",, $(ADK_DL_DIR)))
-ADK_COMPRESSION_TOOL:=		$(strip $(subst ",, $(ADK_COMPRESSION_TOOL)))
-ADK_TOOLS_ADDPATTERN_ARGS:=	$(strip $(subst ",, $(ADK_TOOLS_ADDPATTERN_ARGS)))
-ADK_KERNEL_VERSION:=		$(strip $(subst ",, $(ADK_KERNEL_VERSION)))
+ADK_RUNTIME_CONSOLE_SERIAL_DEVICE:=	$(strip $(subst ",, $(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)))
+ADK_HOST:=				$(strip $(subst ",, $(ADK_HOST)))
+ADK_VENDOR:=				$(strip $(subst ",, $(ADK_VENDOR)))
+ADK_DL_DIR:=				$(strip $(subst ",, $(ADK_DL_DIR)))
+ADK_COMPRESSION_TOOL:=			$(strip $(subst ",, $(ADK_COMPRESSION_TOOL)))
+ADK_KERNEL_VERSION:=			$(strip $(subst ",, $(ADK_KERNEL_VERSION)))
 ADK_PARAMETER_NETCONSOLE_SRC_IP:=	$(strip $(subst ",, $(ADK_PARAMETER_NETCONSOLE_SRC_IP)))
 ADK_PARAMETER_NETCONSOLE_SRC_IP:=	$(strip $(subst ",, $(ADK_PARAMETER_NETCONSOLE_SRC_IP)))
 ADK_PARAMETER_NETCONSOLE_DST_IP:=	$(strip $(subst ",, $(ADK_PARAMETER_NETCONSOLE_DST_IP)))
 ADK_PARAMETER_NETCONSOLE_DST_IP:=	$(strip $(subst ",, $(ADK_PARAMETER_NETCONSOLE_DST_IP)))
-ADK_JFFS2_OPTS:=	$(strip $(subst ",, $(ADK_JFFS2_OPTS)))
-ADK_WGET_TIMEOUT:=	$(strip $(subst ",, $(ADK_WGET_TIMEOUT)))
+ADK_JFFS2_OPTS:=			$(strip $(subst ",, $(ADK_JFFS2_OPTS)))
+ADK_WGET_TIMEOUT:=			$(strip $(subst ",, $(ADK_WGET_TIMEOUT)))
 
 
 ifeq ($(strip ${ADK_HAVE_DOT_CONFIG}),y)
 ifeq ($(strip ${ADK_HAVE_DOT_CONFIG}),y)
 ifneq ($(strip $(wildcard $(TOPDIR)/target/$(ADK_TARGET_ARCH)/target.mk)),)
 ifneq ($(strip $(wildcard $(TOPDIR)/target/$(ADK_TARGET_ARCH)/target.mk)),)

+ 6 - 0
scripts/scan-tools.sh

@@ -208,6 +208,12 @@ if ! which g++ >/dev/null 2>&1; then
 	out=1
 	out=1
 fi
 fi
 
 
+if ! which git >/dev/null 2>&1; then
+	echo  "You need git to continue."
+	echo
+	out=1
+fi
+
 cd $topdir
 cd $topdir
 rm -rf tmp
 rm -rf tmp
 
 

+ 1 - 0
target/arm/sys-available/cubox-i

@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_CUBOX_I
 	select ADK_little
 	select ADK_little
 	select ADK_hard_float
 	select ADK_hard_float
 	select ADK_eabihf
 	select ADK_eabihf
+	select ADK_fpu_neon
 	select ADK_cubox_i
 	select ADK_cubox_i
 	select ADK_CPU_CORTEX_A9
 	select ADK_CPU_CORTEX_A9
 	select ADK_TARGET_WITH_MMC
 	select ADK_TARGET_WITH_MMC

+ 1 - 0
target/arm/sys-available/qemu-arm

@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_QEMU_ARM
 	select ADK_qemu_arm
 	select ADK_qemu_arm
 	select ADK_little
 	select ADK_little
 	select ADK_soft_float
 	select ADK_soft_float
+	select ADK_fpu_vfp
 	select ADK_eabi
 	select ADK_eabi
 	select ADK_HARDWARE_QEMU
 	select ADK_HARDWARE_QEMU
 	select ADK_TARGET_KERNEL_ZIMAGE
 	select ADK_TARGET_KERNEL_ZIMAGE

+ 1 - 0
target/arm/sys-available/qemu-armhf

@@ -5,6 +5,7 @@ config ADK_TARGET_SYSTEM_QEMU_ARMHF
 	select ADK_little
 	select ADK_little
 	select ADK_hard_float
 	select ADK_hard_float
 	select ADK_eabihf
 	select ADK_eabihf
+	select ADK_fpu_vfp
 	select ADK_HARDWARE_QEMU
 	select ADK_HARDWARE_QEMU
 	select ADK_TARGET_KERNEL_ZIMAGE
 	select ADK_TARGET_KERNEL_ZIMAGE
 	help
 	help

+ 1 - 0
target/arm/sys-available/raspberry-pi

@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
 	select ADK_little
 	select ADK_little
 	select ADK_hard_float
 	select ADK_hard_float
 	select ADK_eabihf
 	select ADK_eabihf
+	select ADK_fpu_vfp
 	select ADK_raspberry_pi
 	select ADK_raspberry_pi
 	select ADK_CPU_ARM1176JZF_S
 	select ADK_CPU_ARM1176JZF_S
 	select ADK_TARGET_WITH_MMC
 	select ADK_TARGET_WITH_MMC

+ 1 - 0
target/arm/sys-available/toolchain-arm

@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_ARM
 	select ADK_toolchain_arm
 	select ADK_toolchain_arm
 	select ADK_little
 	select ADK_little
 	select ADK_soft_float
 	select ADK_soft_float
+	select ADK_fpu_vfp
 	select ADK_eabi
 	select ADK_eabi
 	select ADK_TOOLCHAIN
 	select ADK_TOOLCHAIN
 	select ADK_TARGET_PACKAGE_TGZ
 	select ADK_TARGET_PACKAGE_TGZ

+ 1 - 0
target/arm/sys-available/toolchain-armhf

@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_ARMHF
 	select ADK_little
 	select ADK_little
 	select ADK_hard_float
 	select ADK_hard_float
 	select ADK_eabihf
 	select ADK_eabihf
+	select ADK_fpu_vfp
 	select ADK_toolchain_armhf
 	select ADK_toolchain_armhf
 	select ADK_TOOLCHAIN
 	select ADK_TOOLCHAIN
 	select ADK_TARGET_PACKAGE_TGZ
 	select ADK_TARGET_PACKAGE_TGZ

+ 11 - 0
target/config/Config.in

@@ -37,6 +37,12 @@ config ADK_soft_float
 config ADK_hard_float
 config ADK_hard_float
 	boolean
 	boolean
 
 
+config ADK_fpu_neon
+	boolean
+
+config ADK_fpu_vfp
+	boolean
+
 config ADK_mode_arm
 config ADK_mode_arm
 	boolean
 	boolean
 
 
@@ -48,6 +54,11 @@ config ADK_TARGET_FLOAT
 	default "hard" if ADK_hard_float
 	default "hard" if ADK_hard_float
 	default "soft" if ADK_soft_float
 	default "soft" if ADK_soft_float
 
 
+config ADK_TARGET_FPU
+	string
+	default "vfp" if ADK_fpu_vfp
+	default "neon" if ADK_fpu_neon
+
 config ADK_TARGET_ARM_MODE
 config ADK_TARGET_ARM_MODE
 	depends on ADK_LINUX_ARM
 	depends on ADK_LINUX_ARM
 	string
 	string

+ 1 - 0
target/config/Config.in.adk

@@ -36,6 +36,7 @@ config ADK_DEBUG_STRIP
 config ADK_STATIC
 config ADK_STATIC
 	bool "Link applications statically by default"
 	bool "Link applications statically by default"
 	default n
 	default n
+	select BUSYBOX_STATIC
 	help
 	help
 	  Useful for toolchain only target devices.
 	  Useful for toolchain only target devices.
 
 

+ 39 - 14
target/config/Config.in.runtime

@@ -37,30 +37,55 @@ config ADK_RUNTIME_TIMEZONE
 	  Predefine the timezone for the embedded system.
 	  Predefine the timezone for the embedded system.
 
 
 choice
 choice
-prompt "Console output on embedded system"
-default ADK_RUNTIME_CONSOLE_BOTH if ADK_TARGET_WITH_VGA || ADK_TARGET_QEMU_WITH_GRAPHIC && !ADK_TARGET_SYSTEM_RASPBERRY_PI && !ADK_TARGET_SYSTEM_LEMOTE_YEELONG
-default ADK_RUNTIME_CONSOLE_VGA if ADK_TARGET_SYSTEM_RASPBERRY_PI || ADK_TARGET_SYSTEM_LEMOTE_YEELONG
-default ADK_RUNTIME_CONSOLE_SERIAL
+prompt "Start getty or shell after bootup"
+default ADK_RUNTIME_GETTY
 
 
-config ADK_RUNTIME_CONSOLE_VGA
-	bool "console output on VGA"
+config ADK_RUNTIME_GETTY
+	boolean "start a getty after bootup"
 	help
 	help
-          Start getty on VGA console. (tty1-tty6)
+	  Start a getty after bootup.
 
 
-config ADK_RUNTIME_CONSOLE_SERIAL
-	bool "console output on serial"
+config ADK_RUNTIME_SHELL
+	boolean "start a shell after bootup"
 	help
 	help
-	  Start getty on serial console.
+	  Start a shell after bootup
+
+endchoice
+
+config ADK_RUNTIME_GETTY_VGA
+	boolean "start getty on VGA console (tty1-tty6)"
+	depends on ADK_RUNTIME_GETTY
+	default y if ADK_TARGET_QEMU_WITH_GRAPHIC
+	default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+	default y if ADK_TARGET_SYSTEM_IBM_X40
+	default n
+	help
+          Start getty on VGA console. (tty1-tty6)
 
 
-config ADK_RUNTIME_CONSOLE_BOTH
-	bool "console output on VGA and serial"
+config ADK_RUNTIME_GETTY_SERIAL
+	boolean "start getty on serial console"
+	depends on ADK_RUNTIME_GETTY
+	default n if ADK_TARGET_SYSTEM_RASPBERRY_PI
+	default n if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+	default n if ADK_TARGET_SYSTEM_IBM_X40
+	default y
 	help
 	help
-	  Start getty on VGA console and serial device.
+	  Start getty on serial console.
 
 
-endchoice
+config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
+	string
+	default "hvc0" if ADK_TARGET_SYSTEM_QEMU_PPC64
+	default "ttyUL0" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
+	default "ttyAMA0" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB || ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
+	default "ttySC1" if ADK_TARGET_SYSTEM_QEMU_SH4 || ADK_TARGET_SYSTEM_QEMU_SH4EB
+	default "ttymxc0" if ADK_TARGET_SYSTEM_CUBOX_I
+	default "nfcon0" if ADK_TARGET_SYSTEM_ARANYM_M68K
+	default "ttyS0"
 
 
 config ADK_RUNTIME_CONSOLE_SERIAL_SPEED
 config ADK_RUNTIME_CONSOLE_SERIAL_SPEED
 	string
 	string
+	default "9600" if ADK_TARGET_SYSTEM_QEMU_PPC
 	default "9600" if ADK_TARGET_SYSTEM_FON_FON2100
 	default "9600" if ADK_TARGET_SYSTEM_FON_FON2100
 	default "38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP	
 	default "38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP	
 	default "115200"
 	default "115200"

+ 0 - 6
target/config/Config.in.tools

@@ -42,9 +42,3 @@ config ADK_HOST_NEED_PCRE
 	boolean
 	boolean
 	default y if ADK_HOST_DARWIN
 	default y if ADK_HOST_DARWIN
 	default n
 	default n
-
-config ADK_TOOLS_ADDPATTERN_ARGS
-	string
-	default "-p W54G -v v4.20.6" if ADK_TARGET_BROADCOM_MODEL_LINKSYS_WRT54G
-	default "-p W54S -v v4.70.6" if ADK_TARGET_BROADCOM_MODEL_LINKSYS_WRT54GS
-	default ""

+ 1 - 1
toolchain/binutils/Makefile

@@ -54,7 +54,7 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
 	$(MAKE) -C $(WRKBUILD) install
 	$(MAKE) -C $(WRKBUILD) install
 	# needed on hosts without readelf, but strange things happen on Cygwin.
 	# needed on hosts without readelf, but strange things happen on Cygwin.
 ifeq (${OStype},Darwin)
 ifeq (${OStype},Darwin)
-	$(CP) $(WRKBUILD)/binutils/readelf $(STAGING_HOST_DIR)/bin
+	$(CP) $(WRKBUILD)/binutils/readelf $(TOOLCHAIN_DIR)/usr/bin
 endif
 endif
 	touch $@
 	touch $@
 
 

+ 12 - 16
toolchain/gcc/Makefile

@@ -80,6 +80,9 @@ endif
 ifeq ($(ARCH),arm)
 ifeq ($(ARCH),arm)
 GCC_CONFOPTS+=		--with-float=$(ADK_TARGET_FLOAT)
 GCC_CONFOPTS+=		--with-float=$(ADK_TARGET_FLOAT)
 GCC_CONFOPTS+=		--with-mode=$(ADK_TARGET_ARM_MODE)
 GCC_CONFOPTS+=		--with-mode=$(ADK_TARGET_ARM_MODE)
+ifneq ($(ADK_TARGET_FPU),)
+GCC_CONFOPTS+=		--with-fpu=$(ADK_TARGET_FPU)
+endif
 endif
 endif
 
 
 ifeq ($(ADK_CPU_ARM926EJ_S),y)
 ifeq ($(ADK_CPU_ARM926EJ_S),y)
@@ -87,11 +90,11 @@ GCC_CONFOPTS+=          --with-arch=armv5te --with-tune=arm1176jzf-s
 endif
 endif
 
 
 ifeq ($(ADK_CPU_ARM1176JZF_S),y)
 ifeq ($(ADK_CPU_ARM1176JZF_S),y)
-GCC_CONFOPTS+=          --with-arch=armv6 --with-tune=arm1176jzf-s --with-fpu=vfp
+GCC_CONFOPTS+=          --with-arch=armv6 --with-tune=arm1176jzf-s
 endif
 endif
 
 
 ifeq ($(ADK_CPU_CORTEX_A9),y)
 ifeq ($(ADK_CPU_CORTEX_A9),y)
-GCC_CONFOPTS+=          --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=neon
+GCC_CONFOPTS+=          --with-arch=armv7-a --with-tune=cortex-a9
 endif
 endif
 
 
 ifeq ($(ADK_CPU_SPARC_V9),y)
 ifeq ($(ADK_CPU_SPARC_V9),y)
@@ -120,11 +123,13 @@ GCC_BUILD_DIR_FINAL:=	$(WRKBUILD)-final
 $(GCC_BUILD_DIR_MINIMAL)/.configured:
 $(GCC_BUILD_DIR_MINIMAL)/.configured:
 	mkdir -p $(GCC_BUILD_DIR_MINIMAL)
 	mkdir -p $(GCC_BUILD_DIR_MINIMAL)
 	# these symlinks are very important, do not remove
 	# these symlinks are very important, do not remove
-	rm -rf $(TOOLCHAIN_DIR)/$(GNU_TARGET_NAME)/sys-include
-	ln -sf ${STAGING_TARGET_DIR}/usr/include \
-		$(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME)/sys-include
+	rm -rf $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME)/sys-include
+	mkdir -p $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME)
+	(cd $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME); \
+		ln -s ../$(STAGING_HOST2TARGET)/usr/include sys-include)
 	rm -rf ${TOOLCHAIN_DIR}/usr/$(GNU_TARGET_NAME)/lib
 	rm -rf ${TOOLCHAIN_DIR}/usr/$(GNU_TARGET_NAME)/lib
-	ln -sf ${STAGING_TARGET_DIR}/lib $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME)/lib
+	(cd $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME); \
+		ln -s ../$(STAGING_HOST2TARGET)/lib lib)
 ifeq ($(ADK_LINUX_SH),y)
 ifeq ($(ADK_LINUX_SH),y)
 	(cd ${STAGING_TARGET_DIR}/ && ln -sf . m4 && ln -sf . m4-nofpu)
 	(cd ${STAGING_TARGET_DIR}/ && ln -sf . m4 && ln -sf . m4-nofpu)
 endif
 endif
@@ -202,16 +207,7 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
 		done;
 		done;
 	(cd $(TOOLCHAIN_DIR)/usr/bin && \
 	(cd $(TOOLCHAIN_DIR)/usr/bin && \
 		ln -sf $(GNU_TARGET_NAME)-gcc $(GNU_TARGET_NAME)-gcc-${PKG_VERSION})
 		ln -sf $(GNU_TARGET_NAME)-gcc $(GNU_TARGET_NAME)-gcc-${PKG_VERSION})
-	@-test -d $(STAGING_TARGET_DIR)/lib32 && \
-		cd $(STAGING_TARGET_DIR)/lib32 && \
-		ln -sf libstdc++.so.6.0.18 libstdc++.so && \
-		ln -sf libstdc++.so.6.0.18 libstdc++.so.6
-	@-test -d $(STAGING_TARGET_DIR)/libx32 && \
-		cd $(STAGING_TARGET_DIR)/libx32 && \
-		ln -sf libstdc++.so.6.0.18 libstdc++.so && \
-		ln -sf libstdc++.so.6.0.18 libstdc++.so.6
-	@-test -d $(STAGING_TARGET_DIR)/lib64 && \
-		cd $(STAGING_TARGET_DIR)/lib64 && \
+	cd $(STAGING_TARGET_DIR)/lib && \
 		ln -sf libstdc++.so.6.0.18 libstdc++.so && \
 		ln -sf libstdc++.so.6.0.18 libstdc++.so && \
 		ln -sf libstdc++.so.6.0.18 libstdc++.so.6
 		ln -sf libstdc++.so.6.0.18 libstdc++.so.6
 	# cleanup unneeded docs
 	# cleanup unneeded docs

+ 3 - 4
toolchain/glibc/Makefile

@@ -64,19 +64,18 @@ $(WRKBUILD)/.installed:
 	${GLIBC_ENV} $(MAKE) -C $(GLIBC_BUILD_DIR_FINAL) install_root=$(STAGING_TARGET_DIR) install
 	${GLIBC_ENV} $(MAKE) -C $(GLIBC_BUILD_DIR_FINAL) install_root=$(STAGING_TARGET_DIR) install
 	mkdir -p ${STAGING_TARGET_DIR}/etc
 	mkdir -p ${STAGING_TARGET_DIR}/etc
 	${INSTALL_DATA} ${WRKBUILD}/posix/gai.conf ${STAGING_TARGET_DIR}/etc
 	${INSTALL_DATA} ${WRKBUILD}/posix/gai.conf ${STAGING_TARGET_DIR}/etc
-	${INSTALL_DATA} ${WRKBUILD}/nscd/nscd.conf ${STAGING_TARGET_DIR}/etc
 	${INSTALL_DATA} ${WRKBUILD}/nss/nsswitch.conf ${STAGING_TARGET_DIR}/etc
 	${INSTALL_DATA} ${WRKBUILD}/nss/nsswitch.conf ${STAGING_TARGET_DIR}/etc
 	touch $@
 	touch $@
 
 
 $(WRKBUILD)/.fixup:
 $(WRKBUILD)/.fixup:
 	-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
 	-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
-	-find $(STAGING_TARGET_DIR) -type f -name \*_pic\* -delete
 	rm -rf $(STAGING_TARGET_DIR)/usr/share/locale $(STAGING_TARGET_DIR)/usr/share/i18n
 	rm -rf $(STAGING_TARGET_DIR)/usr/share/locale $(STAGING_TARGET_DIR)/usr/share/i18n
 	rm -rf $(STAGING_TARGET_DIR)/usr/lib/gconv
 	rm -rf $(STAGING_TARGET_DIR)/usr/lib/gconv
 ifeq ($(ADK_TOOLCHAIN),y)
 ifeq ($(ADK_TOOLCHAIN),y)
 	# strip target libs and host tools for toolchain builds
 	# strip target libs and host tools for toolchain builds
-	PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
-	debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(TOOLCHAIN_DIR)/usr
+	PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh \
+		$(STAGING_TARGET_DIR) $(TOOLCHAIN_DIR)/usr/lib/gcc/$(GNU_TARGET_NAME)
+	debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(TOOLCHAIN_DIR)/usr/bin
 endif
 endif
 	touch $@
 	touch $@
 
 

+ 3 - 2
toolchain/musl/Makefile

@@ -55,8 +55,9 @@ $(WRKBUILD)/.fixup:
 	-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
 	-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
 ifeq ($(ADK_TOOLCHAIN),y)
 ifeq ($(ADK_TOOLCHAIN),y)
 	# strip target libs and host tools for toolchain builds
 	# strip target libs and host tools for toolchain builds
-	PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
-	debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR)
+	PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh \
+		$(STAGING_TARGET_DIR) $(TOOLCHAIN_DIR)/usr/lib/gcc/$(GNU_TARGET_NAME)
+	debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(TOOLCHAIN_DIR)/usr/bin
 endif
 endif
 	touch $@
 	touch $@
 
 

File diff suppressed because it is too large
+ 221 - 100
toolchain/musl/patches/musl-git-20140319.patch


+ 4 - 4
toolchain/uClibc/Makefile

@@ -104,9 +104,8 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.install_headers
 	touch $@
 	touch $@
 
 
 $(WRKBUILD)/.fixup:
 $(WRKBUILD)/.fixup:
-ifneq ($(ADK_DEBUG),)
+	# DOSTRIP kills x86 target (ld.so can not map libc.so.0), always use DODEBUG
 	$(SED) 's,DOSTRIP,DODEBUG,' ${WRKBUILD}/.config
 	$(SED) 's,DOSTRIP,DODEBUG,' ${WRKBUILD}/.config
-endif
 	$(MAKE) -C $(WRKBUILD) \
 	$(MAKE) -C $(WRKBUILD) \
 		PREFIX=$(STAGING_TARGET_DIR) \
 		PREFIX=$(STAGING_TARGET_DIR) \
 		DEVEL_PREFIX=/usr/ \
 		DEVEL_PREFIX=/usr/ \
@@ -118,8 +117,9 @@ endif
 	-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
 	-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
 ifeq ($(ADK_TOOLCHAIN),y)
 ifeq ($(ADK_TOOLCHAIN),y)
 	# strip target libs and host tools for toolchain builds
 	# strip target libs and host tools for toolchain builds
-	PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
-	debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR)
+	PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh \
+		$(STAGING_TARGET_DIR) $(TOOLCHAIN_DIR)/usr/lib/gcc/$(GNU_TARGET_NAME)
+	debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(TOOLCHAIN_DIR)/usr/bin
 endif
 endif
 	touch $@
 	touch $@
 
 

+ 27 - 10
tools/adk/depmaker.c

@@ -28,6 +28,7 @@
 #define MAXPATH 128
 #define MAXPATH 128
 
 
 static int prefix = 0;
 static int prefix = 0;
+static int hprefix = 0;
 
 
 static int check_symbol(char *symbol) {
 static int check_symbol(char *symbol) {
 
 
@@ -64,7 +65,7 @@ static int check_symbol(char *symbol) {
 }
 }
 
 
 /*@null@*/
 /*@null@*/
-static char *parse_line(char *package, char *pkgvar, char *string, int checksym, int pprefix, int system) {
+static char *parse_line(char *package, char *pkgvar, char *string, int checksym, int pprefix, int system, int *prefixp) {
 
 
 	char *key, *value, *dep, *key_sym, *pkgdeps;
 	char *key, *value, *dep, *key_sym, *pkgdeps;
 	char temp[MAXLINE];
 	char temp[MAXLINE];
@@ -114,8 +115,8 @@ static char *parse_line(char *package, char *pkgvar, char *string, int checksym,
 	value = strtok(NULL, "=\t");
 	value = strtok(NULL, "=\t");
 	dep = strtok(value, " ");
 	dep = strtok(value, " ");
 	while (dep != NULL) {
 	while (dep != NULL) {
-		if (prefix == 0) {
-			prefix = 1;
+		if (*prefixp == 0) {
+			*prefixp = 1;
 			if (snprintf(temp, MAXLINE, "%s-compile: %s-compile", package, dep) < 0)
 			if (snprintf(temp, MAXLINE, "%s-compile: %s-compile", package, dep) < 0)
 				perror("Can not create string variable.");
 				perror("Can not create string variable.");
 		} else {
 		} else {
@@ -135,7 +136,7 @@ int main() {
 	FILE *pkg;
 	FILE *pkg;
 	char buf[MAXLINE];
 	char buf[MAXLINE];
 	char path[MAXPATH];
 	char path[MAXPATH];
-	char *string, *pkgvar, *pkgdeps, *tmp, *fpkg, *cpkg, *spkg, *key, *check, *dpkg;
+	char *string, *pkgvar, *pkgdeps, *hpkgdeps = NULL, *tmp, *fpkg, *cpkg, *spkg, *key, *check, *dpkg;
 	char *stringtmp;
 	char *stringtmp;
 	int i;
 	int i;
 
 
@@ -182,6 +183,7 @@ int main() {
 				exit(EXIT_FAILURE);
 				exit(EXIT_FAILURE);
 			}
 			}
 			prefix = 0;
 			prefix = 0;
+			hprefix = 0;
 
 
 			/* generate build dependencies */
 			/* generate build dependencies */
 			while (fgets(buf, MAXLINE, pkg) != NULL) {
 			while (fgets(buf, MAXLINE, pkg) != NULL) {
@@ -197,7 +199,7 @@ int main() {
 
 
 					string = strstr(buf, "PKG_BUILDDEP:=");
 					string = strstr(buf, "PKG_BUILDDEP:=");
 					if (string != NULL) {
 					if (string != NULL) {
-						tmp = parse_line(pkgdirp->d_name, pkgvar, string, 0, 0, 0);
+						tmp = parse_line(pkgdirp->d_name, pkgvar, string, 0, 0, 0, &prefix);
 						if (tmp != NULL) {
 						if (tmp != NULL) {
 							strncat(pkgdeps, tmp, strlen(tmp));
 							strncat(pkgdeps, tmp, strlen(tmp));
 						}
 						}
@@ -205,7 +207,7 @@ int main() {
 
 
 					string = strstr(buf, "PKG_BUILDDEP+=");
 					string = strstr(buf, "PKG_BUILDDEP+=");
 					if (string != NULL) {
 					if (string != NULL) {
-						tmp = parse_line(pkgdirp->d_name, pkgvar, string, 0, 0, 0);
+						tmp = parse_line(pkgdirp->d_name, pkgvar, string, 0, 0, 0, &prefix);
 						if (tmp != NULL)
 						if (tmp != NULL)
 							strncat(pkgdeps, tmp, strlen(tmp));
 							strncat(pkgdeps, tmp, strlen(tmp));
 					}
 					}
@@ -219,7 +221,7 @@ int main() {
 							string[strlen(string)-1] = '\0';
 							string[strlen(string)-1] = '\0';
 							key = strtok(string, ":=");
 							key = strtok(string, ":=");
 							dpkg = strdup(key+13);
 							dpkg = strdup(key+13);
-							tmp = parse_line(pkgdirp->d_name, dpkg, stringtmp, 1, 0, 1);
+							tmp = parse_line(pkgdirp->d_name, dpkg, stringtmp, 1, 0, 1, &prefix);
 							if (tmp != NULL)
 							if (tmp != NULL)
 								strncat(pkgdeps, tmp, strlen(tmp));
 								strncat(pkgdeps, tmp, strlen(tmp));
 						}
 						}
@@ -238,7 +240,7 @@ int main() {
 
 
 					string = strstr(buf, "PKGFB_");
 					string = strstr(buf, "PKGFB_");
 					if (string != NULL) {
 					if (string != NULL) {
-						tmp = parse_line(pkgdirp->d_name, fpkg, string, 1, 0, 0);
+						tmp = parse_line(pkgdirp->d_name, fpkg, string, 1, 0, 0, &prefix);
 						if (tmp != NULL)
 						if (tmp != NULL)
 							strncat(pkgdeps, tmp, strlen(tmp));
 							strncat(pkgdeps, tmp, strlen(tmp));
 					}
 					}
@@ -255,7 +257,7 @@ int main() {
 					}
 					}
 					string = strstr(buf, "PKGCB_");
 					string = strstr(buf, "PKGCB_");
 					if (string != NULL) {
 					if (string != NULL) {
-						tmp = parse_line(pkgdirp->d_name, cpkg, string, 1, 0, 0);
+						tmp = parse_line(pkgdirp->d_name, cpkg, string, 1, 0, 0, &prefix);
 						if (tmp != NULL)
 						if (tmp != NULL)
 							strncat(pkgdeps, tmp, strlen(tmp));
 							strncat(pkgdeps, tmp, strlen(tmp));
 					}
 					}
@@ -273,16 +275,31 @@ int main() {
 
 
 					string = strstr(buf, "PKGSB_");
 					string = strstr(buf, "PKGSB_");
 					if (string != NULL) {
 					if (string != NULL) {
-						tmp = parse_line(pkgdirp->d_name, spkg, string, 1, 1, 0);
+						tmp = parse_line(pkgdirp->d_name, spkg, string, 1, 1, 0, &prefix);
 						if (tmp != NULL) {
 						if (tmp != NULL) {
 							strncat(pkgdeps, tmp, strlen(tmp));
 							strncat(pkgdeps, tmp, strlen(tmp));
 						}
 						}
 					}
 					}
+				} else if (strncmp(buf, "HOST_BUILDDEP", 13) == 0) {
+					asprintf(&string, "%s-host", pkgdirp->d_name);
+					// check retval; string for NULL
+					tmp = parse_line(string, NULL, buf, 0, 0, 0, &hprefix);
+					if (tmp && *tmp) {
+						asprintf(&string, "%s%s",
+						    hpkgdeps ? hpkgdeps : "",
+						    tmp);
+						free(hpkgdeps);
+						hpkgdeps = string;
+					}
 				}
 				}
 				free(tmp);
 				free(tmp);
 			}
 			}
 			if (strlen(pkgdeps) != 0)
 			if (strlen(pkgdeps) != 0)
 				printf("%s\n", pkgdeps);
 				printf("%s\n", pkgdeps);
+			if (hpkgdeps && *hpkgdeps)
+				printf("%s\n", hpkgdeps);
+			free(hpkgdeps);
+			hpkgdeps = NULL;
 			free(pkgdeps);
 			free(pkgdeps);
 			free(pkgvar);
 			free(pkgvar);
 			if (fclose(pkg) != 0)
 			if (fclose(pkg) != 0)

Some files were not shown because too many files changed in this diff