Browse Source

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

Waldemar Brodkorb 10 năm trước cách đây
mục cha
commit
70092108cb
44 tập tin đã thay đổi với 411 bổ sung250 xóa
  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
 - zlib headers
 - perl
+- git
 
 There is a check for the required versions of these tools in advance, though.
 (to re-issue the checks, use "make prereq").

+ 0 - 1
TODO

@@ -1,5 +1,4 @@
 - check gold for mozilla compile
-- getty + serial rework
 - add daemon() function to functions.sh
 - add printing of OK/FAIL (optional verbose bootup)
 - 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
 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
   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.
   There are also some predefined mirror sites in +mk/mirrors.mk+,
   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
   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.
   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.
 
 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>-objdump+, etc.
 
 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.
 
 * +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
   components of the cross-compilation toolchain.

+ 1 - 1
mk/build.mk

@@ -98,7 +98,7 @@ POSTCONFIG=		-@\
 			touch .rebuild.busybox;\
 			rebuild=1;\
 		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 \
 				touch .rebuild.base-files;\
 				rebuild=1;\

+ 5 - 6
mk/host-bottom.mk

@@ -79,6 +79,7 @@ hpkg-install: ${ALL_HOSTINST}
 host-install:
 ${_HOST_FAKE_COOKIE}: ${_HOST_BUILD_COOKIE}
 	@$(CMD_TRACE) "host installing... "
+	@mkdir -p ${HOST_WRKINST}
 ifneq (${HOST_STYLE},manual)
 ifeq ($(strip ${HOST_STYLE}),)
 	cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
@@ -92,12 +93,6 @@ else
 	env ${HOST_MAKE_ENV} ${MAKE} hpkg-install $(MAKE_TRACE)
 endif
 	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 $@
 
 ${_HOST_COOKIE}:
@@ -107,3 +102,7 @@ ifeq ($(HOST_LINUX_ONLY),)
 hostpackage: ${ALL_HOSTDIRS}
 	@touch ${_HOST_COOKIE}
 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
 # 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 \
 			CONFIG_SHELL='$(strip ${SHELL})' \
 			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_FAKE_FLAGS+=	${HOST_XAKE_FLAGS}
 
-HOST_WRKINST=		${WRKDIR}/host
+HOST_WRKINST=		${WRKDIR}/fake
 
 _HOST_EXTRACT_COOKIE=	${WRKDIST}/.extract_done
 _HOST_PATCH_COOKIE=	${WRKDIST}/.prepared
@@ -54,7 +59,7 @@ hostfake: ${_HOST_FAKE_COOKIE}
 define HOST_template
 ALL_PKGOPTS+=	$(1)
 PKGNAME_$(1)=	$(2)
-HOSTDIR_$(1)=	$(WRKDIR)/host
+HOSTDIR_$(1)=	$(WRKDIR)/fake
 ALL_HOSTDIRS+=	$${HOSTDIR_$(1)}
 ALL_HOSTINST+=	$(2)-hostinstall
 
@@ -63,4 +68,4 @@ $$(HOSTDIR_$(1)): ${_HOST_PATCH_COOKIE} ${_HOST_FAKE_COOKIE}
 endef
 
 .PHONY:	all hostextract hostpatch hostconfigure \
-	hostbuild hostpackage hostfake
+	hostbuild hostpackage hostfake hostclean

+ 1 - 1
mk/package.mk

