Browse Source

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

Waldemar Brodkorb 11 years ago
parent
commit
64d6047788
100 changed files with 429 additions and 363 deletions
  1. 28 20
      .gitignore
  2. 1 1
      BUGS
  3. 18 18
      Config.in
  4. 1 0
      Makefile
  5. 2 3
      README
  6. 6 4
      TODO
  7. 0 0
      adk/config/Config.in
  8. 0 0
      adk/config/Kconfig-language.txt
  9. 0 0
      adk/config/Makefile
  10. 0 0
      adk/config/Makefile.in
  11. 0 0
      adk/config/check.sh
  12. 0 0
      adk/config/conf.c
  13. 0 0
      adk/config/confdata.c
  14. 0 0
      adk/config/expr.c
  15. 0 0
      adk/config/expr.h
  16. 0 0
      adk/config/gconf.c
  17. 0 0
      adk/config/gconf.glade
  18. 0 0
      adk/config/images.c
  19. 0 0
      adk/config/kconfig_load.c
  20. 0 0
      adk/config/kxgettext.c
  21. 0 0
      adk/config/lex.zconf.c_shipped
  22. 0 0
      adk/config/lkc.h
  23. 0 0
      adk/config/lkc_proto.h
  24. 0 0
      adk/config/lxdialog/.gitignore
  25. 0 0
      adk/config/lxdialog/BIG.FAT.WARNING
  26. 0 0
      adk/config/lxdialog/check-lxdialog.sh
  27. 0 0
      adk/config/lxdialog/checklist.c
  28. 0 0
      adk/config/lxdialog/dialog.h
  29. 0 0
      adk/config/lxdialog/inputbox.c
  30. 0 0
      adk/config/lxdialog/menubox.c
  31. 0 0
      adk/config/lxdialog/textbox.c
  32. 0 0
      adk/config/lxdialog/util.c
  33. 0 0
      adk/config/lxdialog/yesno.c
  34. 0 0
      adk/config/mconf.c
  35. 0 0
      adk/config/menu.c
  36. 0 0
      adk/config/symbol.c
  37. 0 0
      adk/config/util.c
  38. 0 0
      adk/config/zconf.gperf
  39. 0 0
      adk/config/zconf.hash.c_shipped
  40. 0 0
      adk/config/zconf.l
  41. 0 0
      adk/config/zconf.tab.c_shipped
  42. 0 0
      adk/config/zconf.tab.h_shipped
  43. 0 0
      adk/config/zconf.y
  44. 0 0
      adk/tests/adk.exp.in
  45. 0 0
      adk/tests/master.exp.in
  46. 0 0
      adk/tools/Makefile
  47. 1 0
      adk/tools/depmaker.c
  48. 62 4
      adk/tools/pkgmaker.c
  49. 0 0
      adk/tools/pkgrebuild.c
  50. 0 0
      adk/tools/sortfile.c
  51. 0 0
      adk/tools/sortfile.h
  52. 0 0
      adk/tools/strmap.c
  53. 0 0
      adk/tools/strmap.h
  54. 4 10
      docs/adding-packages-host.txt
  55. 1 0
      docs/contribute.txt
  56. 4 2
      docs/getting.txt
  57. 9 16
      docs/how-openadk-works.txt
  58. 6 0
      docs/introduction.txt
  59. 2 2
      docs/make-tips.txt
  60. 10 2
      docs/patch-policy.txt
  61. 5 6
      docs/prerequisite.txt
  62. 61 63
      mk/build.mk
  63. 4 4
      mk/buildhlp.mk
  64. 0 1
      mk/fetch.mk
  65. 5 4
      mk/host-bottom.mk
  66. 3 1
      mk/host.mk
  67. 20 15
      mk/image.mk
  68. 1 0
      mk/kernel-build.mk
  69. 14 14
      mk/kernel-ver.mk
  70. 5 2
      mk/package.mk
  71. 1 1
      mk/pkg-bottom.mk
  72. 5 8
      mk/rootfs.mk
  73. 31 15
      mk/vars.mk
  74. 2 0
      package/Makefile
  75. 33 0
      package/adk-helper/Makefile
  76. 0 0
      package/adk-helper/src/dkgetsz.c
  77. 0 0
      package/adk-helper/src/mkcrypt.c
  78. 1 1
      package/adk-test-tools/Makefile
  79. 6 0
      package/adk-test-tools/files/test.init
  80. 1 1
      package/asterisk/Makefile
  81. 1 1
      package/avahi/Makefile
  82. 18 18
      package/base-files/Makefile
  83. 1 1
      package/base-files/files/inittab.shell
  84. 3 5
      package/base-files/src/etc/init.d/boot
  85. 19 39
      package/base-files/src/etc/init.d/fs
  86. 1 1
      package/base-files/src/etc/inittab
  87. 1 1
      package/base-files/src/etc/ipkg.conf
  88. 0 1
      package/base-files/src/etc/mdev.conf
  89. 0 27
      package/base-files/src/lib/mdev/init
  90. 0 4
      package/base-files/src/usr/share/udhcpc/default.script
  91. 3 3
      package/bash/Makefile
  92. 0 13
      package/bash/patches/patch-Makefile_in
  93. 0 11
      package/bash/patches/patch-builtins_Makefile_in
  94. 6 1
      package/bc/Makefile
  95. 3 3
      package/bcm2835-bootloader/Makefile
  96. 6 5
      package/bcm2835-vc/Makefile
  97. 2 2
      package/binutils/Makefile
  98. 3 5
      package/bison/Makefile
  99. 6 1
      package/busybox/Makefile
  100. 3 3
      package/busybox/config/miscutils/Config.in

+ 28 - 20
.gitignore

@@ -1,20 +1,28 @@
-/config/conf
-/config/conf.exe
-/config/a.exe
-/config/lex.backup
-/config/lex.zconf.c
-/config/lkc_defs.h
-/config/gconf
-/config/gconf.exe
-/config/mconf
-/config/mconf.exe
-/config/zconf.hash.c
-/config/zconf.output
-/config/zconf.tab.c
-/config/zconf.tab.h
-/tests/master.exp
-/tests/adk.exp
-/tests/adk.exp.in.tmp
+/adk/config/*.o
+/adk/config/lxdialog/*.o
+/adk/config/conf
+/adk/config/conf.exe
+/adk/config/a.exe
+/adk/config/lex.backup
+/adk/config/lex.zconf.c
+/adk/config/lkc_defs.h
+/adk/config/gconf
+/adk/config/gconf.exe
+/adk/config/mconf
+/adk/config/mconf.exe
+/adk/config/zconf.hash.c
+/adk/config/zconf.output
+/adk/config/zconf.tab.c
+/adk/config/zconf.tab.h
+/adk/tools/pkgmaker
+/adk/tools/depmaker
+/adk/tools/pkgrebuild
+/adk/tools/depmaker.dSYM/
+/adk/tools/pkgmaker.dSYM/
+/adk/tools/pkgrebuild.dSYM/
+/adk/tests/master.exp
+/adk/tests/adk.exp
+/adk/tests/adk.exp.in.tmp
 /prereq.mk
 /prereq.mk
 /toolchain_*/
 /toolchain_*/
 /.ADK_HAVE_DOT_CONFIG
 /.ADK_HAVE_DOT_CONFIG
@@ -32,8 +40,6 @@
 /root_*/
 /root_*/
 /firmware/
 /firmware/
 /build_*/
 /build_*/
-/config/*.o
-/config/lxdialog/*.o
 /make.log
 /make.log
 /dl
 /dl
 /package/Config.in.auto*
 /package/Config.in.auto*
@@ -41,7 +47,6 @@
 /package/*/Config.in
 /package/*/Config.in
 /package/*/Config.in.lib
 /package/*/Config.in.lib
 /package/*/Config.in.kmod
 /package/*/Config.in.kmod
-/tools_build/
 /extra/
 /extra/
 /.menu
 /.menu
 /.adkinit
 /.adkinit
@@ -51,5 +56,8 @@
 /target/packages/Config.in
 /target/packages/Config.in
 /target/config/Config.in.system.default
 /target/config/Config.in.system.default
 /target/config/Config.in.system
 /target/config/Config.in.system
+/target/config/Config.in.scripts
 /target/config/Config.in.native
 /target/config/Config.in.native
 /target/config/Config.in.arch
 /target/config/Config.in.arch
+/target/config/Config.in.prereq
+/target/m68k/aranym.cfg

+ 1 - 1
BUGS

@@ -2,4 +2,4 @@
 - qemu-sh4: usb keyboard is broken
 - qemu-sh4: usb keyboard is broken
 - qemu-arm: thumb mode with glibc does not boot
 - qemu-arm: thumb mode with glibc does not boot
 - qemu-sparc64: ide driver not working, only virtio (but unstable)
 - qemu-sparc64: ide driver not working, only virtio (but unstable)
-- qemu-microblaze: network card emulation fails, little endian works
+- qemu-microblaze: ml605 early printk and network card emulation fails, little endian works

+ 18 - 18
Config.in

@@ -32,11 +32,6 @@ config ADK_CHOOSE_TARGET_SYSTEM
 
 
 source "target/config/Config.in"
 source "target/config/Config.in"
 
 
-menu "Runtime configuration"
-depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_SYSTEM
-source "target/config/Config.in.runtime"
-endmenu
-
 menu "Package collection"
 menu "Package collection"
 depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_SYSTEM
 depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_SYSTEM
 source "target/packages/Config.in"
 source "target/packages/Config.in"
@@ -89,12 +84,17 @@ source "package/Config.in.auto.global"
 source "package/Config.in.auto"
 source "package/Config.in.auto"
 endmenu
 endmenu
 
 
+menu "Runtime configuration"
+depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_SYSTEM
+source "target/config/Config.in.runtime"
+endmenu
+
 choice
 choice
 prompt "Kernel Version"
 prompt "Kernel Version"
 depends on ADK_TOOLCHAIN_ONLY
 depends on ADK_TOOLCHAIN_ONLY
 
 
 config ADK_KERNEL_VERSION_TOOLCHAIN
 config ADK_KERNEL_VERSION_TOOLCHAIN
-	prompt "3.13.6"
+	prompt "3.13.7"
 	boolean
 	boolean
 	depends on ADK_TOOLCHAIN_ONLY
 	depends on ADK_TOOLCHAIN_ONLY
 
 
@@ -106,35 +106,35 @@ depends on !ADK_TOOLCHAIN_ONLY && !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_
 choice
 choice
 prompt "Kernel Version"
 prompt "Kernel Version"
 
 
-config ADK_KERNEL_VERSION_3_13_6
-	prompt "3.13.6"
+config ADK_KERNEL_VERSION_3_13_7
+	prompt "3.13.7"
 	boolean
 	boolean
 
 
-config ADK_KERNEL_VERSION_3_12_13
-	prompt "3.12.13"
+config ADK_KERNEL_VERSION_3_12_14
+	prompt "3.12.14"
 	boolean
 	boolean
 
 
 config ADK_KERNEL_VERSION_3_11_10
 config ADK_KERNEL_VERSION_3_11_10
 	prompt "3.11.10"
 	prompt "3.11.10"
 	boolean
 	boolean
 
 
-config ADK_KERNEL_VERSION_3_10_33
-	prompt "3.10.33"
+config ADK_KERNEL_VERSION_3_10_34
+	prompt "3.10.34"
 	boolean
 	boolean
 
 
-config ADK_KERNEL_VERSION_3_4_82
-	prompt "3.4.82"
+config ADK_KERNEL_VERSION_3_4_84
+	prompt "3.4.84"
 	boolean
 	boolean
 
 
 endchoice
 endchoice
 
 
 config ADK_KERNEL_VERSION
 config ADK_KERNEL_VERSION
 	string
 	string
-	default "3.13.6" if ADK_KERNEL_VERSION_3_13_6
-	default "3.12.13" if ADK_KERNEL_VERSION_3_12_13
+	default "3.13.7" if ADK_KERNEL_VERSION_3_13_7
+	default "3.12.14" if ADK_KERNEL_VERSION_3_12_14
 	default "3.11.10" if ADK_KERNEL_VERSION_3_11_10
 	default "3.11.10" if ADK_KERNEL_VERSION_3_11_10
-	default "3.10.33" if ADK_KERNEL_VERSION_3_10_33
-	default "3.4.82" if ADK_KERNEL_VERSION_3_4_82
+	default "3.10.34" if ADK_KERNEL_VERSION_3_10_34
+	default "3.4.84" if ADK_KERNEL_VERSION_3_4_84
 	help
 	help
 
 
 config ADK_KERNEL_COMP_GZIP_RASPBERRY_PI
 config ADK_KERNEL_COMP_GZIP_RASPBERRY_PI

+ 1 - 0
Makefile

@@ -224,6 +224,7 @@ NO_ERROR=0
 	@echo "_PATH:=$$PATH" >>prereq.mk
 	@echo "_PATH:=$$PATH" >>prereq.mk
 	@echo "PATH:=\$${TOPDIR}/scripts:/usr/sbin:$$PATH" >>prereq.mk
 	@echo "PATH:=\$${TOPDIR}/scripts:/usr/sbin:$$PATH" >>prereq.mk
 	@echo "SHELL:=$$(which bash)" >>prereq.mk
 	@echo "SHELL:=$$(which bash)" >>prereq.mk
+	@echo "GIT:=$$(which git 2>/dev/null)" >>prereq.mk
 	@env NO_ERROR=${NO_ERROR} BASH="$$(which bash)" \
 	@env NO_ERROR=${NO_ERROR} BASH="$$(which bash)" \
 		CC='${CC}' CPPFLAGS='${CPPFLAGS}' \
 		CC='${CC}' CPPFLAGS='${CPPFLAGS}' \
 	    	bash scripts/scan-tools.sh
 	    	bash scripts/scan-tools.sh

+ 2 - 3
README

@@ -5,12 +5,12 @@ This is a menu based buildsystem for your home made embedded Linux system.
 
 
 Before you can start you need to install some tools: 
 Before you can start you need to install some tools: 
 - bash
 - bash
-- gcc 
+- gcc or clang
+- g++ or clang++
 - binutils 
 - binutils 
 - GNU make
 - GNU make
 - GNU awk
 - GNU awk
 - GNU sed
 - GNU sed
-- findutils (find, xargs)
 - tar
 - tar
 - patch
 - patch
 - gzip
 - gzip
@@ -19,7 +19,6 @@ 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").

+ 6 - 4
TODO

@@ -1,13 +1,16 @@
+- hash-style=gnu for non-mips and non-musl
+- fix libiberty.a mess
 - check gold for mozilla compile
 - check gold for mozilla compile
+- check for gcc and SSP again
+- config.site/config.cache usage for speedup?
+  http://lists.gnu.org/archive/html/autoconf/2014-03/msg00031.html
 - 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
 - libgcc static?
 - libgcc static?
 - static toolchain support
 - static toolchain support
-- toolchain in /usr , check gcj
 - try Preset Loops per Jiffy for faster bootup via lpj=
 - try Preset Loops per Jiffy for faster bootup via lpj=
 - port uuterm
 - port uuterm
-- hash-style=gnu for non-mips and non-musl
 - add fb full screen logo
 - add fb full screen logo
 - port opkg with gpg signing
 - port opkg with gpg signing
 - restart network (kill wpa_supplicant)
 - restart network (kill wpa_supplicant)
@@ -15,7 +18,6 @@
 - add grsec kernel patch
 - add grsec kernel patch
 - microblaze: add cfgfs partition to dts, add partition to spartan dts
 - microblaze: add cfgfs partition to dts, add partition to spartan dts
 - evaluate libguestfs for image creation
 - evaluate libguestfs for image creation
-- check for gcc and SSP again
-- port w3m
+- port msmtp
 - rutorrent porting
 - rutorrent porting
 - lms perl 
 - lms perl 

+ 0 - 0
config/Config.in → adk/config/Config.in


+ 0 - 0
config/Kconfig-language.txt → adk/config/Kconfig-language.txt


+ 0 - 0
config/Makefile → adk/config/Makefile


+ 0 - 0
config/Makefile.in → adk/config/Makefile.in


+ 0 - 0
config/check.sh → adk/config/check.sh


+ 0 - 0
config/conf.c → adk/config/conf.c


+ 0 - 0
config/confdata.c → adk/config/confdata.c


+ 0 - 0
config/expr.c → adk/config/expr.c


+ 0 - 0
config/expr.h → adk/config/expr.h


+ 0 - 0
config/gconf.c → adk/config/gconf.c


+ 0 - 0
config/gconf.glade → adk/config/gconf.glade


+ 0 - 0
config/images.c → adk/config/images.c


+ 0 - 0
config/kconfig_load.c → adk/config/kconfig_load.c


+ 0 - 0
config/kxgettext.c → adk/config/kxgettext.c


+ 0 - 0
config/lex.zconf.c_shipped → adk/config/lex.zconf.c_shipped


+ 0 - 0
config/lkc.h → adk/config/lkc.h


+ 0 - 0
config/lkc_proto.h → adk/config/lkc_proto.h


+ 0 - 0
config/lxdialog/.gitignore → adk/config/lxdialog/.gitignore


+ 0 - 0
config/lxdialog/BIG.FAT.WARNING → adk/config/lxdialog/BIG.FAT.WARNING


+ 0 - 0
config/lxdialog/check-lxdialog.sh → adk/config/lxdialog/check-lxdialog.sh


+ 0 - 0
config/lxdialog/checklist.c → adk/config/lxdialog/checklist.c


+ 0 - 0
config/lxdialog/dialog.h → adk/config/lxdialog/dialog.h


+ 0 - 0
config/lxdialog/inputbox.c → adk/config/lxdialog/inputbox.c


+ 0 - 0
config/lxdialog/menubox.c → adk/config/lxdialog/menubox.c


+ 0 - 0
config/lxdialog/textbox.c → adk/config/lxdialog/textbox.c


+ 0 - 0
config/lxdialog/util.c → adk/config/lxdialog/util.c


+ 0 - 0
config/lxdialog/yesno.c → adk/config/lxdialog/yesno.c


+ 0 - 0
config/mconf.c → adk/config/mconf.c


+ 0 - 0
config/menu.c → adk/config/menu.c


+ 0 - 0
config/symbol.c → adk/config/symbol.c


+ 0 - 0
config/util.c → adk/config/util.c


+ 0 - 0
config/zconf.gperf → adk/config/zconf.gperf


+ 0 - 0
config/zconf.hash.c_shipped → adk/config/zconf.hash.c_shipped


+ 0 - 0
config/zconf.l → adk/config/zconf.l


+ 0 - 0
config/zconf.tab.c_shipped → adk/config/zconf.tab.c_shipped


+ 0 - 0
config/zconf.tab.h_shipped → adk/config/zconf.tab.h_shipped


+ 0 - 0
config/zconf.y → adk/config/zconf.y


+ 0 - 0
tests/adk.exp.in → adk/tests/adk.exp.in


+ 0 - 0
tests/master.exp.in → adk/tests/master.exp.in


+ 0 - 0
tools/adk/Makefile → adk/tools/Makefile


+ 1 - 0
tools/adk/depmaker.c → adk/tools/depmaker.c

@@ -174,6 +174,7 @@ int main() {
 				!(strncmp(pkgdirp->d_name, "glibc", 5) == 0)) {
 				!(strncmp(pkgdirp->d_name, "glibc", 5) == 0)) {
 				/* print result to stdout */
 				/* print result to stdout */
 				printf("package-$(ADK_COMPILE_%s) += %s\n", pkgvar, pkgdirp->d_name); 
 				printf("package-$(ADK_COMPILE_%s) += %s\n", pkgvar, pkgdirp->d_name); 
+				printf("hostpackage-$(ADK_HOST_BUILD_%s) += %s\n", pkgvar, pkgdirp->d_name); 
 			}
 			}
 
 
 			if ((pkgdeps = malloc(MAXLINE)) != NULL)
 			if ((pkgdeps = malloc(MAXLINE)) != NULL)

+ 62 - 4
tools/adk/pkgmaker.c → adk/tools/pkgmaker.c

@@ -304,13 +304,18 @@ static char *toupperstr(char *string) {
 
 
 int main() {
 int main() {
 
 
-	DIR *pkgdir, *pkglistdir;
+	DIR *pkgdir, *pkglistdir, *scriptdir;
 	struct dirent *pkgdirp;
 	struct dirent *pkgdirp;
-	FILE *pkg, *cfg, *menuglobal, *section;
+	struct dirent *scriptdirp;
+	size_t len;
+	FILE *pkg, *cfg, *menuglobal, *section, *initscript, *icfg;
 	char hvalue[MAXVALUE];
 	char hvalue[MAXVALUE];
 	char buf[MAXPATH];
 	char buf[MAXPATH];
+	char ibuf[MAXPATH];
 	char tbuf[MAXPATH];
 	char tbuf[MAXPATH];
 	char path[MAXPATH];
 	char path[MAXPATH];
+	char script[MAXPATH];
+	char script2[MAXPATH];
 	char spath[MAXPATH];
 	char spath[MAXPATH];
 	char dir[MAXPATH];
 	char dir[MAXPATH];
 	char variable[2*MAXVAR];
 	char variable[2*MAXVAR];
@@ -320,9 +325,10 @@ int main() {
 	char *pkg_need_cxx, *pkg_need_java, *pkgname, *sysname, *pkg_debug;
 	char *pkg_need_cxx, *pkg_need_java, *pkgname, *sysname, *pkg_debug;
 	char *pkg_libc_depends, *pkg_host_depends, *pkg_system_depends, *pkg_arch_depends, *pkg_flavours, *pkg_flavours_string, *pkg_choices, *pseudo_name;
 	char *pkg_libc_depends, *pkg_host_depends, *pkg_system_depends, *pkg_arch_depends, *pkg_flavours, *pkg_flavours_string, *pkg_choices, *pseudo_name;
 	char *packages, *pkg_name_u, *pkgs, *pkg_opts, *pkg_libname;
 	char *packages, *pkg_name_u, *pkgs, *pkg_opts, *pkg_libname;
-	char *saveptr, *p_ptr, *s_ptr, *pkg_helper;
+	char *saveptr, *p_ptr, *s_ptr, *pkg_helper, *sname, *sname2;
 	int result;
 	int result;
 	StrMap *pkgmap, *sectionmap;
 	StrMap *pkgmap, *sectionmap;
+	const char runtime[] = "target/config/Config.in.scripts";
 
 
 	pkg_name = NULL;
 	pkg_name = NULL;
 	pkg_descr = NULL;
 	pkg_descr = NULL;
@@ -355,6 +361,7 @@ int main() {
 	s_ptr = NULL;
 	s_ptr = NULL;
 
 
 	unlink("package/Config.in.auto");
 	unlink("package/Config.in.auto");
+	unlink(runtime);
 	/* open global sectionfile */
 	/* open global sectionfile */
 	menuglobal = fopen("package/Config.in.auto.global", "w");
 	menuglobal = fopen("package/Config.in.auto.global", "w");
 	if (menuglobal == NULL)
 	if (menuglobal == NULL)
@@ -410,6 +417,7 @@ int main() {
 	fprintf(cfg, "\t  C library header files.\n\n");
 	fprintf(cfg, "\t  C library header files.\n\n");
 	fclose(cfg);	
 	fclose(cfg);	
 
 
+
 	/* read Makefile's for all packages */
 	/* read Makefile's for all packages */
 	pkgdir = opendir("package");
 	pkgdir = opendir("package");
 	while ((pkgdirp = readdir(pkgdir)) != NULL) {
 	while ((pkgdirp = readdir(pkgdir)) != NULL) {
@@ -421,6 +429,57 @@ int main() {
 			if (pkg == NULL)
 			if (pkg == NULL)
 				continue;
 				continue;
 
 
+			/* runtime configuration */
+			if (snprintf(script, MAXPATH, "package/%s/files", pkgdirp->d_name) < 0)
+				fatal_error("script variable creation failed.");
+			scriptdir = opendir(script);
+			if (scriptdir != NULL) {
+				while ((scriptdirp = readdir(scriptdir)) != NULL) {
+					/* skip dotfiles */
+					if (strncmp(scriptdirp->d_name, ".", 1) > 0) {
+						len = strlen(scriptdirp->d_name);
+						if (strlen(".init") > len)
+							continue;
+						if (strncmp(scriptdirp->d_name + len - strlen(".init"), ".init", strlen(".init")) == 0) {
+							if (snprintf(script, MAXPATH, "package/%s/files/%s", pkgdirp->d_name, scriptdirp->d_name) < 0)
+								fatal_error("script variable creation failed.");
+							initscript = fopen(script, "r");
+							if (initscript == NULL)
+								continue;
+
+							while (fgets(ibuf, MAXPATH, initscript) != NULL) {
+								if (strncmp("#PKG", ibuf, 4) == 0) {
+									sname = strdup(ibuf+5);
+									sname[strlen(sname)-1] = '\0';
+									sname2 = strdup(scriptdirp->d_name);
+									sname2[strlen(sname2)-5] = '\0';
+									icfg = fopen(runtime, "a");
+									if (icfg == NULL)
+										continue;
+									if (strncmp("busybox", sname, 7) == 0)
+										fprintf(icfg, "config ADK_RUNTIME_START_%s_%s\n", toupperstr(sname), toupperstr(sname2));
+									else
+										fprintf(icfg, "config ADK_RUNTIME_START_%s\n", toupperstr(sname));
+									fprintf(icfg, "\tprompt \"Start %s on boot\"\n", sname2);
+									fprintf(icfg, "\tboolean\n");
+									if (strncmp("busybox", sname, 7) == 0)
+										fprintf(icfg, "\tdepends on BUSYBOX_%s\n", toupperstr(sname2));
+									else
+										fprintf(icfg, "\tdepends on ADK_PACKAGE_%s\n", toupperstr(sname));
+									fprintf(icfg, "\tdepends on ADK_RUNTIME_START_SERVICES\n");
+									fprintf(icfg, "\tdefault n\n\n");
+									fclose(icfg);
+								}
+								continue;
+								free(sname);
+								free(sname2);
+							}
+						}
+					}
+				}
+				closedir(scriptdir);
+			}
+
 			/* skip manually maintained packages */
 			/* skip manually maintained packages */
 			if (snprintf(path, MAXPATH, "package/%s/Config.in.manual", pkgdirp->d_name) < 0)
 			if (snprintf(path, MAXPATH, "package/%s/Config.in.manual", pkgdirp->d_name) < 0)
 				fatal_error("can not create path variable.");
 				fatal_error("can not create path variable.");
@@ -621,7 +680,6 @@ int main() {
 			fclose(cfg);
 			fclose(cfg);
 			free(pkgs);
 			free(pkgs);
 
 
-
 			/* skip packages without binary package output */
 			/* skip packages without binary package output */
 			if (nobinpkgs == 1)
 			if (nobinpkgs == 1)
 				continue;
 				continue;

+ 0 - 0
tools/adk/pkgrebuild.c → adk/tools/pkgrebuild.c


+ 0 - 0
tools/adk/sortfile.c → adk/tools/sortfile.c


+ 0 - 0
tools/adk/sortfile.h → adk/tools/sortfile.h


+ 0 - 0
tools/adk/strmap.c → adk/tools/strmap.c


+ 0 - 0
tools/adk/strmap.h → adk/tools/strmap.h


+ 4 - 10
docs/adding-packages-host.txt

@@ -75,18 +75,12 @@ Following mix between host and target package is possible, too:
 29: include ${TOPDIR}/mk/pkg-bottom.mk
 29: include ${TOPDIR}/mk/pkg-bottom.mk
 ------------------------
 ------------------------
 
 
-It is important to have foo-host as package build dependency, see line 12, so that the order is always build the host package
-and then the target package.
-If you need to rebuild a mixed package, you are advised to use:
+If you need to rebuild a mixed package, you can do:
 ------------
 ------------
- $ make package=<package> clean hostpackage package
+ $ make package=<package> hostclean hostpackage clean package
 ------------
 ------------
 
 
-At the moment there is one limitation regarding the recursive dependency resolving. It is just not implemented, yet.
-So you always need to set +PKG_BUILDDEP+ to all host tools dependencies in the right order. If package foo needs host
-tool bar, and host tool bar needs host library libbaz, you have to use following +PKG_BUILDDEP+ variable:
+If your host package have some dependencies, use following:
 ------------
 ------------
- PKG_BUILDDEP:=libbaz-host bar-host
+ HOST_BUILDDEP:=libbaz-host bar-host
 ------------
 ------------
-
-

+ 1 - 0
docs/contribute.txt

@@ -82,6 +82,7 @@ Here is a short list of details to provide in such case:
 * target for which the build fails
 * target for which the build fails
 * package(s) which the build fails
 * package(s) which the build fails
 * the command that fails and its output
 * the command that fails and its output
+* the make.log file, generated when make v is used
 * any information you think that may be relevant
 * any information you think that may be relevant
 
 
 Additionally, you can add the +.config+ file.
 Additionally, you can add the +.config+ file.

+ 4 - 2
docs/getting.txt

@@ -5,8 +5,9 @@
 Getting OpenADK
 Getting OpenADK
 ---------------
 ---------------
 
 
-OpenADK does not have any releases. Only direct Git
-access is possible.
+OpenADK does not have any releases. We are following the
+http://en.wikipedia.org/wiki/Rolling_release[rolling release]
+development model.
 
 
 To download OpenADK using Git just do:
 To download OpenADK using Git just do:
 
 
@@ -20,3 +21,4 @@ Or if you prefer HTTP or using Git behind a proxy:
  $ git clone http://git.openadk.org/openadk.git
  $ git clone http://git.openadk.org/openadk.git
 ---------------------
 ---------------------
 
 
+Or you can get a http://www.openadk.org/snapshots/[snapshot].

+ 9 - 16
docs/how-openadk-works.txt

@@ -6,7 +6,7 @@ How OpenADK works
 
 
 As mentioned above, OpenADK is basically a set of Makefiles that
 As mentioned above, OpenADK is basically a set of Makefiles that
 download, configure, and compile software with the correct options. It
 download, configure, and compile software with the correct options. It
-also includes patches for various software packages and the linux kernel. 
+also includes patches for various software packages and the Linux kernel. 
 
 
 There is basically one Makefile per software package. Makefiles are split into
 There is basically one Makefile per software package. Makefiles are split into
 many different parts.
 many different parts.
@@ -22,28 +22,20 @@ many different parts.
   the kernel patches
   the kernel patches
 
 
 * The +package/+ directory contains the Makefiles and
 * The +package/+ directory contains the Makefiles and
-  associated files for all user-space tools and libraries that OpenADK
-  can compile and add to the target root filesystem. There is one
-  sub-directory per package.
+  associated files for all user-space tools and libraries that OpenADK can
+  compile and add to the target root filesystem or to the host directory. There
+  is one sub-directory per package.
 
 
 * The +mk/+ directory contains some globally used Makefiles with
 * The +mk/+ directory contains some globally used Makefiles with
   the suffix +.mk+, these are used in all other Makefile via include
   the suffix +.mk+, these are used in all other Makefile via include
 
 
-* The +tools/+ directory contains the Makefiles and
+* The +adk/+ directory contains the Makefiles and
   associated files for software related to the generation of the
   associated files for software related to the generation of the
-  host tools needed for different tasks (compression tools, ..).
-
-There are three other directories in the top level directory of OpenADK:
+  host tools needed for +make menuconfig+ system
 
 
 * The +scripts/+ directory contains shell scripts for the creation of
 * The +scripts/+ directory contains shell scripts for the creation of
   meta-data in OpenADK, install scripts and image creation scripts
   meta-data in OpenADK, install scripts and image creation scripts
 
 
-* The +config/+ directory contains the application used for the
-  +make menuconfig+ system
-
-* The +tests/+ directory contains some data for the +make check+ target,
-  to run the gcc testsuite
-
 The main Makefile performs the following steps before the configuration
 The main Makefile performs the following steps before the configuration
 is done:
 is done:
 
 
@@ -69,12 +61,13 @@ configuration is done (it is mainly a wrapper for +mk/build.mk+):
   available systems and package collections
   available systems and package collections
 
 
 * Generate the host tools required for different tasks (encrypting passwords,
 * Generate the host tools required for different tasks (encrypting passwords,
-  compressing data, extracting archives, ..)
+  compressing data, extracting archives, creating images, ..)
 
 
 * Generate the cross-compilation toolchain (binutils, gcc, libc, gdb)
 * Generate the cross-compilation toolchain (binutils, gcc, libc, gdb)
 
 
-* Compile the linux kernel
+* Compile the Linux kernel
 
 
 * Compile all the userspace packages, the boot loader and external kernel modules
 * Compile all the userspace packages, the boot loader and external kernel modules
 
 
 * Generate the firmware images or archives
 * Generate the firmware images or archives
+

+ 6 - 0
docs/introduction.txt

@@ -24,3 +24,9 @@ processors, MIPS processors, ARM processors, etc.
 OpenADK supports numerous processors and their variants; it also comes
 OpenADK supports numerous processors and their variants; it also comes
 with default configurations for some embedded systems and netbooks.
 with default configurations for some embedded systems and netbooks.
 (Raspberry PI, Sharp Zaurus, Lemote Yeelong, IBM X40 and more)
 (Raspberry PI, Sharp Zaurus, Lemote Yeelong, IBM X40 and more)
+
+OpenADK is not a Linux distribution and there are no releases or binary
+packages available. If you need something like that, better switch to
+something else. OpenADK builds everything from source. There are only a
+few exceptions to this rule (f.e. some bootloaders and firmware files for
+wireless network cards).

+ 2 - 2
docs/make-tips.txt

@@ -43,7 +43,7 @@ and pkg trees, the firmware and the toolchain for all targets):
 --------------------
 --------------------
 
 
 If you even want to clean any downloaded source and your 
 If you even want to clean any downloaded source and your 
-confiuration +.config+:
+configuration +.config+:
 
 
 --------------------
 --------------------
  $ make distclean
  $ make distclean
@@ -60,7 +60,7 @@ This is automatically triggered if you change the kernel version in
 your configuration.
 your configuration.
 
 
 If you just want to clean all packages and wants to rebuild the firmware,
 If you just want to clean all packages and wants to rebuild the firmware,
-(the tools/toolchain is not deleted) just use:
+(the toolchain is not deleted) just use:
 
 
 --------------------
 --------------------
  $ make clean
  $ make clean

+ 10 - 2
docs/patch-policy.txt

@@ -10,8 +10,8 @@ While integrating a new package or updating an existing one, it may be
 necessary to patch the source of the software to get it cross-built within
 necessary to patch the source of the software to get it cross-built within
 OpenADK.  OpenADK offers an infrastructure to automatically handle this during
 OpenADK.  OpenADK offers an infrastructure to automatically handle this during
 the builds.  Patches are provided within OpenADK, in the package directory;
 the builds.  Patches are provided within OpenADK, in the package directory;
-these typically aim to fix cross-compilation, libc support, or other such
-issues.
+these typically aim to fix cross-compilation, libc support, portability issues
+or other things.
 
 
 Normally the patches are autogenerated via:
 Normally the patches are autogenerated via:
 ------------
 ------------
@@ -80,3 +80,11 @@ Fetch from: <some url>
 
 
 It is also sensible to add a few words about any changes to the patch
 It is also sensible to add a few words about any changes to the patch
 that may have been necessary.
 that may have been necessary.
+
+Upstreaming patches
+~~~~~~~~~~~~~~~~~~~
+
+OpenADK tries to avoid any patches to the source code. If a patch could
+not be avoided, it should be tried to make the patch of a good quality to
+get it upstream. OpenADK tries to report any found issues and try to send
+in any upstream compatible patches.

+ 5 - 6
docs/prerequisite.txt

@@ -23,8 +23,8 @@ package names may vary between host systems.
 
 
 ** +bash+
 ** +bash+
 ** +binutils+
 ** +binutils+
-** +gcc+ 
-** `g++`
+** +C compiler (gcc or clang)+ 
+** `C++ compiler (g++ or clang++)`
 ** +GNU sed+
 ** +GNU sed+
 ** +GNU awk+
 ** +GNU awk+
 ** +GNU make+
 ** +GNU make+
@@ -33,10 +33,9 @@ package names may vary between host systems.
 ** +perl+
 ** +perl+
 ** +tar+
 ** +tar+
 ** +wget+
 ** +wget+
-** +findutils (find, xargs)+
-** +ncurses5 development+
-** +zlib development+ 
-** +libc development+
+** +ncurses5 development files+
+** +zlib development files+ 
+** +libc development files+
 
 
 There is a check for the required versions of these tools in advance,
 There is a check for the required versions of these tools in advance,
 though. To re-issue the checks, use +make prereq+.
 though. To re-issue the checks, use +make prereq+.

+ 61 - 63
mk/build.mk

@@ -9,7 +9,7 @@ $(error your umask is not 022)
 endif
 endif
 
 
 CONFIG_CONFIG_IN = Config.in
 CONFIG_CONFIG_IN = Config.in
-CONFIG = config
+CONFIG = adk/config
 DEFCONFIG=		ADK_DEBUG=n \
 DEFCONFIG=		ADK_DEBUG=n \
 			ADK_STATIC=n \
 			ADK_STATIC=n \
 			ADK_WGET_TIMEOUT=180 \
 			ADK_WGET_TIMEOUT=180 \
@@ -18,6 +18,7 @@ DEFCONFIG=		ADK_DEBUG=n \
 			ADK_LEAVE_ETC_ALONE=n \
 			ADK_LEAVE_ETC_ALONE=n \
 			ADK_SIMPLE_NETWORK_CONFIG=n \
 			ADK_SIMPLE_NETWORK_CONFIG=n \
 			ADK_USE_CCACHE=n \
 			ADK_USE_CCACHE=n \
+			ADK_RUNTIME_START_SERVICES=n \
 			ADK_PACKAGE_BASE_FILES=y \
 			ADK_PACKAGE_BASE_FILES=y \
 			ADK_PACKAGE_E2FSCK_STATIC=n \
 			ADK_PACKAGE_E2FSCK_STATIC=n \
 			ADK_PACKAGE_KEXECINIT=n \
 			ADK_PACKAGE_KEXECINIT=n \
@@ -41,8 +42,10 @@ DEFCONFIG=		ADK_DEBUG=n \
 			ADK_PKG_TEST=n \
 			ADK_PKG_TEST=n \
 			ADK_PKG_MPDBOX=n \
 			ADK_PKG_MPDBOX=n \
 			ADK_PKG_DEVELOPMENT=n \
 			ADK_PKG_DEVELOPMENT=n \
-			ADK_TOOLCHAIN_GCC_USE_SSP=n \
-			ADK_TOOLCHAIN_GCC_USE_LTO=n \
+			ADK_TOOLCHAIN_USE_SSP=n \
+			ADK_TOOLCHAIN_USE_LTO=n \
+			ADK_TOOLCHAIN_GOLD=n \
+			ADK_TOOLCHAIN_USE_GOLD=n \
 			BUSYBOX_IFPLUGD=n \
 			BUSYBOX_IFPLUGD=n \
 			BUSYBOX_EXTRA_COMPAT=n \
 			BUSYBOX_EXTRA_COMPAT=n \
 			BUSYBOX_FEATURE_IFCONFIG_SLIP=n \
 			BUSYBOX_FEATURE_IFCONFIG_SLIP=n \
@@ -79,6 +82,7 @@ DEFCONFIG=		ADK_DEBUG=n \
 			BUSYBOX_FEATURE_VI_REGEX_SEARCH=n \
 			BUSYBOX_FEATURE_VI_REGEX_SEARCH=n \
 			ADK_KERNEL_RT2X00_DEBUG=n \
 			ADK_KERNEL_RT2X00_DEBUG=n \
 			ADK_KERNEL_ATH5K_DEBUG=n \
 			ADK_KERNEL_ATH5K_DEBUG=n \
+			ADK_KERNEL_BUG=n \
 			ADK_KERNEL_DEBUG_WITH_KGDB=n
 			ADK_KERNEL_DEBUG_WITH_KGDB=n
 
 
 noconfig_targets:=	menuconfig \
 noconfig_targets:=	menuconfig \
@@ -92,13 +96,13 @@ POSTCONFIG=		-@\
 	if [ -f .adkinit ];then rm .adkinit;\
 	if [ -f .adkinit ];then rm .adkinit;\
 	else \
 	else \
 	if [ -f .config.old ];then \
 	if [ -f .config.old ];then \
-		$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgrebuild;\
+		$(TOPDIR)/adk/tools/pkgrebuild;\
 		rebuild=0; \
 		rebuild=0; \
 		if [ "$$(grep ^BUSYBOX .config|md5sum)" != "$$(grep ^BUSYBOX .config.old|md5sum)" ];then \
 		if [ "$$(grep ^BUSYBOX .config|md5sum)" != "$$(grep ^BUSYBOX .config.old|md5sum)" ];then \
 			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_GETTY ADK_RUNTIME_SHELL;do \
+		for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_TMPFS_SIZE ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS ADK_RUNTIME_CONSOLE 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;\
@@ -138,27 +142,26 @@ include $(TOPDIR)/rules.mk
 
 
 all: world
 all: world
 
 
-${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config $(wildcard ${TOPDIR}/package/*/Makefile)
-	$(STAGING_HOST_DIR)/usr/bin/depmaker > ${TOPDIR}/package/Depends.mk
+${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config $(wildcard ${TOPDIR}/package/*/Makefile) $(TOPDIR)/adk/tools/depmaker
+	$(TOPDIR)/adk/tools/depmaker > ${TOPDIR}/package/Depends.mk
 
 
 .NOTPARALLEL:
 .NOTPARALLEL:
 .PHONY: all world clean cleandir cleantoolchain distclean image_clean
 .PHONY: all world clean cleandir cleantoolchain distclean image_clean
 
 
 world:
 world:
-	mkdir -p $(DL_DIR) $(BUILD_DIR) $(TARGET_DIR) $(FW_DIR) \
-		$(PACKAGE_DIR) $(TOOLS_BUILD_DIR) $(STAGING_HOST_DIR)/usr/bin \
-		$(TOOLCHAIN_BUILD_DIR) $(STAGING_PKG_DIR)/stamps
+	mkdir -p $(DL_DIR) $(HOST_BUILD_DIR) $(BUILD_DIR) $(TARGET_DIR) $(FW_DIR) \
+		$(STAGING_HOST_DIR) $(TOOLCHAIN_BUILD_DIR) $(STAGING_PKG_DIR)/stamps
 	${BASH} ${TOPDIR}/scripts/scan-pkgs.sh
 	${BASH} ${TOPDIR}/scripts/scan-pkgs.sh
 	${BASH} ${TOPDIR}/scripts/update-sys
 	${BASH} ${TOPDIR}/scripts/update-sys
 	${BASH} ${TOPDIR}/scripts/update-pkg
 	${BASH} ${TOPDIR}/scripts/update-pkg
 ifeq ($(ADK_TOOLCHAIN),y)
 ifeq ($(ADK_TOOLCHAIN),y)
 ifeq ($(ADK_TOOLCHAIN_ONLY),y)
 ifeq ($(ADK_TOOLCHAIN_ONLY),y)
-	$(MAKE) -f mk/build.mk tools/install toolchain/fixup package/compile
+	$(MAKE) -f mk/build.mk package/hostcompile toolchain/fixup package/compile
 else
 else
-	$(MAKE) -f mk/build.mk tools/install toolchain/fixup package/compile root_clean package/install
+	$(MAKE) -f mk/build.mk package/hostcompile toolchain/fixup package/compile root_clean package/install
 endif
 endif
 else
 else
-	$(MAKE) -f mk/build.mk tools/install toolchain/fixup target/config-prepare target/compile package/compile root_clean package/install target/install package_index
+	$(MAKE) -f mk/build.mk package/hostcompile toolchain/fixup target/config-prepare target/compile package/compile root_clean package/install target/install package_index
 endif
 endif
 
 
 package_index:
 package_index:
@@ -169,9 +172,10 @@ endif
 
 
 ${STAGING_TARGET_DIR} ${STAGING_TARGET_DIR}/etc ${STAGING_HOST_DIR}:
 ${STAGING_TARGET_DIR} ${STAGING_TARGET_DIR}/etc ${STAGING_HOST_DIR}:
 	mkdir -p ${STAGING_TARGET_DIR}/{bin,etc,lib,usr/bin,usr/include,usr/lib/pkgconfig} \
 	mkdir -p ${STAGING_TARGET_DIR}/{bin,etc,lib,usr/bin,usr/include,usr/lib/pkgconfig} \
-		${STAGING_HOST_DIR}/{bin,lib,usr/bin,usr/lib,usr/include}
+		${STAGING_HOST_DIR}/{usr/bin,usr/lib,usr/include}
 	for i in lib64 lib32 libx32;do \
 	for i in lib64 lib32 libx32;do \
 		cd ${STAGING_TARGET_DIR}/; ln -sf lib $$i; \
 		cd ${STAGING_TARGET_DIR}/; ln -sf lib $$i; \
+		cd ${STAGING_TARGET_DIR}/usr; ln -sf lib $$i; \
 	done
 	done
 
 
 ${STAGING_TARGET_DIR}/etc/ipkg.conf: ${STAGING_TARGET_DIR}/etc
 ${STAGING_TARGET_DIR}/etc/ipkg.conf: ${STAGING_TARGET_DIR}/etc
@@ -189,9 +193,6 @@ target/%:
 toolchain/%: ${STAGING_TARGET_DIR}
 toolchain/%: ${STAGING_TARGET_DIR}
 	$(MAKE) -C toolchain $(patsubst toolchain/%,%,$@)
 	$(MAKE) -C toolchain $(patsubst toolchain/%,%,$@)
 
 
-tools/%:
-	$(MAKE) -C tools $(patsubst tools/%,%,$@)
-
 image:
 image:
 	$(MAKE) -C target image
 	$(MAKE) -C target image
 
 
@@ -236,6 +237,7 @@ root_clean:
 	@$(TRACE) root_clean
 	@$(TRACE) root_clean
 	rm -rf $(TARGET_DIR)
 	rm -rf $(TARGET_DIR)
 	mkdir -p $(TARGET_DIR)
 	mkdir -p $(TARGET_DIR)
+	touch $(TARGET_DIR)/.adk
 
 
 # Do a per-package clean here, too. This way stale headers and
 # Do a per-package clean here, too. This way stale headers and
 # libraries from target_*/ get wiped away, which keeps
 # libraries from target_*/ get wiped away, which keeps
@@ -264,7 +266,7 @@ cleandir:
 	@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE) 
 	@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE) 
 	rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) \
 	rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) \
 	    ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.d
 	    ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.d
-	rm -rf $(TOOLCHAIN_DIR_PFX) $(STAGING_HOST_DIR_PFX) $(TOOLS_BUILD_DIR)
+	rm -rf $(TOOLCHAIN_DIR_PFX) $(STAGING_HOST_DIR_PFX)
 	rm -rf $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
 	rm -rf $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
 	rm -f .menu .tmpconfig.h .rebuild* ${TOPDIR}/package/Depends.mk ${TOPDIR}/prereq.mk
 	rm -f .menu .tmpconfig.h .rebuild* ${TOPDIR}/package/Depends.mk ${TOPDIR}/prereq.mk
 
 
@@ -272,7 +274,7 @@ cleantoolchain:
 	@$(TRACE) cleantoolchain
 	@$(TRACE) cleantoolchain
 	@rm -rf $(BUILD_DIR_PFX) $(TARGET_DIR_PFX) \
 	@rm -rf $(BUILD_DIR_PFX) $(TARGET_DIR_PFX) \
 	    ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.d
 	    ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.d
-	@rm -rf $(TOOLCHAIN_DIR_PFX) $(STAGING_HOST_DIR_PFX) $(TOOLS_BUILD_DIR)
+	@rm -rf $(TOOLCHAIN_DIR_PFX) $(STAGING_HOST_DIR_PFX)
 	@rm -rf $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
 	@rm -rf $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
 	@rm -f .menu .tmpconfig.h .rebuild* ${TOPDIR}/package/Depends.mk
 	@rm -f .menu .tmpconfig.h .rebuild* ${TOPDIR}/package/Depends.mk
 
 
@@ -281,7 +283,7 @@ distclean:
 	@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
 	@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
 	@rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) $(DL_DIR) \
 	@rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) $(DL_DIR) \
 	    ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.d
 	    ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.d
-	@rm -rf $(TOOLCHAIN_DIR_PFX) $(STAGING_HOST_DIR_PFX) $(TOOLS_BUILD_DIR)
+	@rm -rf $(TOOLCHAIN_DIR_PFX) $(STAGING_HOST_DIR_PFX)
 	@rm -rf $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
 	@rm -rf $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
 	@rm -f .adkinit .config* .defconfig .tmpconfig.h all.config ${TOPDIR}/prereq.mk \
 	@rm -f .adkinit .config* .defconfig .tmpconfig.h all.config ${TOPDIR}/prereq.mk \
 	    .menu ${TOPDIR}/package/Depends.mk .ADK_HAVE_DOT_CONFIG .rebuild.*
 	    .menu ${TOPDIR}/package/Depends.mk .ADK_HAVE_DOT_CONFIG .rebuild.*
@@ -454,7 +456,7 @@ distclean:
 	@$(MAKE) -C $(CONFIG) clean
 	@$(MAKE) -C $(CONFIG) clean
 	@rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) $(DL_DIR) \
 	@rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) $(DL_DIR) \
 	    ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.d
 	    ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.d
-	@rm -rf $(TOOLCHAIN_DIR_PFX) $(STAGING_TARGET_DIR_PFX) $(TOOLS_BUILD_DIR)
+	@rm -rf $(TOOLCHAIN_DIR_PFX) $(STAGING_TARGET_DIR_PFX)
 	@rm -rf $(STAGING_HOST_DIR_PFX) $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
 	@rm -rf $(STAGING_HOST_DIR_PFX) $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
 	@rm -f .adkinit .config* .defconfig .tmpconfig.h all.config ${TOPDIR}/prereq.mk \
 	@rm -f .adkinit .config* .defconfig .tmpconfig.h all.config ${TOPDIR}/prereq.mk \
 	    .menu .rebuild.* ${TOPDIR}/package/Depends.mk .ADK_HAVE_DOT_CONFIG
 	    .menu .rebuild.* ${TOPDIR}/package/Depends.mk .ADK_HAVE_DOT_CONFIG
@@ -473,21 +475,21 @@ bulktoolchain:
 		while read arch; do \
 		while read arch; do \
 			mkdir -p ${TOPDIR}/firmware; \
 			mkdir -p ${TOPDIR}/firmware; \
 		    ( \
 		    ( \
-			echo === building $$arch $$libc toolchain-$$arch on $$(date); \
-			tarch=$$(echo $$arch|sed -e "s#el##" -e "s#eb##" -e "s#mips64.*#mips#" -e "s#hf##"); \
-			if [ -f ${TOPDIR}/firmware/toolchain_$${arch}_$${libc}.tar.xz ];then exit;fi; \
-			$(GMAKE) prereq && \
+			tarch=$$(echo $$arch|sed -e "s#sh4.*#sh#" -e "s#el##" -e "s#eb##" -e "s#mips64.*#mips#" -e "s#hf##" -e "s#x86_64.*#x86_64#" ); \
+			carch=$$(echo $$arch|sed -e "s#hf##" -e "s#mips64n.*#mips64#" -e "s#mips64el.*#mips64el#" -e 's#x86$$#i686#' -e "s#x86_64.*#x86_64#" ); \
+			echo === building $$tarch $$libc toolchain-$$arch on $$(date); \
 				$(GMAKE) ARCH=$$tarch SYSTEM=toolchain-$$arch LIBC=$$libc defconfig; \
 				$(GMAKE) ARCH=$$tarch SYSTEM=toolchain-$$arch LIBC=$$libc defconfig; \
-				$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; break;fi; \
-				if [ $$arch = "armhf" ];then arch=arm; else arch=$$arch;fi; \
 				tabi=$$(grep ^ADK_TARGET_ABI= .config|cut -d \" -f 2);\
 				tabi=$$(grep ^ADK_TARGET_ABI= .config|cut -d \" -f 2);\
+				if [ $$arch = "armhf" ];then arch=arm; else arch=$$arch;fi; \
 				if [ -z $$tabi ];then abi="";else abi=_$$tabi;fi; \
 				if [ -z $$tabi ];then abi="";else abi=_$$tabi;fi; \
-				tar -cvJf ${TOPDIR}/firmware/toolchain_$${arch}_$${libc}$${abi}.tar.xz toolchain_${GNU_HOST_NAME} target_$${arch}_$${libc}$${abi}; \
+				if [ -f ${TOPDIR}/firmware/toolchain_$${carch}_$${libc}$${abi}.tar.xz ];then exit;fi; \
+				$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; break;fi; \
+				tar -cvJf ${TOPDIR}/firmware/toolchain_$${carch}_$${libc}$${abi}.tar.xz toolchain_${GNU_HOST_NAME} target_$${carch}_$${libc}$${abi}; \
 				$(GMAKE) cleantoolchain; \
 				$(GMAKE) cleantoolchain; \
 			rm .config; \
 			rm .config; \
-		    ) 2>&1 | tee $(TOPDIR)/firmware/toolchain_build.log; \
+		    ) 2>&1 | tee -a $(TOPDIR)/firmware/toolchain_build.log; \
 		    if [ -f .exit ];then break;fi \
 		    if [ -f .exit ];then break;fi \
-		done <${TOPDIR}/target/tarch.lst ;\
+		done <${TOPDIR}/toolchain/$$libc/tarch.lst ;\
 		if [ -f .exit ];then echo "Bulk build failed!"; rm .exit; exit 1;fi \
 		if [ -f .exit ];then echo "Bulk build failed!"; rm .exit; exit 1;fi \
 	done
 	done
 
 
@@ -500,15 +502,15 @@ test-framework:
 	for libc in $$libc;do \
 	for libc in $$libc;do \
 		( \
 		( \
 			mkdir -p $(TOPDIR)/firmware/; \
 			mkdir -p $(TOPDIR)/firmware/; \
-			for arch in arm armhf microblaze microblazeel mips mipsel mips64 mips64el ppc ppc64 sh4 sh4eb sparc sparc64 i686 x86_64;do \
-				tarch=$$(echo $$arch|sed -e "s#el##" -e "s#eb##" -e "s#mips64.*#mips#" -e "s#i686#x86#" -e "s#sh4#sh#" -e "s#hf##"); \
+			for arch in $$(grep -v m68k target/tarch.lst|xargs);do \
+				tarch=$$(echo $$arch|sed -e "s#el##" -e "s#eb##" -e "s#mips64.*#mips#" -e "s#i686#x86#" -e "s#sh4#sh#" -e "s#hf##" -e "s#x86_64.*#x86_64#"); \
+				arch=$$(echo $$arch|sed -e 's#x86$$#i686#'); \
 				echo === building qemu-$$arch for $$libc with $$tarch on $$(date); \
 				echo === building qemu-$$arch for $$libc with $$tarch on $$(date); \
-				$(GMAKE) prereq && \
 				$(GMAKE) ARCH=$$tarch SYSTEM=qemu-$$arch LIBC=$$libc FS=initramfsarchive COLLECTION=test defconfig; \
 				$(GMAKE) ARCH=$$tarch SYSTEM=qemu-$$arch LIBC=$$libc FS=initramfsarchive COLLECTION=test defconfig; \
 				$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 				$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 				tabi=$$(grep ^ADK_TARGET_ABI= .config|cut -d \" -f 2);\
 				tabi=$$(grep ^ADK_TARGET_ABI= .config|cut -d \" -f 2);\
 				if [ -z $$tabi ];then abi="";else abi=_$$tabi;fi; \
 				if [ -z $$tabi ];then abi="";else abi=_$$tabi;fi; \
-				if [ $$arch = "armhf" ];then qarch=arm; else qarch=$$arch;fi; \
+				qarch=$$(echo $$arch|sed -e "s#armhf#arm#" -e 's#mips64n.*$$#mips64#' -e 's#mips64eln.*$$#mips64el#' -e "s#x86_64.*#x86_64#"); \
 				cp -a root_qemu_$${qarch}_$${libc}$${abi} root; \
 				cp -a root_qemu_$${qarch}_$${libc}$${abi} root; \
 				mkdir -p $(TOPDIR)/firmware/qemu/$$arch; \
 				mkdir -p $(TOPDIR)/firmware/qemu/$$arch; \
 				tar cJvf $(TOPDIR)/firmware/qemu/$$arch/root.tar.xz root; \
 				tar cJvf $(TOPDIR)/firmware/qemu/$$arch/root.tar.xz root; \
@@ -524,14 +526,13 @@ test-framework:
 
 
 release:
 release:
 	for libc in uclibc glibc musl;do \
 	for libc in uclibc glibc musl;do \
-		mkdir -p $(TOPDIR)/firmware/$(SYSTEM)_$(ARCH)_$$libc; \
 		( \
 		( \
 			echo === building $$libc on $$(date); \
 			echo === building $$libc on $$(date); \
 			$(GMAKE) prereq && \
 			$(GMAKE) prereq && \
 			$(GMAKE) ARCH=$(ARCH) SYSTEM=$(SYSTEM) LIBC=$$libc FS=archive allmodconfig; \
 			$(GMAKE) ARCH=$(ARCH) SYSTEM=$(SYSTEM) LIBC=$$libc FS=archive allmodconfig; \
 			$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 			$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 			rm .config; \
 			rm .config; \
-		) 2>&1 | tee $(TOPDIR)/firmware/$(SYSTEM)_$(ARCH)_$$libc/build.log; \
+		) 2>&1 | tee $(TOPDIR)/firmware/release-build.log; \
 		if [ -f .exit ];then echo "Bulk build failed!"; break;fi \
 		if [ -f .exit ];then echo "Bulk build failed!"; break;fi \
 	done
 	done
 	if [ -f .exit ];then rm .exit;exit 1;fi
 	if [ -f .exit ];then rm .exit;exit 1;fi
@@ -542,14 +543,14 @@ bulk:
 	  while read arch; do \
 	  while read arch; do \
 	      systems=$$(./scripts/getsystems $$arch|grep -v toolchain); \
 	      systems=$$(./scripts/getsystems $$arch|grep -v toolchain); \
 	      for system in $$systems;do \
 	      for system in $$systems;do \
-		mkdir -p $(TOPDIR)/firmware/$${system}_$${arch}_$$libc; \
+		mkdir -p $(TOPDIR)/firmware; \
 	    ( \
 	    ( \
 		echo === building $$arch $$system $$libc on $$(date); \
 		echo === building $$arch $$system $$libc on $$(date); \
 		$(GMAKE) prereq && \
 		$(GMAKE) prereq && \
 		$(GMAKE) ARCH=$$arch SYSTEM=$$system LIBC=$$libc FS=archive defconfig; \
 		$(GMAKE) ARCH=$$arch SYSTEM=$$system LIBC=$$libc FS=archive defconfig; \
 		$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 		$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 		rm .config; \
 		rm .config; \
-            ) 2>&1 | tee $(TOPDIR)/firmware/$${system}_$${arch}_$$libc/build.log; \
+            ) 2>&1 | tee $(TOPDIR)/firmware/bulkbuild.log; \
 		if [ -f .exit ]; then break;fi \
 		if [ -f .exit ]; then break;fi \
 	      done; \
 	      done; \
 	    if [ -f .exit ]; then break;fi \
 	    if [ -f .exit ]; then break;fi \
@@ -562,14 +563,14 @@ bulkall:
 	  while read arch; do \
 	  while read arch; do \
 	      systems=$$(./scripts/getsystems $$arch| grep -v toolchain); \
 	      systems=$$(./scripts/getsystems $$arch| grep -v toolchain); \
 	      for system in $$systems;do \
 	      for system in $$systems;do \
-		mkdir -p $(TOPDIR)/firmware/$${system}_$${arch}_$$libc; \
+		mkdir -p $(TOPDIR)/firmware; \
 	    ( \
 	    ( \
 		echo === building $$arch $$system $$libc on $$(date); \
 		echo === building $$arch $$system $$libc on $$(date); \
 		$(GMAKE) prereq && \
 		$(GMAKE) prereq && \
 		$(GMAKE) ARCH=$$arch SYSTEM=$$system LIBC=$$libc FS=archive allconfig; \
 		$(GMAKE) ARCH=$$arch SYSTEM=$$system LIBC=$$libc FS=archive allconfig; \
 		$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 		$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 		rm .config; \
 		rm .config; \
-            ) 2>&1 | tee $(TOPDIR)/firmware/$${system}_$${arch}_$$libc/build.log; \
+            ) 2>&1 | tee $(TOPDIR)/firmware/bulkallbuild.log; \
 		if [ -f .exit ]; then break;fi \
 		if [ -f .exit ]; then break;fi \
 	      done; \
 	      done; \
 	      if [ -f .exit ]; then break;fi \
 	      if [ -f .exit ]; then break;fi \
@@ -582,7 +583,7 @@ bulkallmod:
 	  while read arch; do \
 	  while read arch; do \
 	      systems=$$(./scripts/getsystems $$arch| grep -v toolchain); \
 	      systems=$$(./scripts/getsystems $$arch| grep -v toolchain); \
 	      for system in $$systems;do \
 	      for system in $$systems;do \
-		mkdir -p $(TOPDIR)/firmware/$${system}_$${arch}_$$libc; \
+		mkdir -p $(TOPDIR)/firmware; \
 	    ( \
 	    ( \
 		echo === building $$arch $$system $$libc on $$(date); \
 		echo === building $$arch $$system $$libc on $$(date); \
 		$(GMAKE) prereq && \
 		$(GMAKE) prereq && \
@@ -590,7 +591,7 @@ bulkallmod:
 		$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then echo $$system-$$libc >.exit; exit 1;fi; \
 		$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then echo $$system-$$libc >.exit; exit 1;fi; \
 		$(GMAKE) clean; \
 		$(GMAKE) clean; \
 		rm .config; \
 		rm .config; \
-            ) 2>&1 | tee $(TOPDIR)/firmware/$${system}_$${arch}_$$libc/build.log; \
+            ) 2>&1 | tee $(TOPDIR)/firmware/bulkallmodbuild.log; \
 	        if [ -f .exit ]; then break;fi \
 	        if [ -f .exit ]; then break;fi \
 	      done; \
 	      done; \
 	     if [ -f .exit ]; then break;fi \
 	     if [ -f .exit ]; then break;fi \
@@ -598,45 +599,42 @@ bulkallmod:
 	  if [ -f .exit ];then echo "Bulk build failed!"; cat .exit;rm .exit; exit 1;fi \
 	  if [ -f .exit ];then echo "Bulk build failed!"; cat .exit;rm .exit; exit 1;fi \
 	done
 	done
 
 
-$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgmaker: $(TOPDIR)/tools/adk/pkgmaker.c $(TOPDIR)/tools/adk/sortfile.c $(TOPDIR)/tools/adk/strmap.c
-	@mkdir -p host_$(GNU_HOST_NAME)/usr/bin
-	@$(CC_FOR_BUILD) -g -o $@ tools/adk/pkgmaker.c tools/adk/sortfile.c tools/adk/strmap.c
+$(TOPDIR)/adk/tools/pkgmaker: $(TOPDIR)/adk/tools/pkgmaker.c $(TOPDIR)/adk/tools/sortfile.c $(TOPDIR)/adk/tools/strmap.c
+	@$(CC_FOR_BUILD) -g -o $@ adk/tools/pkgmaker.c adk/tools/sortfile.c adk/tools/strmap.c
 
 
-$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgrebuild: $(TOPDIR)/tools/adk/pkgrebuild.c $(TOPDIR)/tools/adk/strmap.c
-	@$(CC_FOR_BUILD) -g -o $@ tools/adk/pkgrebuild.c tools/adk/strmap.c
+$(TOPDIR)/adk/tools/pkgrebuild: $(TOPDIR)/adk/tools/pkgrebuild.c $(TOPDIR)/adk/tools/strmap.c
+	@$(CC_FOR_BUILD) -g -o $@ adk/tools/pkgrebuild.c adk/tools/strmap.c
 
 
-package/Config.in.auto menu .menu: $(wildcard ${TOPDIR}/package/*/Makefile) $(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgmaker $(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgrebuild
+package/Config.in.auto menu .menu: $(wildcard ${TOPDIR}/package/*/Makefile) $(TOPDIR)/adk/tools/pkgmaker $(TOPDIR)/adk/tools/pkgrebuild
 	@echo "Generating menu structure ..."
 	@echo "Generating menu structure ..."
-	@$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgmaker
+	@$(TOPDIR)/adk/tools/pkgmaker
 	@:>.menu
 	@:>.menu
 
 
-$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/depmaker: $(TOPDIR)/tools/adk/depmaker.c
-	@mkdir -p host_$(GNU_HOST_NAME)/usr/bin
-	$(CC_FOR_BUILD) -g -o $@ $(TOPDIR)/tools/adk/depmaker.c
+$(TOPDIR)/adk/tools/depmaker: $(TOPDIR)/adk/tools/depmaker.c
+	$(CC_FOR_BUILD) -g -o $@ $(TOPDIR)/adk/tools/depmaker.c
 
 
-dep: $(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/depmaker
+dep: $(TOPDIR)/adk/tools/depmaker
 	@echo "Generating dependencies ..."
 	@echo "Generating dependencies ..."
-	@$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/depmaker > ${TOPDIR}/package/Depends.mk
+	@$(TOPDIR)/adk/tools/depmaker > ${TOPDIR}/package/Depends.mk
 
 
 .PHONY: menu dep
 .PHONY: menu dep
 
 
 include $(TOPDIR)/toolchain/gcc/Makefile.inc
 include $(TOPDIR)/toolchain/gcc/Makefile.inc
 
 
 check-dejagnu:
 check-dejagnu:
-	@-rm tests/adk.exp tests/master.exp >/dev/null 2>&1
-	@sed -e "s#@ADK_TARGET_IP@#$(ADK_TARGET_IP)#" tests/adk.exp.in > \
-		tests/adk.exp.in.tmp
-	@sed -e "s#@ADK_TARGET_PORT@#$(ADK_TARGET_PORT)#" tests/adk.exp.in.tmp > \
-		tests/adk.exp
-	@sed -e "s#@TOPDIR@#$(TOPDIR)#" tests/master.exp.in > \
-		tests/master.exp
+	@-rm adk/tests/adk.exp adk/tests/master.exp >/dev/null 2>&1
+	@sed -e "s#@ADK_TARGET_IP@#$(ADK_TARGET_IP)#" \
+		-e "s#@ADK_TARGET_PORT@#$(ADK_TARGET_PORT)#" \
+		adk/tests/adk.exp.in > adk/tests/adk.exp
+	@sed -e "s#@TOPDIR@#$(TOPDIR)#" adk/tests/master.exp.in > \
+		adk/tests/master.exp
 
 
 check-gcc: check-dejagnu
 check-gcc: check-dejagnu
-	env DEJAGNU=$(TOPDIR)/tests/master.exp \
+	env DEJAGNU=$(TOPDIR)/adk/tests/master.exp \
 	$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(PKG_NAME)-$(PKG_VERSION)-final/gcc check-gcc
 	$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(PKG_NAME)-$(PKG_VERSION)-final/gcc check-gcc
 
 
 check-g++: check-dejagnu
 check-g++: check-dejagnu
-	env DEJAGNU=$(TOPDIR)/tests/master.exp \
+	env DEJAGNU=$(TOPDIR)/adk/tests/master.exp \
 	$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(PKG_NAME)-$(PKG_VERSION)-final/gcc check-g++
 	$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(PKG_NAME)-$(PKG_VERSION)-final/gcc check-g++
 
 
 check: check-gcc check-g++
 check: check-gcc check-g++

+ 4 - 4
mk/buildhlp.mk

@@ -72,16 +72,16 @@ ifeq ($(strip ${__use_generic_patch_target}),42)
 post-patch:
 post-patch:
 ${WRKDIST}/.prepared: ${WRKDIST}/.extract_done
 ${WRKDIST}/.prepared: ${WRKDIST}/.extract_done
 	[ ! -d ./patches/${PKG_VERSION} ] || ${PREVENT_PATCH} ${PATCH} ${WRKDIST} ./patches/${PKG_VERSION} \
 	[ ! -d ./patches/${PKG_VERSION} ] || ${PREVENT_PATCH} ${PATCH} ${WRKDIST} ./patches/${PKG_VERSION} \
-	    '{patch-!(*.orig),*.patch}' $(MAKE_TRACE)
+	    '{patch-!(*.orig),*.patch,*.${ARCH}}' $(MAKE_TRACE)
 	[ ! -d ./patches ] || ${PREVENT_PATCH} ${PATCH} ${WRKDIST} ./patches \
 	[ ! -d ./patches ] || ${PREVENT_PATCH} ${PATCH} ${WRKDIST} ./patches \
-	    '{patch-!(*.orig),*.patch}' $(MAKE_TRACE)
+	    '{patch-!(*.orig),*.patch,*.${ARCH}}' $(MAKE_TRACE)
 	[ ! -d ./src ] || (cd src; $(PREVENT_PATCH) cp -Rp . ${WRKDIST}/) \
 	[ ! -d ./src ] || (cd src; $(PREVENT_PATCH) cp -Rp . ${WRKDIST}/) \
 		$(MAKE_TRACE)
 		$(MAKE_TRACE)
 	@${MAKE} post-patch $(MAKE_TRACE)
 	@${MAKE} post-patch $(MAKE_TRACE)
 	touch $@
 	touch $@
 endif
 endif
 
 
-update-patches:
+update-patches host-update-patches:
 	@test ! -d ${WRKDIR}.orig || rm -rf ${WRKDIR}.orig
 	@test ! -d ${WRKDIR}.orig || rm -rf ${WRKDIR}.orig
 	@test ! -d ${WRKDIR}.orig
 	@test ! -d ${WRKDIR}.orig
 ifeq ($(strip ${_IN_PACKAGE})$(strip ${_IN_CVTC}),1)
 ifeq ($(strip ${_IN_PACKAGE})$(strip ${_IN_CVTC}),1)
@@ -115,4 +115,4 @@ endif
 	    rm -rf ${WRKDIR}.orig; \
 	    rm -rf ${WRKDIR}.orig; \
 	    [[ $$toedit != FAIL ]]
 	    [[ $$toedit != FAIL ]]
 
 
-.PHONY: update-patches
+.PHONY: update-patches host-update-patches

+ 0 - 1
mk/fetch.mk

@@ -26,7 +26,6 @@ refetch:
 	-rm -f ${FULLDISTFILES}
 	-rm -f ${FULLDISTFILES}
 	${MAKE} fetch
 	${MAKE} fetch
 
 
-# XXX for now
 _CHECKSUM_COOKIE?=	${WRKDIR}/.checksum_done
 _CHECKSUM_COOKIE?=	${WRKDIR}/.checksum_done
 checksum: ${_CHECKSUM_COOKIE}
 checksum: ${_CHECKSUM_COOKIE}
 ifeq ($(strip ${NO_CHECKSUM}),)
 ifeq ($(strip ${NO_CHECKSUM}),)

+ 5 - 4
mk/host-bottom.mk

@@ -3,6 +3,7 @@
 
 
 host-extract: ${_HOST_PATCH_COOKIE}
 host-extract: ${_HOST_PATCH_COOKIE}
 
 
+hostpre-configure:
 host-configure:
 host-configure:
 ${_HOST_CONFIGURE_COOKIE}: ${_HOST_PATCH_COOKIE}
 ${_HOST_CONFIGURE_COOKIE}: ${_HOST_PATCH_COOKIE}
 	@mkdir -p ${WRKBUILD}
 	@mkdir -p ${WRKBUILD}
@@ -25,6 +26,7 @@ endif
 			${CP} ${SCRIPT_DIR}/config.guess $$i; \
 			${CP} ${SCRIPT_DIR}/config.guess $$i; \
 	        fi; \
 	        fi; \
 	    done;
 	    done;
+	@${MAKE} hostpre-configure $(MAKE_TRACE)
 ifneq (${HOST_STYLE},manual)
 ifneq (${HOST_STYLE},manual)
 ifeq ($(strip ${HOST_STYLE}),)
 ifeq ($(strip ${HOST_STYLE}),)
 	cd ${WRKBUILD}; rm -f config.{cache,status}; \
 	cd ${WRKBUILD}; rm -f config.{cache,status}; \
@@ -75,8 +77,7 @@ endif
 	touch $@
 	touch $@
 
 
 hostpost-install:
 hostpost-install:
-hpkg-install: ${ALL_HOSTINST}
-host-install:
+host-install: ${ALL_HOSTINST}
 ${_HOST_FAKE_COOKIE}: ${_HOST_BUILD_COOKIE}
 ${_HOST_FAKE_COOKIE}: ${_HOST_BUILD_COOKIE}
 	@$(CMD_TRACE) "host installing... "
 	@$(CMD_TRACE) "host installing... "
 	@mkdir -p ${HOST_WRKINST}
 	@mkdir -p ${HOST_WRKINST}
@@ -84,13 +85,13 @@ 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} \
 	    DESTDIR='${HOST_WRKINST}' ${HOST_FAKE_FLAGS} ${HOST_INSTALL_TARGET} $(MAKE_TRACE)
 	    DESTDIR='${HOST_WRKINST}' ${HOST_FAKE_FLAGS} ${HOST_INSTALL_TARGET} $(MAKE_TRACE)
-	env ${HOST_MAKE_ENV} ${MAKE} hpkg-install $(MAKE_TRACE)
+	env ${HOST_MAKE_ENV} ${MAKE} host-install $(MAKE_TRACE)
 else
 else
 	cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
 	cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
 	    DESTDIR='' ${HOST_FAKE_FLAGS} ${HOST_INSTALL_TARGET} $(MAKE_TRACE)
 	    DESTDIR='' ${HOST_FAKE_FLAGS} ${HOST_INSTALL_TARGET} $(MAKE_TRACE)
 endif
 endif
 else
 else
-	env ${HOST_MAKE_ENV} ${MAKE} hpkg-install $(MAKE_TRACE)
+	env ${HOST_MAKE_ENV} ${MAKE} host-install $(MAKE_TRACE)
 endif
 endif
 	env ${HOST_MAKE_ENV} ${MAKE} hostpost-install $(MAKE_TRACE)
 	env ${HOST_MAKE_ENV} ${MAKE} hostpost-install $(MAKE_TRACE)
 	@touch $@
 	@touch $@

+ 3 - 1
mk/host.mk

@@ -3,13 +3,14 @@
 
 
 # This is where all package operation is done in
 # This is where all package operation is done in
 ifneq (,$(findstring host,$(MAKECMDGOALS)))
 ifneq (,$(findstring host,$(MAKECMDGOALS)))
-WRKDIR?=		${WRKDIR_BASE}/w-${PKG_NAME}-${PKG_VERSION}-${PKG_RELEASE}-host
+WRKDIR?=		${HOST_BUILD_DIR}/w-${PKG_NAME}-${PKG_VERSION}-${PKG_RELEASE}-host
 endif
 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' \
 			PATH='${HOST_PATH}' \
 			PATH='${HOST_PATH}' \
+			CC='$(strip ${CC_FOR_BUILD})' \
 			CFLAGS='$(strip ${CFLAGS_FOR_BUILD})' \
 			CFLAGS='$(strip ${CFLAGS_FOR_BUILD})' \
 			CXXFLAGS='$(strip ${CXXFLAGS_FOR_BUILD})' \
 			CXXFLAGS='$(strip ${CXXFLAGS_FOR_BUILD})' \
 			CPPFLAGS='$(strip ${CPPFLAGS_FOR_BUILD})' \
 			CPPFLAGS='$(strip ${CPPFLAGS_FOR_BUILD})' \
@@ -28,6 +29,7 @@ HOST_INSTALL_TARGET?=	install
 
 
 HOST_MAKE_ENV+=		PATH='${HOST_PATH}' \
 HOST_MAKE_ENV+=		PATH='${HOST_PATH}' \
 			PKG_CONFIG_LIBDIR='${STAGING_HOST_DIR}/usr/lib/pkgconfig' \
 			PKG_CONFIG_LIBDIR='${STAGING_HOST_DIR}/usr/lib/pkgconfig' \
+			CC='$(strip ${CC_FOR_BUILD})' \
 			CFLAGS='$(strip ${CFLAGS_FOR_BUILD})' \
 			CFLAGS='$(strip ${CFLAGS_FOR_BUILD})' \
 			CXXFLAGS='$(strip ${CXXFLAGS_FOR_BUILD})' \
 			CXXFLAGS='$(strip ${CXXFLAGS_FOR_BUILD})' \
 			CPPFLAGS='$(strip ${CPPFLAGS_FOR_BUILD})' \
 			CPPFLAGS='$(strip ${CPPFLAGS_FOR_BUILD})' \

+ 20 - 15
mk/image.mk

@@ -34,6 +34,9 @@ imageprepare: image-prepare-post extra-install
 # if an extra directory exist in TOPDIR, copy all content over the 
 # if an extra directory exist in TOPDIR, copy all content over the 
 # root directory, do the same if make extra=/dir/to/extra is used
 # root directory, do the same if make extra=/dir/to/extra is used
 extra-install:
 extra-install:
+	@-if [ -h ${TARGET_DIR}/etc/resolv.conf -a -f $(TOPDIR)/extra/etc/resolv.conf ];then \
+		rm ${TARGET_DIR}/etc/resolv.conf;\
+	fi
 	@if [ -d $(TOPDIR)/extra ];then $(CP) $(TOPDIR)/extra/* ${TARGET_DIR};fi
 	@if [ -d $(TOPDIR)/extra ];then $(CP) $(TOPDIR)/extra/* ${TARGET_DIR};fi
 	@if [ ! -z $(extra) ];then $(CP) $(extra)/* ${TARGET_DIR};fi
 	@if [ ! -z $(extra) ];then $(CP) $(extra)/* ${TARGET_DIR};fi
 
 
@@ -51,22 +54,24 @@ image-prepare-post:
 	-rm -f ${TARGET_DIR}/bin/sh
 	-rm -f ${TARGET_DIR}/bin/sh
 	ln -sf ${BINSH} ${TARGET_DIR}/bin/sh
 	ln -sf ${BINSH} ${TARGET_DIR}/bin/sh
 ifeq ($(ADK_LINUX_X86_64),y)
 ifeq ($(ADK_LINUX_X86_64),y)
+ifeq ($(ADK_TARGET_ABI_32),)
 	# fixup lib dirs
 	# fixup lib dirs
 	mv ${TARGET_DIR}/lib/* ${TARGET_DIR}/${ADK_TARGET_LIBC_PATH}
 	mv ${TARGET_DIR}/lib/* ${TARGET_DIR}/${ADK_TARGET_LIBC_PATH}
 	rm -rf ${TARGET_DIR}/lib/
 	rm -rf ${TARGET_DIR}/lib/
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	-mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
 	-mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
-	mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
+	-mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
 	rm -rf ${TARGET_DIR}/usr/lib/
 	rm -rf ${TARGET_DIR}/usr/lib/
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 endif
 endif
+endif
 ifeq ($(ADK_LINUX_PPC64),y)
 ifeq ($(ADK_LINUX_PPC64),y)
 	# fixup lib dirs
 	# fixup lib dirs
 	mv ${TARGET_DIR}/lib/* ${TARGET_DIR}/${ADK_TARGET_LIBC_PATH}
 	mv ${TARGET_DIR}/lib/* ${TARGET_DIR}/${ADK_TARGET_LIBC_PATH}
 	rm -rf ${TARGET_DIR}/lib/
 	rm -rf ${TARGET_DIR}/lib/
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	-mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
 	-mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
-	mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
+	-mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
 	rm -rf ${TARGET_DIR}/usr/lib/
 	rm -rf ${TARGET_DIR}/usr/lib/
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 endif
 endif
@@ -76,7 +81,7 @@ ifeq ($(ADK_LINUX_SPARC64),y)
 	rm -rf ${TARGET_DIR}/lib/
 	rm -rf ${TARGET_DIR}/lib/
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	-mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
 	-mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
-	mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
+	-mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
 	rm -rf ${TARGET_DIR}/usr/lib/
 	rm -rf ${TARGET_DIR}/usr/lib/
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 endif
 endif
@@ -86,7 +91,7 @@ ifeq ($(ADK_TARGET_ABI_N32),y)
 	rm -rf ${TARGET_DIR}/lib/
 	rm -rf ${TARGET_DIR}/lib/
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	-mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
 	-mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
-	mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
+	-mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
 	rm -rf ${TARGET_DIR}/usr/lib/
 	rm -rf ${TARGET_DIR}/usr/lib/
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 endif
 endif
@@ -96,7 +101,7 @@ ifeq ($(ADK_TARGET_ABI_N64),y)
 	rm -rf ${TARGET_DIR}/lib/
 	rm -rf ${TARGET_DIR}/lib/
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	-mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
 	-mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
-	mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
+	-mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
 	rm -rf ${TARGET_DIR}/usr/lib/
 	rm -rf ${TARGET_DIR}/usr/lib/
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 endif
 endif
@@ -122,7 +127,7 @@ ROOTFSSQUASHFS=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGE
 ROOTFSJFFS2=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-jffs2.img
 ROOTFSJFFS2=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-jffs2.img
 ROOTFSTARBALL=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz
 ROOTFSTARBALL=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz
 ROOTFSUSERTARBALL=	${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz
 ROOTFSUSERTARBALL=	${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz
-ROOTFSISO=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.iso
+ROOTFSISO=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}.iso
 else
 else
 TARGET_KERNEL=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel
 TARGET_KERNEL=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel
 INITRAMFS=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}
 INITRAMFS=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}
@@ -130,34 +135,34 @@ ROOTFSSQUASHFS=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img
 ROOTFSJFFS2=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-jffs2.img
 ROOTFSJFFS2=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-jffs2.img
 ROOTFSTARBALL=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz
 ROOTFSTARBALL=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz
 ROOTFSUSERTARBALL=	${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz
 ROOTFSUSERTARBALL=	${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz
-ROOTFSISO=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.iso
+ROOTFSISO=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}.iso
 endif
 endif
 
 
-${FW_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} kernel-package
+${FW_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR}/.adk kernel-package
 	cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \
 	cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \
 		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
 		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
 		${STAGING_HOST_DIR}/usr/bin/cpio -o -Hustar -P | gzip -n9 >$@
 		${STAGING_HOST_DIR}/usr/bin/cpio -o -Hustar -P | gzip -n9 >$@
 
 
-${FW_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR}
+${FW_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR}/.adk
 	cd ${TARGET_DIR}; find . | grep -v ./boot/ | sed -n '/^\.\//s///p' | \
 	cd ${TARGET_DIR}; find . | grep -v ./boot/ | sed -n '/^\.\//s///p' | \
 		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
 		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
 		${STAGING_HOST_DIR}/usr/bin/cpio -o -Hustar -P | gzip -n9 >$@
 		${STAGING_HOST_DIR}/usr/bin/cpio -o -Hustar -P | gzip -n9 >$@
 
 
-${STAGING_TARGET_DIR}/${INITRAMFS}_list: ${TARGET_DIR}
-	$(BASH) ${LINUX_DIR}/scripts/gen_initramfs_list.sh -u squash -g squash \
+${STAGING_TARGET_DIR}/${INITRAMFS}_list: ${TARGET_DIR}/.adk
+	env PATH='${HOST_PATH}' $(BASH) ${LINUX_DIR}/scripts/gen_initramfs_list.sh -u squash -g squash \
 		${TARGET_DIR}/ >$@
 		${TARGET_DIR}/ >$@
 
 
 ${FW_DIR}/${INITRAMFS}: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
 ${FW_DIR}/${INITRAMFS}: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
 	${LINUX_DIR}/usr/gen_init_cpio ${STAGING_TARGET_DIR}/${INITRAMFS}_list | \
 	${LINUX_DIR}/usr/gen_init_cpio ${STAGING_TARGET_DIR}/${INITRAMFS}_list | \
 		${ADK_COMPRESSION_TOOL} -c >$@
 		${ADK_COMPRESSION_TOOL} -c >$@
 
 
-${BUILD_DIR}/root.squashfs: ${TARGET_DIR}
+${BUILD_DIR}/root.squashfs: ${TARGET_DIR}/.adk
 	${STAGING_HOST_DIR}/usr/bin/mksquashfs ${TARGET_DIR} \
 	${STAGING_HOST_DIR}/usr/bin/mksquashfs ${TARGET_DIR} \
 		${BUILD_DIR}/root.squashfs -comp xz \
 		${BUILD_DIR}/root.squashfs -comp xz \
 		-nopad -noappend -root-owned $(MAKE_TRACE)
 		-nopad -noappend -root-owned $(MAKE_TRACE)
 
 
 ${FW_DIR}/${ROOTFSJFFS2}: ${TARGET_DIR}
 ${FW_DIR}/${ROOTFSJFFS2}: ${TARGET_DIR}
-	${STAGING_HOST_DIR}/usr/bin/mkfs.jffs2 $(ADK_JFFS2_OPTS) -q -r ${TARGET_DIR} \
+	${STAGING_HOST_DIR}/usr/bin/mkfs.jffs2 $(ADK_JFFS2_OPTS) -q -X zlib -r ${TARGET_DIR} \
 		--pad=$(ADK_TARGET_MTD_SIZE) -o ${FW_DIR}/${ROOTFSJFFS2} $(MAKE_TRACE)
 		--pad=$(ADK_TARGET_MTD_SIZE) -o ${FW_DIR}/${ROOTFSJFFS2} $(MAKE_TRACE)
 
 
 createinitramfs: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
 createinitramfs: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
@@ -231,9 +236,9 @@ ${FW_DIR}/${ROOTFSISO}: ${TARGET_DIR} kernel-package
 	mkdir -p ${TARGET_DIR}/boot/syslinux
 	mkdir -p ${TARGET_DIR}/boot/syslinux
 	cp ${STAGING_HOST_DIR}/usr/share/syslinux/{isolinux.bin,ldlinux.c32} \
 	cp ${STAGING_HOST_DIR}/usr/share/syslinux/{isolinux.bin,ldlinux.c32} \
 		${TARGET_DIR}/boot/syslinux
 		${TARGET_DIR}/boot/syslinux
-	echo 'DEFAULT /boot/kernel root=/dev/sr0 init=/init' > \
+	echo 'DEFAULT /boot/kernel root=/dev/sr0' > \
 		${TARGET_DIR}/boot/syslinux/isolinux.cfg
 		${TARGET_DIR}/boot/syslinux/isolinux.cfg
-	${STAGING_HOST_DIR}/usr/bin/mkisofs -R -uid 0 -gid 0 -o $@ \
+	PATH='${HOST_PATH}' mkisofs -R -uid 0 -gid 0 -o $@ \
 		-b boot/syslinux/isolinux.bin \
 		-b boot/syslinux/isolinux.bin \
 		-c boot/syslinux/boot.cat -no-emul-boot \
 		-c boot/syslinux/boot.cat -no-emul-boot \
 		-boot-load-size 4 -boot-info-table ${TARGET_DIR}
 		-boot-load-size 4 -boot-info-table ${TARGET_DIR}

+ 1 - 0
mk/kernel-build.mk

@@ -54,6 +54,7 @@ $(LINUX_BUILD_DIR)/modules: $(LINUX_DIR)/$(KERNEL_FILE)
 		LOCALVERSION="" \
 		LOCALVERSION="" \
 		modules_install $(MAKE_TRACE)
 		modules_install $(MAKE_TRACE)
 	$(TRACE) target/$(ADK_TARGET_ARCH)-create-packages
 	$(TRACE) target/$(ADK_TARGET_ARCH)-create-packages
+	@mkdir -p ${PACKAGE_DIR}
 ifneq ($(strip $(TARGETS)),)
 ifneq ($(strip $(TARGETS)),)
 	$(MAKE) $(TARGETS)
 	$(MAKE) $(TARGETS)
 endif
 endif

+ 14 - 14
mk/kernel-ver.mk

@@ -1,20 +1,20 @@
 ifeq ($(ADK_KERNEL_VERSION_TOOLCHAIN),y)
 ifeq ($(ADK_KERNEL_VERSION_TOOLCHAIN),y)
-KERNEL_VERSION:=	3.13.6
+KERNEL_VERSION:=	3.13.7
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		445aa27da818617409982f42902a6e41
+KERNEL_MD5SUM:=		370adced5e5c1cb1d0d621c2dae2723f
 endif
 endif
-ifeq ($(ADK_KERNEL_VERSION_3_13_6),y)
-KERNEL_VERSION:=	3.13.6
+ifeq ($(ADK_KERNEL_VERSION_3_13_7),y)
+KERNEL_VERSION:=	3.13.7
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		445aa27da818617409982f42902a6e41
+KERNEL_MD5SUM:=		370adced5e5c1cb1d0d621c2dae2723f
 endif
 endif
-ifeq ($(ADK_KERNEL_VERSION_3_12_13),y)
-KERNEL_VERSION:=	3.12.13
+ifeq ($(ADK_KERNEL_VERSION_3_12_14),y)
+KERNEL_VERSION:=	3.12.14
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		345f5883cfb906dac4aef87e303d3a2d
+KERNEL_MD5SUM:=		5575e68e287605ad63d3a1444e9b701d
 endif
 endif
 ifeq ($(ADK_KERNEL_VERSION_3_11_10),y)
 ifeq ($(ADK_KERNEL_VERSION_3_11_10),y)
 KERNEL_VERSION:=	3.11.10
 KERNEL_VERSION:=	3.11.10
@@ -22,15 +22,15 @@ KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
 KERNEL_RELEASE:=	1
 KERNEL_MD5SUM:=		59f352d3f4e2cdf6755f79e09fa09176
 KERNEL_MD5SUM:=		59f352d3f4e2cdf6755f79e09fa09176
 endif
 endif
-ifeq ($(ADK_KERNEL_VERSION_3_10_33),y)
-KERNEL_VERSION:=	3.10.33
+ifeq ($(ADK_KERNEL_VERSION_3_10_34),y)
+KERNEL_VERSION:=	3.10.34
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		01865f9c129f3c7eee51e25b3781a364
+KERNEL_MD5SUM:=		30991b495a3d75196d5608072d2e62e6
 endif
 endif
-ifeq ($(ADK_KERNEL_VERSION_3_4_82),y)
-KERNEL_VERSION:=	3.4.82
+ifeq ($(ADK_KERNEL_VERSION_3_4_84),y)
+KERNEL_VERSION:=	3.4.84
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		9ee57efa65417a7a9ac931122c2b7377
+KERNEL_MD5SUM:=		b99f88ca356b5003ce44e952baa3e6a3
 endif
 endif

+ 5 - 2
mk/package.mk

@@ -178,6 +178,9 @@ $$(IDIR_$(1))/CONTROL/control: ${_PATCH_COOKIE}
 	@for file in conffiles preinst postinst prerm postrm; do \
 	@for file in conffiles preinst postinst prerm postrm; do \
 		[ ! -f ./files/$(2).$$$$file ] || cp ./files/$(2).$$$$file $$(IDIR_$(1))/CONTROL/$$$$file; \
 		[ ! -f ./files/$(2).$$$$file ] || cp ./files/$(2).$$$$file $$(IDIR_$(1))/CONTROL/$$$$file; \
 	done
 	done
+ifeq ($(ADK_RUNTIME_START_$(1)),y)
+	$(SED) "s#NO#YES#" $$(IDIR_$(1))/CONTROL/postinst
+endif
 ifneq ($(ADK_DEBUG),y)
 ifneq ($(ADK_DEBUG),y)
 	@echo "Package: $$(shell echo $(2) | tr '_' '-')-dbg" > $(WRKDIR)/.$(2)-dbg.control
 	@echo "Package: $$(shell echo $(2) | tr '_' '-')-dbg" > $(WRKDIR)/.$(2)-dbg.control
 	@echo "Section: debug" >> $(WRKDIR)/.$(2)-dbg.control
 	@echo "Section: debug" >> $(WRKDIR)/.$(2)-dbg.control
@@ -195,10 +198,10 @@ endif
 
 
 $$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $${_FAKE_COOKIE}
 $$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $${_FAKE_COOKIE}
 ifeq ($(ADK_DEBUG),)
 ifeq ($(ADK_DEBUG),)
-	$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
+	@$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
 endif
 endif
 ifeq ($(ADK_DEBUG_STRIP),y)
 ifeq ($(ADK_DEBUG_STRIP),y)
-	$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
+	@$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
 endif
 endif
 ifeq (${ADK_LEAVE_ETC_ALONE}$(filter force_etc,$(7)),y)
 ifeq (${ADK_LEAVE_ETC_ALONE}$(filter force_etc,$(7)),y)
 	-rm -rf $${IDIR_$(1)}/etc
 	-rm -rf $${IDIR_$(1)}/etc

+ 1 - 1
mk/pkg-bottom.mk

@@ -184,7 +184,7 @@ ifneq (,$(filter dev,${PKG_OPTS}))
 	done
 	done
 endif
 endif
 	@-cd ${WRKINST}; \
 	@-cd ${WRKINST}; \
-	    if [ "${PKG_NAME}" != "uClibc" -a "${PKG_NAME}" != "glibc" -a "${PKG_NAME}" != "libpthread" -a "${PKG_NAME}" != "libstdcxx" -a "${PKG_NAME}" != "libgcc" -a "${PKG_NAME}" != "libthread-db" -a "${PKG_NAME}" != "musl" -a "${PKG_NAME}" != "pam" ];then \
+	    if [ "${PKG_NAME}" != "uClibc" -a "${PKG_NAME}" != "glibc" -a "${PKG_NAME}" != "libpthread" -a "${PKG_NAME}" != "libstdcxx" -a "${PKG_NAME}" != "libgcc" -a "${PKG_NAME}" != "libthread-db" -a "${PKG_NAME}" != "musl" -a "${PKG_NAME}" != "pam" -a "${PKG_NAME}" != "tzdata" ];then \
 	    find lib \( -name lib\*.so\* -o -name lib\*.a \) \
 	    find lib \( -name lib\*.so\* -o -name lib\*.a \) \
 	    	-exec echo 'WARNING: ${PKG_NAME} installs files in /lib -' \
 	    	-exec echo 'WARNING: ${PKG_NAME} installs files in /lib -' \
 		' fix this!' >&2 \; -quit 2>/dev/null; fi;\
 		' fix this!' >&2 \; -quit 2>/dev/null; fi;\

+ 5 - 8
mk/rootfs.mk

@@ -42,18 +42,15 @@ else
 USB:=		rootdelay=2
 USB:=		rootdelay=2
 endif
 endif
 
 
-$(eval $(call rootfs_template,genext2fs,GENEXT2FS,$(ROOTFS)))
-$(eval $(call rootfs_template,cf,CF,$(ROOTFS)))
-$(eval $(call rootfs_template,mmc,MMC,$(ROOTFS)))
 $(eval $(call rootfs_template,usb,USB,$(USB)))
 $(eval $(call rootfs_template,usb,USB,$(USB)))
 $(eval $(call rootfs_template,archive,ARCHIVE,$(ROOTFS)))
 $(eval $(call rootfs_template,archive,ARCHIVE,$(ROOTFS)))
-$(eval $(call rootfs_template,initramfsarchive,INITRAMFSARCHIVE))
-$(eval $(call rootfs_template,initramfs,INITRAMFS))
-$(eval $(call rootfs_template,initramfs-piggyback,INITRAMFS_PIGGYBACK))
-$(eval $(call rootfs_template,squashfs,SQUASHFS,$(ROOTFS)))
+$(eval $(call rootfs_template,initramfsarchive,INITRAMFSARCHIVE,rootfstype=tmpfs))
+$(eval $(call rootfs_template,initramfs,INITRAMFS,rootfstype=tmpfs))
+$(eval $(call rootfs_template,initramfs-piggyback,INITRAMFS_PIGGYBACK,rootfstype=tmpfs))
+$(eval $(call rootfs_template,squashfs,SQUASHFS,$(MTDDEV) rootfstype=squashfs))
 $(eval $(call rootfs_template,yaffs,YAFFS,$(MTDDEV) panic=3))
 $(eval $(call rootfs_template,yaffs,YAFFS,$(MTDDEV) panic=3))
 $(eval $(call rootfs_template,jffs2,JFFS2,$(MTDDEV) rootfstype=jffs2))
 $(eval $(call rootfs_template,jffs2,JFFS2,$(MTDDEV) rootfstype=jffs2))
-$(eval $(call rootfs_template,nfsroot,NFSROOT,root=/dev/nfs ip=dhcp init=/init))
+$(eval $(call rootfs_template,nfsroot,NFSROOT,root=/dev/nfs ip=dhcp))
 $(eval $(call rootfs_template,encrypted,ENCRYPTED))
 $(eval $(call rootfs_template,encrypted,ENCRYPTED))
 $(eval $(call rootfs_template,iso,ISO))
 $(eval $(call rootfs_template,iso,ISO))
 
 

+ 31 - 15
mk/vars.mk

@@ -17,10 +17,10 @@ DL_DIR?=		$(BASE_DIR)/dl
 else
 else
 DL_DIR?=		$(ADK_DL_DIR)
 DL_DIR?=		$(ADK_DL_DIR)
 endif
 endif
-TOOLS_BUILD_DIR=	$(BASE_DIR)/tools_build
 SCRIPT_DIR:=		$(BASE_DIR)/scripts
 SCRIPT_DIR:=		$(BASE_DIR)/scripts
 STAGING_HOST_DIR:=	${BASE_DIR}/host_${GNU_HOST_NAME}
 STAGING_HOST_DIR:=	${BASE_DIR}/host_${GNU_HOST_NAME}
 TOOLCHAIN_DIR:=		${BASE_DIR}/toolchain_${GNU_HOST_NAME}
 TOOLCHAIN_DIR:=		${BASE_DIR}/toolchain_${GNU_HOST_NAME}
+HOST_BUILD_DIR:=	${BASE_DIR}/host_build_${GNU_HOST_NAME}
 
 
 # dirs for cleandir
 # dirs for cleandir
 FW_DIR_PFX:=		$(BASE_DIR)/firmware
 FW_DIR_PFX:=		$(BASE_DIR)/firmware
@@ -54,7 +54,7 @@ SCRIPT_TARGET_DIR:=	${STAGING_TARGET_DIR}/scripts
 
 
 # PATH variables
 # PATH variables
 TARGET_PATH=		${SCRIPT_DIR}:${STAGING_TARGET_DIR}/scripts:${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH}
 TARGET_PATH=		${SCRIPT_DIR}:${STAGING_TARGET_DIR}/scripts:${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH}
-HOST_PATH=		${SCRIPT_DIR}:${TOOLCHAIN_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH}
+HOST_PATH=		${SCRIPT_DIR}:${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH}
 AUTOTOOL_PATH=		${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${STAGING_TARGET_DIR}/scripts:${_PATH}
 AUTOTOOL_PATH=		${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${STAGING_TARGET_DIR}/scripts:${_PATH}
 
 
 ifeq ($(ADK_DISABLE_HONOUR_CFLAGS),)
 ifeq ($(ADK_DISABLE_HONOUR_CFLAGS),)
@@ -71,7 +71,7 @@ CONFIGURE_TRIPLE:=	--build=${GNU_HOST_NAME} \
 			--target=${GNU_TARGET_NAME}
 			--target=${GNU_TARGET_NAME}
 
 
 ifneq ($(strip ${ADK_USE_CCACHE}),)
 ifneq ($(strip ${ADK_USE_CCACHE}),)
-TARGET_COMPILER_PREFIX=ccache ${TARGET_CROSS}
+TARGET_COMPILER_PREFIX=$(STAGING_HOST_DIR)/usr/bin/ccache ${TARGET_CROSS}
 endif
 endif
 
 
 # target tools
 # target tools
@@ -111,23 +111,38 @@ TARGET_LDFLAGS+=	-Wl,--secure-plt
 endif
 endif
 endif
 endif
 
 
-ifneq ($(ADK_TOOLCHAIN_GCC_USE_SSP),)
+ifeq ($(ADK_STATIC),y)
+TARGET_CFLAGS+=		-static
+TARGET_CXXFLAGS+=	-static
+TARGET_LDFLAGS+=	-static
+endif
+
+ifneq ($(ADK_TOOLCHAIN_USE_SSP),)
 TARGET_CFLAGS+=		-fstack-protector
 TARGET_CFLAGS+=		-fstack-protector
 TARGET_CXXFLAGS+=	-fstack-protector
 TARGET_CXXFLAGS+=	-fstack-protector
 TARGET_LDFLAGS+=	-fstack-protector
 TARGET_LDFLAGS+=	-fstack-protector
 endif
 endif
 
 
-ifneq ($(ADK_TOOLCHAIN_GCC_USE_LTO),)
+ifneq ($(ADK_TOOLCHAIN_USE_LTO),)
 TARGET_CFLAGS+=		-flto
 TARGET_CFLAGS+=		-flto
 TARGET_CXXFLAGS+=	-flto
 TARGET_CXXFLAGS+=	-flto
 TARGET_LDFLAGS+=	-flto
 TARGET_LDFLAGS+=	-flto
 endif
 endif
 
 
+ifeq ($(ADK_LINUX_MICROBLAZE),y)
+TARGET_CFLAGS+=		-mxl-barrel-shift
+TARGET_CXX_FLAGS+=	-mxl-barrel-shift
+endif
+
 ifneq ($(ADK_DEBUG),)
 ifneq ($(ADK_DEBUG),)
-TARGET_CFLAGS+=		-g3 -fno-omit-frame-pointer
+ifeq ($(ADK_DEBUG_OPTS),y)
+TARGET_CFLAGS+=		-g3 -fno-omit-frame-pointer $(ADK_TARGET_CFLAGS_OPT)
+else
+TARGET_CFLAGS+=		-O0 -g3 -fno-omit-frame-pointer
+endif
 else
 else
 TARGET_CPPFLAGS+=	-DNDEBUG
 TARGET_CPPFLAGS+=	-DNDEBUG
-TARGET_CFLAGS+=		-fomit-frame-pointer $(TARGET_OPTIMIZATION)
+TARGET_CFLAGS+=		-fomit-frame-pointer $(ADK_TARGET_CFLAGS_OPT)
 # stop generating eh_frame stuff
 # stop generating eh_frame stuff
 TARGET_CFLAGS+=		-fno-unwind-tables -fno-asynchronous-unwind-tables
 TARGET_CFLAGS+=		-fno-unwind-tables -fno-asynchronous-unwind-tables
 # always add debug information
 # always add debug information
@@ -178,9 +193,10 @@ TARGET_CONFIGURE_OPTS=	PATH='${TARGET_PATH}' \
 			CROSS_COMPILE='$(TARGET_CROSS)'
 			CROSS_COMPILE='$(TARGET_CROSS)'
 
 
 HOST_CONFIGURE_OPTS=	CC_FOR_BUILD='${CC_FOR_BUILD}' \
 HOST_CONFIGURE_OPTS=	CC_FOR_BUILD='${CC_FOR_BUILD}' \
-			CPPFLAGS_FOR_BUILD='${CPPFLAGS_FOR_BUILD}' \
 			CXX_FOR_BUILD='${CXX_FOR_BUILD}' \
 			CXX_FOR_BUILD='${CXX_FOR_BUILD}' \
+			CPPFLAGS_FOR_BUILD='${CPPFLAGS_FOR_BUILD}' \
 			CFLAGS_FOR_BUILD='${CFLAGS_FOR_BUILD}' \
 			CFLAGS_FOR_BUILD='${CFLAGS_FOR_BUILD}' \
+			CXXFLAGS_FOR_BUILD='${CXXFLAGS_FOR_BUILD}' \
 			LDFLAGS_FOR_BUILD='${LDFLAGS_FOR_BUILD}'
 			LDFLAGS_FOR_BUILD='${LDFLAGS_FOR_BUILD}'
 
 
 PKG_SUFFIX:=		$(strip $(subst ",, $(ADK_PACKAGE_SUFFIX)))
 PKG_SUFFIX:=		$(strip $(subst ",, $(ADK_PACKAGE_SUFFIX)))
@@ -207,25 +223,25 @@ RSTRIP:=		PATH="$(TARGET_PATH)" prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/r
 
 
 STATCMD:=$(shell if stat -qs .>/dev/null 2>&1; then echo 'stat -f %z';else echo 'stat -c %s';fi)
 STATCMD:=$(shell if stat -qs .>/dev/null 2>&1; then echo 'stat -f %z';else echo 'stat -c %s';fi)
 	
 	
-EXTRACT_CMD=		mkdir -p ${WRKDIR}; \
+EXTRACT_CMD=		PATH='${HOST_PATH}'; mkdir -p ${WRKDIR}; \
 			cd ${WRKDIR} && \
 			cd ${WRKDIR} && \
 			for file in ${FULLDISTFILES}; do case $$file in \
 			for file in ${FULLDISTFILES}; do case $$file in \
 			*.cpio) \
 			*.cpio) \
-				cat $$file | $(STAGING_HOST_DIR)/usr/bin/cpio -i -d ;; \
+				cat $$file | cpio -i -d ;; \
 			*.tar) \
 			*.tar) \
 				tar -xf $$file ;; \
 				tar -xf $$file ;; \
 			*.cpio.Z | *.cpio.gz | *.cgz | *.mcz) \
 			*.cpio.Z | *.cpio.gz | *.cgz | *.mcz) \
-				gzip -dc $$file | $(STAGING_HOST_DIR)/usr/bin/cpio -i -d ;; \
+				gzip -dc $$file | cpio -i -d ;; \
 			*.tar.xz | *.txz) \
 			*.tar.xz | *.txz) \
-				$(STAGING_HOST_DIR)/usr/bin/xz -dc $$file | tar -xf - ;; \
+				xz -dc $$file | tar -xf - ;; \
 			*.tar.Z | *.tar.gz | *.taz | *.tgz) \
 			*.tar.Z | *.tar.gz | *.taz | *.tgz) \
 				gzip -dc $$file | tar -xf - ;; \
 				gzip -dc $$file | tar -xf - ;; \
 			*.cpio.bz2 | *.cbz) \
 			*.cpio.bz2 | *.cbz) \
-				$(STAGING_HOST_DIR)/usr/bin/bzip2 -dc $$file | $(STAGING_HOST_DIR)/usr/bin/cpio -i -d ;; \
+				bzip2 -dc $$file | cpio -i -d ;; \
 			*.tar.bz2 | *.tbz | *.tbz2) \
 			*.tar.bz2 | *.tbz | *.tbz2) \
-				$(STAGING_HOST_DIR)/usr/bin/bzip2 -dc $$file | tar -xf - ;; \
+				bzip2 -dc $$file | tar -xf - ;; \
 			*.zip) \
 			*.zip) \
-				cat $$file | $(STAGING_HOST_DIR)/usr/bin/cpio -ivd -H zip ;; \
+				cat $$file | cpio -ivd -H zip ;; \
 			*.arm) \
 			*.arm) \
 				cp $$file ${WRKDIR} ;; \
 				cp $$file ${WRKDIR} ;; \
 			*) \
 			*) \

+ 2 - 0
package/Makefile

@@ -28,11 +28,13 @@ include $(TOPDIR)/package/Depends.mk
 DOWNLOAD:=$(patsubst %,%-download,$(package-y) $(package-m))
 DOWNLOAD:=$(patsubst %,%-download,$(package-y) $(package-m))
 REBUILD_PACKAGES:=$(patsubst %,%-rebuild,$(package-y) $(package-m))
 REBUILD_PACKAGES:=$(patsubst %,%-rebuild,$(package-y) $(package-m))
 COMPILE_PACKAGES:=$(patsubst %,%-compile,$(package-y) $(package-m))
 COMPILE_PACKAGES:=$(patsubst %,%-compile,$(package-y) $(package-m))
+HOST_COMPILE_PACKAGES:=$(patsubst %,%-host-compile,$(hostpackage-y))
 INSTALL_PACKAGES:=$(patsubst %,%-install,$(package-y))
 INSTALL_PACKAGES:=$(patsubst %,%-install,$(package-y))
 
 
 all: compile
 all: compile
 download: $(DOWNLOAD)
 download: $(DOWNLOAD)
 clean: $(patsubst %,%-clean,$(package-) $(package-y) $(package-m) base-files)
 clean: $(patsubst %,%-clean,$(package-) $(package-y) $(package-m) base-files)
+hostcompile: $(HOST_COMPILE_PACKAGES)
 ifeq ($(ADK_TOOLCHAIN_ONLY),y)
 ifeq ($(ADK_TOOLCHAIN_ONLY),y)
 compile: $(REBUILD_PACKAGES) $(COMPILE_PACKAGES)
 compile: $(REBUILD_PACKAGES) $(COMPILE_PACKAGES)
 install: $(INSTALL_PACKAGES)
 install: $(INSTALL_PACKAGES)

+ 33 - 0
package/adk-helper/Makefile

@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:=		adk-helper
+PKG_VERSION:=		1.0
+PKG_RELEASE:=		1
+PKG_DESCR:=		adk helper utilities
+PKG_SECTION:=		misc
+
+PKG_CFLINE_ADK_HELPER:=	depends on ADK_HOST_ONLY
+
+NO_DISTFILES:=		1
+
+include ${TOPDIR}/mk/host.mk
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call HOST_template,ADK_HELPER,adk-helper,${PKG_VERSION}-${PKG_RELEASE}))
+
+HOST_STYLE:=		manual
+
+host-build:
+	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -o ${WRKBUILD}/mkcrypt ${WRKBUILD}/mkcrypt.c
+	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -o ${WRKBUILD}/dkgetsz ${WRKBUILD}/dkgetsz.c
+
+adk-helper-hostinstall:
+	${INSTALL_DIR} ${STAGING_HOST_DIR}/usr/bin
+	${INSTALL_BIN} ${WRKBUILD}/mkcrypt ${STAGING_HOST_DIR}/usr/bin
+	${INSTALL_BIN} ${WRKBUILD}/dkgetsz ${STAGING_HOST_DIR}/usr/bin
+
+include ${TOPDIR}/mk/host-bottom.mk
+include ${TOPDIR}/mk/pkg-bottom.mk

+ 0 - 0
tools/adk/dkgetsz.c → package/adk-helper/src/dkgetsz.c


+ 0 - 0
tools/mkcrypt/mkcrypt.c → package/adk-helper/src/mkcrypt.c


+ 1 - 1
package/adk-test-tools/Makefile

@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=		adk-test-tools
 PKG_NAME:=		adk-test-tools
 PKG_VERSION:=		0.1
 PKG_VERSION:=		0.1
-PKG_RELEASE:=		3
+PKG_RELEASE:=		6
 PKG_DESCR:=		helper tools and scripts for adk-test-framework
 PKG_DESCR:=		helper tools and scripts for adk-test-framework
 PKG_SECTION:=		misc
 PKG_SECTION:=		misc
 PKG_URL:=		http://openadk.org/
 PKG_URL:=		http://openadk.org/

+ 6 - 0
package/adk-test-tools/files/test.init

@@ -2,7 +2,13 @@
 #PKG adk-test-tools
 #PKG adk-test-tools
 #INIT 90
 #INIT 90
 [[ $1 = autostart ]] || exit 0
 [[ $1 = autostart ]] || exit 0
+echo "Setting time via network ..."
+rdate -nv pool.ntp.org
 echo "Starting test script ..."
 echo "Starting test script ..."
+grep shell /proc/cmdline > /dev/null 2&>1
+if [ $? -eq 0 ];then
+	exit 0
+fi
 if [ -x /run.sh ];then
 if [ -x /run.sh ];then
 	/run.sh
 	/run.sh
 	quit
 	quit

+ 1 - 1
package/asterisk/Makefile

@@ -105,7 +105,7 @@ TARGET_LDFLAGS+=	-lm -ltinfo -ldl -lpthread
 MAKE_ENV=		ASTCFLAGS="${TARGET_CPPFLAGS} -DHAVE_STRTOQ" \
 MAKE_ENV=		ASTCFLAGS="${TARGET_CPPFLAGS} -DHAVE_STRTOQ" \
 			ASTLDFLAGS="${TARGET_LDFLAGS}"
 			ASTLDFLAGS="${TARGET_LDFLAGS}"
 MAKE_FLAGS+=		DESTDIR="$(WRKINST)" \
 MAKE_FLAGS+=		DESTDIR="$(WRKINST)" \
-			OPTIMIZE="${TARGET_OPTIMIZATION}" \
+			OPTIMIZE="${TARGET_CFLAGS}" \
 			NOISY_BUILD=1
 			NOISY_BUILD=1
 ALL_TARGET:=		all install samples
 ALL_TARGET:=		all install samples
 
 

+ 1 - 1
package/avahi/Makefile

@@ -61,7 +61,7 @@ CONFIGURE_ARGS+=	--enable-glib \
 			--with-avahi-user=avahi \
 			--with-avahi-user=avahi \
 			--with-avahi-group=avahi
 			--with-avahi-group=avahi
 
 
-ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y)
+ifeq ($(ADK_TOOLCHAIN_USE_SSP),y)
 CONFIGURE_ARGS+=	--enable-stack-protector
 CONFIGURE_ARGS+=	--enable-stack-protector
 else
 else
 CONFIGURE_ARGS+=	--disable-stack-protector
 CONFIGURE_ARGS+=	--disable-stack-protector

+ 18 - 18
package/base-files/Makefile

@@ -6,10 +6,9 @@ include $(TOPDIR)/mk/rootfs.mk
 
 
 PKG_NAME:=		base-files
 PKG_NAME:=		base-files
 PKG_VERSION:=		1.0
 PKG_VERSION:=		1.0
-PKG_RELEASE:=		74
+PKG_RELEASE:=		82
 PKG_SECTION:=		base
 PKG_SECTION:=		base
 PKG_DESCR:=		basic files and scripts
 PKG_DESCR:=		basic files and scripts
-PKG_BUILDDEP:=		pkgconf-host file-host
 
 
 WRKDIST=		${WRKDIR}/base-files
 WRKDIST=		${WRKDIR}/base-files
 NO_DISTFILES:=		1
 NO_DISTFILES:=		1
@@ -27,11 +26,19 @@ do-install:
 ifeq (${ADK_TARGET_ROOTFS_NFSROOT},y)
 ifeq (${ADK_TARGET_ROOTFS_NFSROOT},y)
 	@echo "#" > $(IDIR_BASE_FILES)/etc/network/interfaces
 	@echo "#" > $(IDIR_BASE_FILES)/etc/network/interfaces
 endif
 endif
+ifeq (${ADK_TARGET_PACKAGE_IPKG},y)
 	$(SED) 's,@ARCH@,$(ADK_TARGET_CPU_ARCH),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
 	$(SED) 's,@ARCH@,$(ADK_TARGET_CPU_ARCH),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
 	$(SED) 's,@SYSTEM@,$(ADK_TARGET_SYSTEM),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
 	$(SED) 's,@SYSTEM@,$(ADK_TARGET_SYSTEM),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
 	$(SED) 's,@LIBC@,$(ADK_TARGET_LIBC),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
 	$(SED) 's,@LIBC@,$(ADK_TARGET_LIBC),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
+ifneq ($(ADK_TARGET_ABI),)
+	$(SED) 's,@ABI@,_$(ADK_TARGET_ABI),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
+else
+	$(SED) 's,@ABI@,,g' $(IDIR_BASE_FILES)/etc/ipkg.conf
+endif
 	$(SED) 's,@HOST@,$(ADK_HOST),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
 	$(SED) 's,@HOST@,$(ADK_HOST),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
 	$(SED) 's,@VENDOR@,$(ADK_VENDOR),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
 	$(SED) 's,@VENDOR@,$(ADK_VENDOR),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
+	mkdir -p $(IDIR_BASE_FILES)/usr/lib/ipkg/lists
+endif
 	echo /bin/sh >${IDIR_BASE_FILES}/etc/shells
 	echo /bin/sh >${IDIR_BASE_FILES}/etc/shells
 	echo /bin/mksh >>${IDIR_BASE_FILES}/etc/shells
 	echo /bin/mksh >>${IDIR_BASE_FILES}/etc/shells
 ifneq (${ADK_PACKAGE_ASH},)
 ifneq (${ADK_PACKAGE_ASH},)
@@ -43,14 +50,13 @@ endif
 ifneq (${ADK_PACKAGE_ZSH},)
 ifneq (${ADK_PACKAGE_ZSH},)
 	echo /bin/zsh >>${IDIR_BASE_FILES}/etc/shells
 	echo /bin/zsh >>${IDIR_BASE_FILES}/etc/shells
 endif
 endif
-	mkdir -p $(IDIR_BASE_FILES)/usr/lib/ipkg/lists
 	mkdir -p $(IDIR_BASE_FILES)/etc/crontabs
 	mkdir -p $(IDIR_BASE_FILES)/etc/crontabs
 	mkdir -p $(IDIR_BASE_FILES)/{dev,boot,root,sys,proc,tmp,mnt}
 	mkdir -p $(IDIR_BASE_FILES)/{dev,boot,root,sys,proc,tmp,mnt}
 	mkdir -p $(IDIR_BASE_FILES)/etc/network/{if-pre-up.d,if-up.d,if-down.d,if-post-down.d}
 	mkdir -p $(IDIR_BASE_FILES)/etc/network/{if-pre-up.d,if-up.d,if-down.d,if-post-down.d}
 	mkdir -p $(IDIR_BASE_FILES)/usr/{lib,bin}
 	mkdir -p $(IDIR_BASE_FILES)/usr/{lib,bin}
-	chmod 755 $(IDIR_BASE_FILES)/lib/mdev/init
 	chmod 600 $(IDIR_BASE_FILES)/etc/shadow
 	chmod 600 $(IDIR_BASE_FILES)/etc/shadow
 	chmod 600 $(IDIR_BASE_FILES)/etc/network/interfaces
 	chmod 600 $(IDIR_BASE_FILES)/etc/network/interfaces
+	(cd $(IDIR_BASE_FILES)/etc; ln -sf ../tmp/resolv.conf .)
 	chmod 1777 ${IDIR_BASE_FILES}/tmp
 	chmod 1777 ${IDIR_BASE_FILES}/tmp
 	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
@@ -61,7 +67,7 @@ endif
 	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
 	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
 	test -z $(ADK_RUNTIME_GETTY_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
-	$(SED) 's#@DEVICE@#$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)#' $(IDIR_BASE_FILES)/etc/inittab
+	$(SED) 's#@DEVICE@#$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)#g' $(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; \
@@ -71,7 +77,8 @@ endif
 	test -z $(ADK_RUNTIME_PASSWORD) || \
 	test -z $(ADK_RUNTIME_PASSWORD) || \
 	    $(SED) 's,\*NP\*,'"$$($(STAGING_HOST_DIR)/usr/bin/mkcrypt \
 	    $(SED) 's,\*NP\*,'"$$($(STAGING_HOST_DIR)/usr/bin/mkcrypt \
 	    ${ADK_RUNTIME_PASSWORD}),g" $(IDIR_BASE_FILES)/etc/shadow
 	    ${ADK_RUNTIME_PASSWORD}),g" $(IDIR_BASE_FILES)/etc/shadow
-	git log -1|head -1|sed -e 's#commit ##' \
+	test -z $(GIT) || \
+	     $(GIT) log -1|head -1|sed -e 's#commit ##' \
 		> $(IDIR_BASE_FILES)/etc/adkversion
 		> $(IDIR_BASE_FILES)/etc/adkversion
 	test -z $(ADK_TARGET_SYSTEM) || \
 	test -z $(ADK_TARGET_SYSTEM) || \
 	    echo $(ADK_TARGET_SYSTEM) > $(IDIR_BASE_FILES)/etc/adktarget
 	    echo $(ADK_TARGET_SYSTEM) > $(IDIR_BASE_FILES)/etc/adktarget
@@ -80,23 +87,20 @@ ifneq (${ADK_PACKAGE_CONFIG_IN_ETC},)
 	gzip -9c ${TOPDIR}/.config >$(IDIR_BASE_FILES)/etc/adkconfig.gz
 	gzip -9c ${TOPDIR}/.config >$(IDIR_BASE_FILES)/etc/adkconfig.gz
 	chmod 600 $(IDIR_BASE_FILES)/etc/adkconfig.gz
 	chmod 600 $(IDIR_BASE_FILES)/etc/adkconfig.gz
 endif
 endif
-ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
-	echo 'export LD_LIBRARY_PATH=/opt/vc/lib' >> $(IDIR_BASE_FILES)/etc/profile
-ifneq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI)$(ADK_TARGET_SYSTEM_IBM_X40)$(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),)
+ifeq ($(ADK_TARGET_WITH_ROOT_RW),y)
 	echo 'export IPKGTMPDIR=/root/.ipkg' >> $(IDIR_BASE_FILES)/etc/profile
 	echo 'export IPKGTMPDIR=/root/.ipkg' >> $(IDIR_BASE_FILES)/etc/profile
 else
 else
-	echo 'export IPKGTMPDIR=/tmp >> $(IDIR_BASE_FILES)/etc/profile
+	echo 'export IPKGTMPDIR=/tmp' >> $(IDIR_BASE_FILES)/etc/profile
 endif
 endif
-
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
+	echo 'export LD_LIBRARY_PATH=/opt/vc/lib' >> $(IDIR_BASE_FILES)/etc/profile
 endif
 endif
 
 
 # simple network configuration
 # simple network configuration
 ifneq (${ADK_SIMPLE_NETWORK_CONFIG},)
 ifneq (${ADK_SIMPLE_NETWORK_CONFIG},)
 	${INSTALL_DIR} ${IDIR_BASE_FILES}/etc/network
 	${INSTALL_DIR} ${IDIR_BASE_FILES}/etc/network
-
 	# network config local
 	# network config local
 	echo -e "auto lo\niface lo inet loopback" > ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "auto lo\niface lo inet loopback" > ${IDIR_BASE_FILES}/etc/network/interfaces
-
 	# network config eth0
 	# network config eth0
 	# configure nic with dhcp
 	# configure nic with dhcp
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC},y)
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC},y)
@@ -123,12 +127,10 @@ ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE_IP},y)
 	echo -e "  broadcast ${SIMPLE_NETWORK_CONFIG_ETH0_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  broadcast ${SIMPLE_NETWORK_CONFIG_ETH0_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 endif
 endif
-
 	# network config wlan0
 	# network config wlan0
 ifeq (${SIMPLE_NETWORK_CONFIG_WLAN0_TYPE_NIC},y)
 ifeq (${SIMPLE_NETWORK_CONFIG_WLAN0_TYPE_NIC},y)
 	echo -e "\nauto wlan0\niface wlan0 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "\nauto wlan0\niface wlan0 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 endif
 endif
-
 	# network config eth1
 	# network config eth1
 	# configure nic with dhcp
 	# configure nic with dhcp
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC},y)
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC},y)
@@ -155,13 +157,11 @@ ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE_IP},y)
 	echo -e "  broadcast ${SIMPLE_NETWORK_CONFIG_ETH1_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  broadcast ${SIMPLE_NETWORK_CONFIG_ETH1_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH1_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH1_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 endif
 endif
-
 	# newline at the end of interfaces file
 	# newline at the end of interfaces file
 	echo -en "\n" >>  ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -en "\n" >>  ${IDIR_BASE_FILES}/etc/network/interfaces
-
 	# resolver config
 	# resolver config
+	rm ${IDIR_BASE_FILES}/etc/resolv.conf
 	echo -e "nameserver ${SIMPLE_NETWORK_CONFIG_RESOLV}" > ${IDIR_BASE_FILES}/etc/resolv.conf
 	echo -e "nameserver ${SIMPLE_NETWORK_CONFIG_RESOLV}" > ${IDIR_BASE_FILES}/etc/resolv.conf
 endif
 endif
 
 
-
 include ${TOPDIR}/mk/pkg-bottom.mk
 include ${TOPDIR}/mk/pkg-bottom.mk

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

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

+ 3 - 5
package/base-files/src/etc/init.d/boot

@@ -4,10 +4,6 @@
 
 
 . /etc/functions.sh
 . /etc/functions.sh
 
 
-if [ -f /proc/sys/kernel/printk ];then
-	echo 0 > /proc/sys/kernel/printk
-fi
-
 # remount /dev with smaller size
 # remount /dev with smaller size
 mount -o remount,nosuid,size=128k,mode=0755 -t tmpfs mdev /dev
 mount -o remount,nosuid,size=128k,mode=0755 -t tmpfs mdev /dev
 
 
@@ -19,6 +15,8 @@ mount -o remount,nosuid,nodev,mode=1777,size=${size}k -t tmpfs tmpfs /tmp
 # start mdev dynamic device node management
 # start mdev dynamic device node management
 echo >/dev/mdev.seq
 echo >/dev/mdev.seq
 echo "/sbin/mdev" >/proc/sys/kernel/hotplug
 echo "/sbin/mdev" >/proc/sys/kernel/hotplug
+# creates f.e. /dev/root
+mdev -s
 
 
 # seed some random
 # seed some random
 cat /etc/.rnd >/dev/urandom 2>&1
 cat /etc/.rnd >/dev/urandom 2>&1
@@ -29,9 +27,9 @@ cat /etc/.rnd >/dev/urandom 2>&1
 # create some useful directories in tmpfs
 # create some useful directories in tmpfs
 mkdir -p /var/log
 mkdir -p /var/log
 mkdir -p /var/run
 mkdir -p /var/run
+mkdir -p /var/tmp
 touch /var/log/lastlog
 touch /var/log/lastlog
 touch /var/log/wtmp
 touch /var/log/wtmp
-ln -s /tmp /var/tmp
 
 
 HOSTNAME=
 HOSTNAME=
 [[ -s /etc/hostname ]] && HOSTNAME=$(cat /etc/hostname)
 [[ -s /etc/hostname ]] && HOSTNAME=$(cat /etc/hostname)

+ 19 - 39
package/base-files/src/etc/init.d/fs

@@ -8,46 +8,26 @@
 # activate any logical volumes
 # activate any logical volumes
 [ -x /usr/sbin/lvm ] && { lvm vgscan; lvm vgchange -ay; }
 [ -x /usr/sbin/lvm ] && { lvm vgscan; lvm vgchange -ay; }
 
 
+fstypes="ext2 ext3 ext4 xfs"
+
 # filesystem checks
 # filesystem checks
-[ -x /sbin/fsck.ext2 ] && {
-	for i in $(grep -v "^#" /etc/fstab|grep ext2|awk '{ print $1}');do fsck.ext2 $i;done;
-}
-[ -x /sbin/fsck.ext3 ] && {
-	for i in $(grep -v "^#" /etc/fstab|grep ext3|awk '{ print $1}');do fsck.ext3 $i;done;
-}
-[ -x /sbin/fsck.ext4 ] && {
-	for i in $(grep -v "^#" /etc/fstab|grep ext4|awk '{ print $1}');do fsck.ext4 $i;done;
-}
-[ -x /sbin/fsck.xfs ] && {
-	for i in $(grep -v "^#" /etc/fstab|grep xfs|awk '{ print $1}');do xfs_repair $i;done;
-}
-# local filesystems
-grep ext2 /proc/filesystems  >/dev/null 2>&1
-if [ $? -eq 0 ];then
-	grep -v "^#" /etc/fstab |grep ext2 >/dev/null 2>&1
-	if [ $? -eq 0 ];then
-		mount -a -t ext2
-	fi
-fi
-grep ext3 /proc/filesystems  >/dev/null 2>&1
-if [ $? -eq 0 ];then
-	grep -v "^#" /etc/fstab |grep ext3 >/dev/null 2>&1
-	if [ $? -eq 0 ];then
-		mount -a -t ext3
-	fi
-fi
-grep ext4 /proc/filesystems  >/dev/null 2>&1
-if [ $? -eq 0 ];then
-	grep -v "^#" /etc/fstab |grep ext4 >/dev/null 2>&1
-	if [ $? -eq 0 ];then
-		mount -a -t ext4
-	fi
-fi
-grep xfs /proc/filesystems  >/dev/null 2>&1
-if [ $? -eq 0 ];then
-	grep -v "^#" /etc/fstab |grep xfs >/dev/null 2>&1
+for fs in $fstypes; do
+	[ -x /usr/sbin/fsck.$fs ] && {
+		for i in $(grep -v "^#" /etc/fstab|grep $fs|awk '{ print $1}');do 
+			echo "Checking filesystem on $i with $fs"
+			fsck -p -t $fs $i
+		done
+	}
+done
+
+# mount local filesystems
+for fs in $fstypes; do
+	grep $fs /proc/filesystems >/dev/null 2>&1
 	if [ $? -eq 0 ];then
 	if [ $? -eq 0 ];then
-		mount -a -t xfs
+		grep -v "^#" /etc/fstab |grep $fs >/dev/null 2>&1
+		if [ $? -eq 0 ];then
+			mount -a -t $fs
+		fi
 	fi
 	fi
-fi
+done
 exit 0
 exit 0

+ 1 - 1
package/base-files/src/etc/inittab

@@ -6,5 +6,5 @@ null::sysinit:/bin/mount -a -t devpts
 null::sysinit:/bin/mount -a -t tmpfs
 null::sysinit:/bin/mount -a -t tmpfs
 ::sysinit:/etc/init.d/rcS
 ::sysinit:/etc/init.d/rcS
 ::shutdown:/etc/init.d/rcK
 ::shutdown:/etc/init.d/rcK
-null::shutdown:/bin/umount -a -r
+null::shutdown:/bin/umount -a -t ext4
 null::shutdown:/sbin/swapoff -a
 null::shutdown:/sbin/swapoff -a

+ 1 - 1
package/base-files/src/etc/ipkg.conf

@@ -1,3 +1,3 @@
-src @VENDOR@ http://@HOST@/@SYSTEM@_@ARCH@_@LIBC@/packages
+src @VENDOR@ http://@HOST@/pkg/@SYSTEM@_@ARCH@_@LIBC@@ABI@/packages
 dest root /
 dest root /
 dest ram /tmp
 dest ram /tmp

+ 0 - 1
package/base-files/src/etc/mdev.conf

@@ -15,4 +15,3 @@ snd/controlC0 root:audio 660
 snd/pcmC0D0c root:audio 660
 snd/pcmC0D0c root:audio 660
 snd/pcmC0D0p root:audio 660
 snd/pcmC0D0p root:audio 660
 msr0 root:root 660 @(mkdir -p /dev/cpu/0 && ln -sf /dev/msr0 /dev/cpu/0/msr)
 msr0 root:root 660 @(mkdir -p /dev/cpu/0 && ln -sf /dev/msr0 /dev/cpu/0/msr)
-.* 0:0 644 @/lib/mdev/init

+ 0 - 27
package/base-files/src/lib/mdev/init

@@ -1,27 +0,0 @@
-#!/bin/sh
-if [ "$SUBSYSTEM" == "pcmcia_socket" ];then
-	logger "Setting up PCMCIA socket resource database"
-	if [ "$ACTION" == "add" ];then
-		/usr/sbin/pcmcia-socket-startup
-	fi
-fi
-if [ "$SUBSYSTEM" == "usb" ];then
-        if [ "$ACTION" == "add" ];then
-                if [ "$DEVTYPE" == "usb_device" ];then
-                        if [ "$PRODUCT" == "12d1/1003/0" ];then
-				if [ ! -f /tmp/.huawei ];then
-                        		logger "USB device added with: $PRODUCT"
-					usbmods=$(lsmod|grep ^usbserial|awk '{ print $4 }'|sed -e 's/,/ /g')
-					for i in $usbmods;do rmmod $i;done
-					rmmod usbserial
-					lsmod >> /tmp/debug
-                                	test -x /sbin/huawei && /sbin/huawei >> /tmp/debug
-					insmod /lib/modules/$(uname -r)/usbserial.ko product=0x1003 vendor=0x12d1
-					for i in $usbmods;do insmod /lib/modules/$(uname -r)/$i.ko; done
-					
-					touch /tmp/.huawei
-				fi
-                        fi
-                fi
-        fi
-fi

+ 0 - 4
package/base-files/src/usr/share/udhcpc/default.script

@@ -23,16 +23,12 @@ case $1 in
 			ip route add to default via $i
 			ip route add to default via $i
 		done
 		done
 	fi
 	fi
-
-	touch /tmp/resolv.conf
-	ln -sf /tmp/resolv.conf $RESOLV_CONF
 	echo -n >$RESOLV_CONF
 	echo -n >$RESOLV_CONF
 	${domain:+echo search $domain} >>$RESOLV_CONF
 	${domain:+echo search $domain} >>$RESOLV_CONF
 	for i in $dns; do
 	for i in $dns; do
 		echo "adding dns $i"
 		echo "adding dns $i"
 		echo "nameserver $i" >>$RESOLV_CONF
 		echo "nameserver $i" >>$RESOLV_CONF
 	done
 	done
-
 	# user rules
 	# user rules
 	[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user
 	[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user
 ;;
 ;;

+ 3 - 3
package/bash/Makefile

@@ -4,9 +4,9 @@
 include $(TOPDIR)/rules.mk
 include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=		bash
 PKG_NAME:=		bash
-PKG_VERSION:=		4.2
-PKG_RELEASE:=		2
-PKG_MD5SUM:=		3fb927c7c33022f1c327f14a81c0d4b0
+PKG_VERSION:=		4.3
+PKG_RELEASE:=		1
+PKG_MD5SUM:=		81348932d5da294953e15d4814c74dd1
 PKG_DESCR:=		Bourne-Again SHell
 PKG_DESCR:=		Bourne-Again SHell
 PKG_SECTION:=		shells
 PKG_SECTION:=		shells
 PKG_URL:=		http://www.gnu.org/software/bash/
 PKG_URL:=		http://www.gnu.org/software/bash/

+ 0 - 13
package/bash/patches/patch-Makefile_in

@@ -1,13 +0,0 @@
---- bash-4.2.orig/Makefile.in	2010-12-01 01:22:42.000000000 +0100
-+++ bash-4.2/Makefile.in	2011-03-09 20:03:07.163370779 +0100
-@@ -710,8 +710,8 @@ pathnames.h:		Makefile $(srcdir)/pathnam
- 	@${RM} pathnames.tmp
- 
- # comment out for distribution
--$(srcdir)/configure:	$(srcdir)/configure.in $(srcdir)/aclocal.m4 $(srcdir)/config.h.in
--	cd $(srcdir) && autoconf
-+#$(srcdir)/configure:	$(srcdir)/configure.in $(srcdir)/aclocal.m4 $(srcdir)/config.h.in
-+#	cd $(srcdir) && autoconf
- 
- # for chet
- reconfig: force

+ 0 - 11
package/bash/patches/patch-builtins_Makefile_in

@@ -1,11 +0,0 @@
---- bash-4.0.orig/builtins/Makefile.in	2009-01-04 20:32:22.000000000 +0100
-+++ bash-4.0/builtins/Makefile.in	2009-10-21 13:17:04.681674304 +0200
-@@ -56,7 +56,7 @@ LIBBUILD = ${BUILD_DIR}/lib
- 
- PROFILE_FLAGS = @PROFILE_FLAGS@
- CFLAGS = @CFLAGS@
--CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ @CROSS_COMPILE@
-+CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
- CPPFLAGS = @CPPFLAGS@
- CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
- LOCAL_CFLAGS = @LOCAL_CFLAGS@ ${DEBUG}

+ 6 - 1
package/bc/Makefile

@@ -7,7 +7,7 @@ PKG_NAME:=		bc
 PKG_VERSION:=		1.06
 PKG_VERSION:=		1.06
 PKG_RELEASE:=		1
 PKG_RELEASE:=		1
 PKG_MD5SUM:=		d44b5dddebd8a7a7309aea6c36fda117
 PKG_MD5SUM:=		d44b5dddebd8a7a7309aea6c36fda117
-PKG_DESCR:=		An arbitrary precision calculator language
+PKG_DESCR:=		arbitrary precision calculator language
 PKG_SECTION:=		utils
 PKG_SECTION:=		utils
 PKG_BUILDDEP:=		m4-host flex-host
 PKG_BUILDDEP:=		m4-host flex-host
 PKG_URL:=		http://www.gnu.org/software/bc/
 PKG_URL:=		http://www.gnu.org/software/bc/
@@ -15,11 +15,15 @@ PKG_SITES:=		http://ftp.gnu.org/pub/gnu/bc/
 
 
 PKG_SUBPKGS:=		BC DC
 PKG_SUBPKGS:=		BC DC
 
 
+include ${TOPDIR}/mk/host.mk
 include ${TOPDIR}/mk/package.mk
 include ${TOPDIR}/mk/package.mk
 
 
+$(eval $(call HOST_template,BC,bc,${PKG_VERSION}-${PKG_RELEASE}))
 $(eval $(call PKG_template,BC,bc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 $(eval $(call PKG_template,BC,bc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 $(eval $(call PKG_template,DC,dc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 $(eval $(call PKG_template,DC,dc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 
 
+HOST_STYLE:=		auto
+
 bc-install:
 bc-install:
 	${INSTALL_DIR} ${IDIR_BC}/usr/bin
 	${INSTALL_DIR} ${IDIR_BC}/usr/bin
 	${INSTALL_BIN} ${WRKBUILD}/bc/bc ${IDIR_BC}/usr/bin/bc
 	${INSTALL_BIN} ${WRKBUILD}/bc/bc ${IDIR_BC}/usr/bin/bc
@@ -28,4 +32,5 @@ dc-install:
 	${INSTALL_DIR} ${IDIR_DC}/usr/bin
 	${INSTALL_DIR} ${IDIR_DC}/usr/bin
 	${INSTALL_BIN} ${WRKBUILD}/dc/dc ${IDIR_DC}/usr/bin/dc
 	${INSTALL_BIN} ${WRKBUILD}/dc/dc ${IDIR_DC}/usr/bin/dc
 
 
+include ${TOPDIR}/mk/host-bottom.mk
 include ${TOPDIR}/mk/pkg-bottom.mk
 include ${TOPDIR}/mk/pkg-bottom.mk

+ 3 - 3
package/bcm2835-bootloader/Makefile

@@ -4,11 +4,11 @@
 include ${TOPDIR}/rules.mk
 include ${TOPDIR}/rules.mk
 
 
 PKG_NAME:=		bcm2835-bootloader
 PKG_NAME:=		bcm2835-bootloader
-# actually f46e6d9cb9a6bf419fe2a428a8a586239e93aa2d from 07.01.2014
+# actually 9953ce0847c04b587b694c79c5b5a4ac63f5c369 from 25.03.2014
 # https://github.com/raspberrypi/firmware
 # https://github.com/raspberrypi/firmware
-PKG_VERSION:=		0.6
+PKG_VERSION:=		0.7
 PKG_RELEASE:=		1
 PKG_RELEASE:=		1
-PKG_MD5SUM:=		dba84ce20fc8a8c1bf473758d9350e19
+PKG_MD5SUM:=		7ad7e5d3ad311d88d1e82fc729042d87
 PKG_DESCR:=		bootloader for raspberry pi (bcm2835)
 PKG_DESCR:=		bootloader for raspberry pi (bcm2835)
 PKG_SECTION:=		boot
 PKG_SECTION:=		boot
 PKG_SITES:=		http://openadk.org/distfiles/
 PKG_SITES:=		http://openadk.org/distfiles/

+ 6 - 5
package/bcm2835-vc/Makefile

@@ -4,11 +4,12 @@
 include ${TOPDIR}/rules.mk
 include ${TOPDIR}/rules.mk
 
 
 PKG_NAME:=		bcm2835-vc
 PKG_NAME:=		bcm2835-vc
-# actually f65a4eef05ee436976f9be219d3db841d3d6b8ec from 05.10.2013
-PKG_VERSION:=		0.3
-PKG_RELEASE:=		3
-PKG_MD5SUM:=		027d42d1ba803fabdc6bc4ec78d52e67
-PKG_DESCR:=		vc tools for raspberry pi (bcm2835)
+# actually a8fbe2cd6a3d4455344295809f2e663373ad25cb from 25.03.2014
+# https://github.com/raspberrypi/userland
+PKG_VERSION:=		0.4
+PKG_RELEASE:=		1
+PKG_MD5SUM:=		091ae422e05a59ffc2b8908256047b7d
+PKG_DESCR:=		vc tools and libraries for raspberry pi
 PKG_SECTION:=		base
 PKG_SECTION:=		base
 PKG_DEPENDS:=		libpthread
 PKG_DEPENDS:=		libpthread
 PKG_BUILDDEP:=		cmake-host
 PKG_BUILDDEP:=		cmake-host

+ 2 - 2
package/binutils/Makefile

@@ -39,8 +39,8 @@ CONFIGURE_ARGS+=	--disable-werror \
 # disable honour cflags stuff
 # disable honour cflags stuff
 XAKE_FLAGS+=		GCC_HONOUR_COPTS=s
 XAKE_FLAGS+=		GCC_HONOUR_COPTS=s
 
 
-post-build:
-	$(CP) ${WRKBUILD}/libiberty/libiberty.a $(STAGING_TARGET_DIR)/usr/lib
+pre-build:
+	@-rm $(STAGING_TARGET_DIR)/usr/lib/libiberty.a
 
 
 libbfd-install:
 libbfd-install:
 	${INSTALL_DIR} ${IDIR_LIBBFD}/usr/lib
 	${INSTALL_DIR} ${IDIR_LIBBFD}/usr/lib

+ 3 - 5
package/bison/Makefile

@@ -4,18 +4,16 @@
 include ${TOPDIR}/rules.mk
 include ${TOPDIR}/rules.mk
 
 
 PKG_NAME:=		bison
 PKG_NAME:=		bison
-PKG_VERSION:=		3.0.1
+PKG_VERSION:=		3.0.2
 PKG_RELEASE:=		1
 PKG_RELEASE:=		1
-PKG_MD5SUM:=		032a7b7b9f1a6e278ccde73f82cec5c2
-PKG_DESCR:=		GNU parser generator
+PKG_MD5SUM:=		72c66879187c128d04f4ab7422e8072d
+PKG_DESCR:=		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
 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}/}
 
 
-DISTFILES:=		${PKG_NAME}-${PKG_VERSION}.tar.xz
-
 include ${TOPDIR}/mk/host.mk
 include ${TOPDIR}/mk/host.mk
 include ${TOPDIR}/mk/package.mk
 include ${TOPDIR}/mk/package.mk
 
 

+ 6 - 1
package/busybox/Makefile

@@ -5,10 +5,11 @@ include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=		busybox
 PKG_NAME:=		busybox
 PKG_VERSION:=		1.21.1
 PKG_VERSION:=		1.21.1
-PKG_RELEASE:=		5
+PKG_RELEASE:=		6
 PKG_MD5SUM:=		795394f83903b5eec6567d51eebb417e
 PKG_MD5SUM:=		795394f83903b5eec6567d51eebb417e
 PKG_DESCR:=		core utilities for embedded systems
 PKG_DESCR:=		core utilities for embedded systems
 PKG_SECTION:=		base
 PKG_SECTION:=		base
+PKG_BUILDDEP:=		bzip2-host
 PKG_URL:=		http://www.busybox.net/
 PKG_URL:=		http://www.busybox.net/
 PKG_SITES:=		http://www.busybox.net/downloads/
 PKG_SITES:=		http://www.busybox.net/downloads/
 
 
@@ -59,6 +60,10 @@ do-build:
 do-install:
 do-install:
 	$(MAKE) ${BB_MAKE_FLAGS} install $(MAKE_TRACE)
 	$(MAKE) ${BB_MAKE_FLAGS} install $(MAKE_TRACE)
 	$(CP) $(WRKINST)/* $(IDIR_BUSYBOX)/
 	$(CP) $(WRKINST)/* $(IDIR_BUSYBOX)/
+ifeq ($(BUSYBOX_IFUPDOWN),y)
+	$(INSTALL_DIR) $(IDIR_BUSYBOX)/etc/init.d
+	$(INSTALL_BIN) ./files/network $(IDIR_BUSYBOX)/etc/init.d
+endif
 ifeq ($(ADK_DEBUG),y)
 ifeq ($(ADK_DEBUG),y)
 	${INSTALL_BIN} $(WRKBUILD)/busybox_unstripped \
 	${INSTALL_BIN} $(WRKBUILD)/busybox_unstripped \
 		$(IDIR_BUSYBOX)/bin/busybox
 		$(IDIR_BUSYBOX)/bin/busybox

+ 3 - 3
package/busybox/config/miscutils/Config.in

@@ -281,7 +281,7 @@ config BUSYBOX_CHRT
 
 
 config BUSYBOX_CROND
 config BUSYBOX_CROND
 	bool "crond"
 	bool "crond"
-	default y
+	default n
 	select BUSYBOX_FEATURE_SYSLOG
 	select BUSYBOX_FEATURE_SYSLOG
 	help
 	help
 	  Crond is a background daemon that parses individual crontab
 	  Crond is a background daemon that parses individual crontab
@@ -301,7 +301,7 @@ config BUSYBOX_FEATURE_CROND_D
 
 
 config BUSYBOX_FEATURE_CROND_CALL_SENDMAIL
 config BUSYBOX_FEATURE_CROND_CALL_SENDMAIL
 	bool "Report command output via email (using sendmail)"
 	bool "Report command output via email (using sendmail)"
-	default y
+	default n
 	depends on BUSYBOX_CROND
 	depends on BUSYBOX_CROND
 	help
 	help
 	  Command output will be sent to corresponding user via email.
 	  Command output will be sent to corresponding user via email.
@@ -747,7 +747,7 @@ config BUSYBOX_WALL
 
 
 config BUSYBOX_WATCHDOG
 config BUSYBOX_WATCHDOG
 	bool "watchdog"
 	bool "watchdog"
-	default y
+	default n
 	depends on !BUSYBOX_DISABLE_WATCHDOG
 	depends on !BUSYBOX_DISABLE_WATCHDOG
 	select BUSYBOX_PLATFORM_LINUX
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	help

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