@@ -314,7 +314,7 @@ clean-targets:
 clean:
 	@$(CMD_TRACE) "cleaning... "
 	@$(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
 	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_LDFLAGS:=	-L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/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
 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_VERSION:=		1.0
-PKG_RELEASE:=		72
+PKG_RELEASE:=		74
 PKG_SECTION:=		base
 PKG_DESCR:=		basic files and scripts
 PKG_BUILDDEP:=		pkgconf-host file-host
@@ -55,35 +55,13 @@ endif
 	ln -sf ../proc/mounts $(IDIR_BASE_FILES)/etc/mtab
 	rm -rf $(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
-	test -z $(ADK_RUNTIME_CONSOLE_SERIAL) || \
+	test -z $(ADK_RUNTIME_GETTY_SERIAL) || \
 	    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
 	test -z $(ADK_RUNTIME_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_SECTION:=		lang
 PKG_BUILDDEP:=		m4-host flex-host bison-host
+HOST_BUILDDEP:=		m4-host flex-host
 PKG_URL:=		http://www.gnu.org/software/bison/
 PKG_SITES:=		${MASTER_SITE_GNU:=${PKG_NAME}/}
 

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

@@ -454,6 +454,7 @@ menu 'Build Options'
 
 config BUSYBOX_STATIC
 	bool "Build BusyBox as a static binary (no shared libs)"
+	default y if ADK_STATIC
 	default n
 	help
 	  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
 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_WITH_OPENSSL:=	use OpenSSL for crypto
 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_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
 PKGCS_WITH_OPENSSL:=	libopenssl
 PKGCB_WITH_OPENSSL:=	openssl

+ 1 - 1
package/hostapd/Makefile

@@ -16,7 +16,7 @@ PKG_SITES:=		http://hostap.epitest.fi/releases/
 PKG_MULTI:=		1
 
 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
 PKGCS_WITH_OPENSSL:=	libopenssl
 PKGCB_WITH_OPENSSL:=	openssl

+ 2 - 4
package/ncurses/Makefile

@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		ncurses
 PKG_VERSION:=		5.9
-PKG_RELEASE:=		4
+PKG_RELEASE:=		5
 PKG_MD5SUM:=		8cb9c412e5f2d96bc6f459aa8c6282a1
 PKG_DESCR:=		a terminal handling library
 PKG_SECTION:=		libs
@@ -50,6 +50,7 @@ CONFIGURE_ARGS+=	--without-cxx \
 ALL_TARGET:=		libs
 INSTALL_TARGET:=	install.libs install.data
 
+HOST_STYLE:=		auto
 # use sth which does not exist
 HOST_ALL_TARGET:=	progs
 HOST_INSTALL_TARGET:=	install.includes install.progs
@@ -69,9 +70,6 @@ HOST_CONFIGURE_ARGS+=	--without-shared \
 			--without-debug \
 			--without-profile
 
-libncurses-hostinstall:
-	${CP} ${HOST_WRKINST}/usr/bin/* ${STAGING_HOST_DIR}/usr/bin
-
 libncurses-install:
 	rm -rf ${WRKINST}/usr/lib/terminfo
 	# 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_DESCR:=		a software construction tool
 PKG_SECTION:=		lang
-PKG_BUILDDEP:=		bzip2-host python2-host
+HOST_BUILDDEP:=		bzip2-host python2-host
 PKG_URL:=		http://www.scons.org
 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_CHOICES_STRONGSWAN:=WITH_GMP WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_STRONGSWAN:=WITH_GNUTLS WITH_OPENSSL WITH_GMP
 PKGCD_WITH_GMP:=	use GMP for crypto
 PKGCS_WITH_GMP:=	libgmp
 PKGCB_WITH_GMP:=	gmp

+ 1 - 1
package/tntnet/Makefile

@@ -17,7 +17,7 @@ PKG_NEED_CXX:=		1
 
 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_WITH_OPENSSL:=	use OpenSSL for crypto
 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_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_WITH_OPENSSL:=	use OpenSSL for crypto
 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}
 
-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
 PKGCS_WITH_OPENSSL:=		libopenssl
 PKGCB_WITH_OPENSSL:=		openssl

+ 27 - 28
rules.mk

@@ -25,37 +25,36 @@ SET_DASHX:=		:
 endif
 
 # 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_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_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)
 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
 fi
 
+if ! which git >/dev/null 2>&1; then
+	echo  "You need git to continue."
+	echo
+	out=1
+fi
+
 cd $topdir
 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_hard_float
 	select ADK_eabihf
+	select ADK_fpu_neon
 	select ADK_cubox_i
 	select ADK_CPU_CORTEX_A9
 	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_little
 	select ADK_soft_float
+	select ADK_fpu_vfp
 	select ADK_eabi
 	select ADK_HARDWARE_QEMU
 	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_hard_float
 	select ADK_eabihf
+	select ADK_fpu_vfp
 	select ADK_HARDWARE_QEMU
 	select ADK_TARGET_KERNEL_ZIMAGE
 	help

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

@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
 	select ADK_little
 	select ADK_hard_float
 	select ADK_eabihf
+	select ADK_fpu_vfp
 	select ADK_raspberry_pi
 	select ADK_CPU_ARM1176JZF_S
 	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_little
 	select ADK_soft_float
+	select ADK_fpu_vfp
 	select ADK_eabi
 	select ADK_TOOLCHAIN
 	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_hard_float
 	select ADK_eabihf
+	select ADK_fpu_vfp
 	select ADK_toolchain_armhf
 	select ADK_TOOLCHAIN
 	select ADK_TARGET_PACKAGE_TGZ

+ 11 - 0
target/config/Config.in

@@ -37,6 +37,12 @@ config ADK_soft_float
 config ADK_hard_float
 	boolean
 
+config ADK_fpu_neon
+	boolean
+
+config ADK_fpu_vfp
+	boolean
+
 config ADK_mode_arm
 	boolean
 
@@ -48,6 +54,11 @@ config ADK_TARGET_FLOAT
 	default "hard" if ADK_hard_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
 	depends on ADK_LINUX_ARM
 	string

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

@@ -36,6 +36,7 @@ config ADK_DEBUG_STRIP
 config ADK_STATIC
 	bool "Link applications statically by default"
 	default n
+	select BUSYBOX_STATIC
 	help
 	  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.
 
 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
-          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
-	  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
-	  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
 	string
+	default "9600" if ADK_TARGET_SYSTEM_QEMU_PPC
 	default "9600" if ADK_TARGET_SYSTEM_FON_FON2100
 	default "38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP	
 	default "115200"

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

@@ -42,9 +42,3 @@ config ADK_HOST_NEED_PCRE
 	boolean
 	default y if ADK_HOST_DARWIN
 	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
 	# needed on hosts without readelf, but strange things happen on Cygwin.
 ifeq (${OStype},Darwin)
-	$(CP) $(WRKBUILD)/binutils/readelf $(STAGING_HOST_DIR)/bin
+	$(CP) $(WRKBUILD)/binutils/readelf $(TOOLCHAIN_DIR)/usr/bin
 endif
 	touch $@
 

+ 12 - 16
toolchain/gcc/Makefile

@@ -80,6 +80,9 @@ endif
 ifeq ($(ARCH),arm)
 GCC_CONFOPTS+=		--with-float=$(ADK_TARGET_FLOAT)
 GCC_CONFOPTS+=		--with-mode=$(ADK_TARGET_ARM_MODE)
+ifneq ($(ADK_TARGET_FPU),)
+GCC_CONFOPTS+=		--with-fpu=$(ADK_TARGET_FPU)
+endif
 endif
 
 ifeq ($(ADK_CPU_ARM926EJ_S),y)
@@ -87,11 +90,11 @@ GCC_CONFOPTS+=          --with-arch=armv5te --with-tune=arm1176jzf-s
 endif
 
 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
 
 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
 
 ifeq ($(ADK_CPU_SPARC_V9),y)
@@ -120,11 +123,13 @@ GCC_BUILD_DIR_FINAL:=	$(WRKBUILD)-final
 $(GCC_BUILD_DIR_MINIMAL)/.configured:
 	mkdir -p $(GCC_BUILD_DIR_MINIMAL)
 	# 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
-	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)
 	(cd ${STAGING_TARGET_DIR}/ && ln -sf . m4 && ln -sf . m4-nofpu)
 endif
@@ -202,16 +207,7 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
 		done;
 	(cd $(TOOLCHAIN_DIR)/usr/bin && \
 		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.6
 	# 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
 	mkdir -p ${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
 	touch $@
 
 $(WRKBUILD)/.fixup:
 	-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/lib/gconv
 ifeq ($(ADK_TOOLCHAIN),y)
 	# 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
 	touch $@
 

+ 3 - 2
toolchain/musl/Makefile

@@ -55,8 +55,9 @@ $(WRKBUILD)/.fixup:
 	-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
 ifeq ($(ADK_TOOLCHAIN),y)
 	# 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
 	touch $@
 

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 221 - 100
toolchain/musl/patches/musl-git-20140319.patch


+ 4 - 4
toolchain/uClibc/Makefile

@@ -104,9 +104,8 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.install_headers
 	touch $@
 
 $(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
-endif
 	$(MAKE) -C $(WRKBUILD) \
 		PREFIX=$(STAGING_TARGET_DIR) \
 		DEVEL_PREFIX=/usr/ \
@@ -118,8 +117,9 @@ endif
 	-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
 ifeq ($(ADK_TOOLCHAIN),y)
 	# 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
 	touch $@
 

+ 27 - 10
tools/adk/depmaker.c

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

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác