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
 /toolchain_*/
 /.ADK_HAVE_DOT_CONFIG
@@ -32,8 +40,6 @@
 /root_*/
 /firmware/
 /build_*/
-/config/*.o
-/config/lxdialog/*.o
 /make.log
 /dl
 /package/Config.in.auto*
@@ -41,7 +47,6 @@
 /package/*/Config.in
 /package/*/Config.in.lib
 /package/*/Config.in.kmod
-/tools_build/
 /extra/
 /.menu
 /.adkinit
@@ -51,5 +56,8 @@
 /target/packages/Config.in
 /target/config/Config.in.system.default
 /target/config/Config.in.system
+/target/config/Config.in.scripts
 /target/config/Config.in.native
 /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-arm: thumb mode with glibc does not boot
 - 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"
 
-menu "Runtime configuration"
-depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_SYSTEM
-source "target/config/Config.in.runtime"
-endmenu
-
 menu "Package collection"
 depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_SYSTEM
 source "target/packages/Config.in"
@@ -89,12 +84,17 @@ source "package/Config.in.auto.global"
 source "package/Config.in.auto"
 endmenu
 
+menu "Runtime configuration"
+depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_SYSTEM
+source "target/config/Config.in.runtime"
+endmenu
+
 choice
 prompt "Kernel Version"
 depends on ADK_TOOLCHAIN_ONLY
 
 config ADK_KERNEL_VERSION_TOOLCHAIN
-	prompt "3.13.6"
+	prompt "3.13.7"
 	boolean
 	depends on ADK_TOOLCHAIN_ONLY
 
@@ -106,35 +106,35 @@ depends on !ADK_TOOLCHAIN_ONLY && !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_
 choice
 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
 
-config ADK_KERNEL_VERSION_3_12_13
-	prompt "3.12.13"
+config ADK_KERNEL_VERSION_3_12_14
+	prompt "3.12.14"
 	boolean
 
 config ADK_KERNEL_VERSION_3_11_10
 	prompt "3.11.10"
 	boolean
 
-config ADK_KERNEL_VERSION_3_10_33
-	prompt "3.10.33"
+config ADK_KERNEL_VERSION_3_10_34
+	prompt "3.10.34"
 	boolean
 
-config ADK_KERNEL_VERSION_3_4_82
-	prompt "3.4.82"
+config ADK_KERNEL_VERSION_3_4_84
+	prompt "3.4.84"
 	boolean
 
 endchoice
 
 config ADK_KERNEL_VERSION
 	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.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
 
 config ADK_KERNEL_COMP_GZIP_RASPBERRY_PI

+ 1 - 0
Makefile

@@ -224,6 +224,7 @@ NO_ERROR=0
 	@echo "_PATH:=$$PATH" >>prereq.mk
 	@echo "PATH:=\$${TOPDIR}/scripts:/usr/sbin:$$PATH" >>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)" \
 		CC='${CC}' CPPFLAGS='${CPPFLAGS}' \
 	    	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: 
 - bash
-- gcc 
+- gcc or clang
+- g++ or clang++
 - binutils 
 - GNU make
 - GNU awk
 - GNU sed
-- findutils (find, xargs)
 - tar
 - patch
 - gzip
@@ -19,7 +19,6 @@ Before you can start you need to install some tools:
 - ncurses5 headers
 - zlib headers
 - perl
-- git
 
 There is a check for the required versions of these tools in advance, though.
 (to re-issue the checks, use "make prereq").

+ 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 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 printing of OK/FAIL (optional verbose bootup)
 - fixup rework libgcc --export-symbols
 - libgcc static?
 - static toolchain support
-- toolchain in /usr , check gcj
 - try Preset Loops per Jiffy for faster bootup via lpj=
 - port uuterm
-- hash-style=gnu for non-mips and non-musl
 - add fb full screen logo
 - port opkg with gpg signing
 - restart network (kill wpa_supplicant)
@@ -15,7 +18,6 @@
 - add grsec kernel patch
 - microblaze: add cfgfs partition to dts, add partition to spartan dts
 - evaluate libguestfs for image creation
-- check for gcc and SSP again
-- port w3m
+- port msmtp
 - rutorrent porting
 - 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)) {
 				/* print result to stdout */
 				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)

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

@@ -304,13 +304,18 @@ static char *toupperstr(char *string) {
 
 int main() {
 
-	DIR *pkgdir, *pkglistdir;
+	DIR *pkgdir, *pkglistdir, *scriptdir;
 	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 buf[MAXPATH];
+	char ibuf[MAXPATH];
 	char tbuf[MAXPATH];
 	char path[MAXPATH];
+	char script[MAXPATH];
+	char script2[MAXPATH];
 	char spath[MAXPATH];
 	char dir[MAXPATH];
 	char variable[2*MAXVAR];
@@ -320,9 +325,10 @@ int main() {
 	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 *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;
 	StrMap *pkgmap, *sectionmap;
+	const char runtime[] = "target/config/Config.in.scripts";
 
 	pkg_name = NULL;
 	pkg_descr = NULL;
@@ -355,6 +361,7 @@ int main() {
 	s_ptr = NULL;
 
 	unlink("package/Config.in.auto");
+	unlink(runtime);
 	/* open global sectionfile */
 	menuglobal = fopen("package/Config.in.auto.global", "w");
 	if (menuglobal == NULL)
@@ -410,6 +417,7 @@ int main() {
 	fprintf(cfg, "\t  C library header files.\n\n");
 	fclose(cfg);	
 
+
 	/* read Makefile's for all packages */
 	pkgdir = opendir("package");
 	while ((pkgdirp = readdir(pkgdir)) != NULL) {
@@ -421,6 +429,57 @@ int main() {
 			if (pkg == NULL)
 				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 */
 			if (snprintf(path, MAXPATH, "package/%s/Config.in.manual", pkgdirp->d_name) < 0)
 				fatal_error("can not create path variable.");
@@ -621,7 +680,6 @@ int main() {
 			fclose(cfg);
 			free(pkgs);
 
-
 			/* skip packages without binary package output */
 			if (nobinpkgs == 1)
 				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
 ------------------------
 
-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
 * package(s) which the build fails
 * 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
 
 Additionally, you can add the +.config+ file.

+ 4 - 2
docs/getting.txt

@@ -5,8 +5,9 @@
 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:
 
@@ -20,3 +21,4 @@ Or if you prefer HTTP or using Git behind a proxy:
  $ 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
 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
 many different parts.
@@ -22,28 +22,20 @@ many different parts.
   the kernel patches
 
 * 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 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
-  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
   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
 is done:
 
@@ -69,12 +61,13 @@ configuration is done (it is mainly a wrapper for +mk/build.mk+):
   available systems and package collections
 
 * 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)
 
-* Compile the linux kernel
+* Compile the Linux kernel
 
 * Compile all the userspace packages, the boot loader and external kernel modules
 
 * 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
 with default configurations for some embedded systems and netbooks.
 (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 
-confiuration +.config+:
+configuration +.config+:
 
 --------------------
  $ make distclean
@@ -60,7 +60,7 @@ This is automatically triggered if you change the kernel version in
 your configuration.
 
 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

+ 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
 OpenADK.  OpenADK offers an infrastructure to automatically handle this during
 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:
 ------------
@@ -80,3 +80,11 @@ Fetch from: <some url>
 
 It is also sensible to add a few words about any changes to the patch
 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+
 ** +binutils+
-** +gcc+ 
-** `g++`
+** +C compiler (gcc or clang)+ 
+** `C++ compiler (g++ or clang++)`
 ** +GNU sed+
 ** +GNU awk+
 ** +GNU make+
@@ -33,10 +33,9 @@ package names may vary between host systems.
 ** +perl+
 ** +tar+
 ** +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,
 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
 
 CONFIG_CONFIG_IN = Config.in
-CONFIG = config
+CONFIG = adk/config
 DEFCONFIG=		ADK_DEBUG=n \
 			ADK_STATIC=n \
 			ADK_WGET_TIMEOUT=180 \
@@ -18,6 +18,7 @@ DEFCONFIG=		ADK_DEBUG=n \
 			ADK_LEAVE_ETC_ALONE=n \
 			ADK_SIMPLE_NETWORK_CONFIG=n \
 			ADK_USE_CCACHE=n \
+			ADK_RUNTIME_START_SERVICES=n \
 			ADK_PACKAGE_BASE_FILES=y \
 			ADK_PACKAGE_E2FSCK_STATIC=n \
 			ADK_PACKAGE_KEXECINIT=n \
@@ -41,8 +42,10 @@ DEFCONFIG=		ADK_DEBUG=n \
 			ADK_PKG_TEST=n \
 			ADK_PKG_MPDBOX=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_EXTRA_COMPAT=n \
 			BUSYBOX_FEATURE_IFCONFIG_SLIP=n \
@@ -79,6 +82,7 @@ DEFCONFIG=		ADK_DEBUG=n \
 			BUSYBOX_FEATURE_VI_REGEX_SEARCH=n \
 			ADK_KERNEL_RT2X00_DEBUG=n \
 			ADK_KERNEL_ATH5K_DEBUG=n \
+			ADK_KERNEL_BUG=n \
 			ADK_KERNEL_DEBUG_WITH_KGDB=n
 
 noconfig_targets:=	menuconfig \
@@ -92,13 +96,13 @@ POSTCONFIG=		-@\
 	if [ -f .adkinit ];then rm .adkinit;\
 	else \
 	if [ -f .config.old ];then \
-		$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgrebuild;\
+		$(TOPDIR)/adk/tools/pkgrebuild;\
 		rebuild=0; \
 		if [ "$$(grep ^BUSYBOX .config|md5sum)" != "$$(grep ^BUSYBOX .config.old|md5sum)" ];then \
 			touch .rebuild.busybox;\
 			rebuild=1;\
 		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 \
 				touch .rebuild.base-files;\
 				rebuild=1;\
@@ -138,27 +142,26 @@ include $(TOPDIR)/rules.mk
 
 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:
 .PHONY: all world clean cleandir cleantoolchain distclean image_clean
 
 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/update-sys
 	${BASH} ${TOPDIR}/scripts/update-pkg
 ifeq ($(ADK_TOOLCHAIN),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
-	$(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
 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
 
 package_index:
@@ -169,9 +172,10 @@ endif
 
 ${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} \
-		${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 \
 		cd ${STAGING_TARGET_DIR}/; ln -sf lib $$i; \
+		cd ${STAGING_TARGET_DIR}/usr; ln -sf lib $$i; \
 	done
 
 ${STAGING_TARGET_DIR}/etc/ipkg.conf: ${STAGING_TARGET_DIR}/etc
@@ -189,9 +193,6 @@ target/%:
 toolchain/%: ${STAGING_TARGET_DIR}
 	$(MAKE) -C toolchain $(patsubst toolchain/%,%,$@)
 
-tools/%:
-	$(MAKE) -C tools $(patsubst tools/%,%,$@)
-
 image:
 	$(MAKE) -C target image
 
@@ -236,6 +237,7 @@ root_clean:
 	@$(TRACE) root_clean
 	rm -rf $(TARGET_DIR)
 	mkdir -p $(TARGET_DIR)
+	touch $(TARGET_DIR)/.adk
 
 # Do a per-package clean here, too. This way stale headers and
 # libraries from target_*/ get wiped away, which keeps
@@ -264,7 +266,7 @@ cleandir:
 	@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE) 
 	rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) \
 	    ${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 -f .menu .tmpconfig.h .rebuild* ${TOPDIR}/package/Depends.mk ${TOPDIR}/prereq.mk
 
@@ -272,7 +274,7 @@ cleantoolchain:
 	@$(TRACE) cleantoolchain
 	@rm -rf $(BUILD_DIR_PFX) $(TARGET_DIR_PFX) \
 	    ${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 -f .menu .tmpconfig.h .rebuild* ${TOPDIR}/package/Depends.mk
 
@@ -281,7 +283,7 @@ distclean:
 	@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
 	@rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) $(DL_DIR) \
 	    ${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 -f .adkinit .config* .defconfig .tmpconfig.h all.config ${TOPDIR}/prereq.mk \
 	    .menu ${TOPDIR}/package/Depends.mk .ADK_HAVE_DOT_CONFIG .rebuild.*
@@ -454,7 +456,7 @@ distclean:
 	@$(MAKE) -C $(CONFIG) clean
 	@rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) $(DL_DIR) \
 	    ${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 -f .adkinit .config* .defconfig .tmpconfig.h all.config ${TOPDIR}/prereq.mk \
 	    .menu .rebuild.* ${TOPDIR}/package/Depends.mk .ADK_HAVE_DOT_CONFIG
@@ -473,21 +475,21 @@ bulktoolchain:
 		while read arch; do \
 			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) 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);\
+				if [ $$arch = "armhf" ];then arch=arm; else arch=$$arch;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; \
 			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 \
-		done <${TOPDIR}/target/tarch.lst ;\
+		done <${TOPDIR}/toolchain/$$libc/tarch.lst ;\
 		if [ -f .exit ];then echo "Bulk build failed!"; rm .exit; exit 1;fi \
 	done
 
@@ -500,15 +502,15 @@ test-framework:
 	for libc in $$libc;do \
 		( \
 			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); \
-				$(GMAKE) prereq && \
 				$(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; \
 				tabi=$$(grep ^ADK_TARGET_ABI= .config|cut -d \" -f 2);\
 				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; \
 				mkdir -p $(TOPDIR)/firmware/qemu/$$arch; \
 				tar cJvf $(TOPDIR)/firmware/qemu/$$arch/root.tar.xz root; \
@@ -524,14 +526,13 @@ test-framework:
 
 release:
 	for libc in uclibc glibc musl;do \
-		mkdir -p $(TOPDIR)/firmware/$(SYSTEM)_$(ARCH)_$$libc; \
 		( \
 			echo === building $$libc on $$(date); \
 			$(GMAKE) prereq && \
 			$(GMAKE) ARCH=$(ARCH) SYSTEM=$(SYSTEM) LIBC=$$libc FS=archive allmodconfig; \
 			$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 			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 \
 	done
 	if [ -f .exit ];then rm .exit;exit 1;fi
@@ -542,14 +543,14 @@ bulk:
 	  while read arch; do \
 	      systems=$$(./scripts/getsystems $$arch|grep -v toolchain); \
 	      for system in $$systems;do \
-		mkdir -p $(TOPDIR)/firmware/$${system}_$${arch}_$$libc; \
+		mkdir -p $(TOPDIR)/firmware; \
 	    ( \
 		echo === building $$arch $$system $$libc on $$(date); \
 		$(GMAKE) prereq && \
 		$(GMAKE) ARCH=$$arch SYSTEM=$$system LIBC=$$libc FS=archive defconfig; \
 		$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 		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 \
 	      done; \
 	    if [ -f .exit ]; then break;fi \
@@ -562,14 +563,14 @@ bulkall:
 	  while read arch; do \
 	      systems=$$(./scripts/getsystems $$arch| grep -v toolchain); \
 	      for system in $$systems;do \
-		mkdir -p $(TOPDIR)/firmware/$${system}_$${arch}_$$libc; \
+		mkdir -p $(TOPDIR)/firmware; \
 	    ( \
 		echo === building $$arch $$system $$libc on $$(date); \
 		$(GMAKE) prereq && \
 		$(GMAKE) ARCH=$$arch SYSTEM=$$system LIBC=$$libc FS=archive allconfig; \
 		$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
 		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 \
 	      done; \
 	      if [ -f .exit ]; then break;fi \
@@ -582,7 +583,7 @@ bulkallmod:
 	  while read arch; do \
 	      systems=$$(./scripts/getsystems $$arch| grep -v toolchain); \
 	      for system in $$systems;do \
-		mkdir -p $(TOPDIR)/firmware/$${system}_$${arch}_$$libc; \
+		mkdir -p $(TOPDIR)/firmware; \
 	    ( \
 		echo === building $$arch $$system $$libc on $$(date); \
 		$(GMAKE) prereq && \
@@ -590,7 +591,7 @@ bulkallmod:
 		$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then echo $$system-$$libc >.exit; exit 1;fi; \
 		$(GMAKE) clean; \
 		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 \
 	      done; \
 	     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 \
 	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 ..."
-	@$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgmaker
+	@$(TOPDIR)/adk/tools/pkgmaker
 	@:>.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 ..."
-	@$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/depmaker > ${TOPDIR}/package/Depends.mk
+	@$(TOPDIR)/adk/tools/depmaker > ${TOPDIR}/package/Depends.mk
 
 .PHONY: menu dep
 
 include $(TOPDIR)/toolchain/gcc/Makefile.inc
 
 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
-	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
 
 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++
 
 check: check-gcc check-g++

+ 4 - 4
mk/buildhlp.mk

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

+ 0 - 1
mk/fetch.mk

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

+ 5 - 4
mk/host-bottom.mk

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

+ 3 - 1
mk/host.mk

@@ -3,13 +3,14 @@
 
 # This is where all package operation is done in
 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
 
 HOST_CONFIGURE_ENV+=	AUTOM4TE=${STAGING_HOST_DIR}/usr/bin/autom4te \
 			CONFIG_SHELL='$(strip ${SHELL})' \
 			PKG_CONFIG_LIBDIR='${STAGING_HOST_DIR}/usr/lib/pkgconfig' \
 			PATH='${HOST_PATH}' \
+			CC='$(strip ${CC_FOR_BUILD})' \
 			CFLAGS='$(strip ${CFLAGS_FOR_BUILD})' \
 			CXXFLAGS='$(strip ${CXXFLAGS_FOR_BUILD})' \
 			CPPFLAGS='$(strip ${CPPFLAGS_FOR_BUILD})' \
@@ -28,6 +29,7 @@ HOST_INSTALL_TARGET?=	install
 
 HOST_MAKE_ENV+=		PATH='${HOST_PATH}' \
 			PKG_CONFIG_LIBDIR='${STAGING_HOST_DIR}/usr/lib/pkgconfig' \
+			CC='$(strip ${CC_FOR_BUILD})' \
 			CFLAGS='$(strip ${CFLAGS_FOR_BUILD})' \
 			CXXFLAGS='$(strip ${CXXFLAGS_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 
 # root directory, do the same if make extra=/dir/to/extra is used
 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 [ ! -z $(extra) ];then $(CP) $(extra)/* ${TARGET_DIR};fi
 
@@ -51,22 +54,24 @@ image-prepare-post:
 	-rm -f ${TARGET_DIR}/bin/sh
 	ln -sf ${BINSH} ${TARGET_DIR}/bin/sh
 ifeq ($(ADK_LINUX_X86_64),y)
+ifeq ($(ADK_TARGET_ABI_32),)
 	# fixup lib dirs
 	mv ${TARGET_DIR}/lib/* ${TARGET_DIR}/${ADK_TARGET_LIBC_PATH}
 	rm -rf ${TARGET_DIR}/lib/
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	-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/
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 endif
+endif
 ifeq ($(ADK_LINUX_PPC64),y)
 	# fixup lib dirs
 	mv ${TARGET_DIR}/lib/* ${TARGET_DIR}/${ADK_TARGET_LIBC_PATH}
 	rm -rf ${TARGET_DIR}/lib/
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	-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/
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 endif
@@ -76,7 +81,7 @@ ifeq ($(ADK_LINUX_SPARC64),y)
 	rm -rf ${TARGET_DIR}/lib/
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	-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/
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 endif
@@ -86,7 +91,7 @@ ifeq ($(ADK_TARGET_ABI_N32),y)
 	rm -rf ${TARGET_DIR}/lib/
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	-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/
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 endif
@@ -96,7 +101,7 @@ ifeq ($(ADK_TARGET_ABI_N64),y)
 	rm -rf ${TARGET_DIR}/lib/
 	ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
 	-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/
 	(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
 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
 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
-ROOTFSISO=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.iso
+ROOTFSISO=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}.iso
 else
 TARGET_KERNEL=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel
 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
 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
-ROOTFSISO=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.iso
+ROOTFSISO=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}.iso
 endif
 
-${FW_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} kernel-package
+${FW_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR}/.adk kernel-package
 	cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \
 		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
 		${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' | \
 		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
 		${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}/ >$@
 
 ${FW_DIR}/${INITRAMFS}: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
 	${LINUX_DIR}/usr/gen_init_cpio ${STAGING_TARGET_DIR}/${INITRAMFS}_list | \
 		${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} \
 		${BUILD_DIR}/root.squashfs -comp xz \
 		-nopad -noappend -root-owned $(MAKE_TRACE)
 
 ${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)
 
 createinitramfs: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
@@ -231,9 +236,9 @@ ${FW_DIR}/${ROOTFSISO}: ${TARGET_DIR} kernel-package
 	mkdir -p ${TARGET_DIR}/boot/syslinux
 	cp ${STAGING_HOST_DIR}/usr/share/syslinux/{isolinux.bin,ldlinux.c32} \
 		${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
-	${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 \
 		-c boot/syslinux/boot.cat -no-emul-boot \
 		-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="" \
 		modules_install $(MAKE_TRACE)
 	$(TRACE) target/$(ADK_TARGET_ARCH)-create-packages
+	@mkdir -p ${PACKAGE_DIR}
 ifneq ($(strip $(TARGETS)),)
 	$(MAKE) $(TARGETS)
 endif

+ 14 - 14
mk/kernel-ver.mk

@@ -1,20 +1,20 @@
 ifeq ($(ADK_KERNEL_VERSION_TOOLCHAIN),y)
-KERNEL_VERSION:=	3.13.6
+KERNEL_VERSION:=	3.13.7
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		445aa27da818617409982f42902a6e41
+KERNEL_MD5SUM:=		370adced5e5c1cb1d0d621c2dae2723f
 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_RELEASE:=	1
-KERNEL_MD5SUM:=		445aa27da818617409982f42902a6e41
+KERNEL_MD5SUM:=		370adced5e5c1cb1d0d621c2dae2723f
 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_RELEASE:=	1
-KERNEL_MD5SUM:=		345f5883cfb906dac4aef87e303d3a2d
+KERNEL_MD5SUM:=		5575e68e287605ad63d3a1444e9b701d
 endif
 ifeq ($(ADK_KERNEL_VERSION_3_11_10),y)
 KERNEL_VERSION:=	3.11.10
@@ -22,15 +22,15 @@ KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
 KERNEL_MD5SUM:=		59f352d3f4e2cdf6755f79e09fa09176
 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_RELEASE:=	1
-KERNEL_MD5SUM:=		01865f9c129f3c7eee51e25b3781a364
+KERNEL_MD5SUM:=		30991b495a3d75196d5608072d2e62e6
 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_RELEASE:=	1
-KERNEL_MD5SUM:=		9ee57efa65417a7a9ac931122c2b7377
+KERNEL_MD5SUM:=		b99f88ca356b5003ce44e952baa3e6a3
 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 \
 		[ ! -f ./files/$(2).$$$$file ] || cp ./files/$(2).$$$$file $$(IDIR_$(1))/CONTROL/$$$$file; \
 	done
+ifeq ($(ADK_RUNTIME_START_$(1)),y)
+	$(SED) "s#NO#YES#" $$(IDIR_$(1))/CONTROL/postinst
+endif
 ifneq ($(ADK_DEBUG),y)
 	@echo "Package: $$(shell echo $(2) | tr '_' '-')-dbg" > $(WRKDIR)/.$(2)-dbg.control
 	@echo "Section: debug" >> $(WRKDIR)/.$(2)-dbg.control
@@ -195,10 +198,10 @@ endif
 
 $$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $${_FAKE_COOKIE}
 ifeq ($(ADK_DEBUG),)
-	$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
+	@$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
 endif
 ifeq ($(ADK_DEBUG_STRIP),y)
-	$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
+	@$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
 endif
 ifeq (${ADK_LEAVE_ETC_ALONE}$(filter force_etc,$(7)),y)
 	-rm -rf $${IDIR_$(1)}/etc

+ 1 - 1
mk/pkg-bottom.mk

@@ -184,7 +184,7 @@ ifneq (,$(filter dev,${PKG_OPTS}))
 	done
 endif
 	@-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 \) \
 	    	-exec echo 'WARNING: ${PKG_NAME} installs files in /lib -' \
 		' fix this!' >&2 \; -quit 2>/dev/null; fi;\

+ 5 - 8
mk/rootfs.mk

@@ -42,18 +42,15 @@ else
 USB:=		rootdelay=2
 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,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,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,iso,ISO))
 

+ 31 - 15
mk/vars.mk

@@ -17,10 +17,10 @@ DL_DIR?=		$(BASE_DIR)/dl
 else
 DL_DIR?=		$(ADK_DL_DIR)
 endif
-TOOLS_BUILD_DIR=	$(BASE_DIR)/tools_build
 SCRIPT_DIR:=		$(BASE_DIR)/scripts
 STAGING_HOST_DIR:=	${BASE_DIR}/host_${GNU_HOST_NAME}
 TOOLCHAIN_DIR:=		${BASE_DIR}/toolchain_${GNU_HOST_NAME}
+HOST_BUILD_DIR:=	${BASE_DIR}/host_build_${GNU_HOST_NAME}
 
 # dirs for cleandir
 FW_DIR_PFX:=		$(BASE_DIR)/firmware
@@ -54,7 +54,7 @@ SCRIPT_TARGET_DIR:=	${STAGING_TARGET_DIR}/scripts
 
 # PATH variables
 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}
 
 ifeq ($(ADK_DISABLE_HONOUR_CFLAGS),)
@@ -71,7 +71,7 @@ CONFIGURE_TRIPLE:=	--build=${GNU_HOST_NAME} \
 			--target=${GNU_TARGET_NAME}
 
 ifneq ($(strip ${ADK_USE_CCACHE}),)
-TARGET_COMPILER_PREFIX=ccache ${TARGET_CROSS}
+TARGET_COMPILER_PREFIX=$(STAGING_HOST_DIR)/usr/bin/ccache ${TARGET_CROSS}
 endif
 
 # target tools
@@ -111,23 +111,38 @@ TARGET_LDFLAGS+=	-Wl,--secure-plt
 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_CXXFLAGS+=	-fstack-protector
 TARGET_LDFLAGS+=	-fstack-protector
 endif
 
-ifneq ($(ADK_TOOLCHAIN_GCC_USE_LTO),)
+ifneq ($(ADK_TOOLCHAIN_USE_LTO),)
 TARGET_CFLAGS+=		-flto
 TARGET_CXXFLAGS+=	-flto
 TARGET_LDFLAGS+=	-flto
 endif
 
+ifeq ($(ADK_LINUX_MICROBLAZE),y)
+TARGET_CFLAGS+=		-mxl-barrel-shift
+TARGET_CXX_FLAGS+=	-mxl-barrel-shift
+endif
+
 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
 TARGET_CPPFLAGS+=	-DNDEBUG
-TARGET_CFLAGS+=		-fomit-frame-pointer $(TARGET_OPTIMIZATION)
+TARGET_CFLAGS+=		-fomit-frame-pointer $(ADK_TARGET_CFLAGS_OPT)
 # stop generating eh_frame stuff
 TARGET_CFLAGS+=		-fno-unwind-tables -fno-asynchronous-unwind-tables
 # always add debug information
@@ -178,9 +193,10 @@ TARGET_CONFIGURE_OPTS=	PATH='${TARGET_PATH}' \
 			CROSS_COMPILE='$(TARGET_CROSS)'
 
 HOST_CONFIGURE_OPTS=	CC_FOR_BUILD='${CC_FOR_BUILD}' \
-			CPPFLAGS_FOR_BUILD='${CPPFLAGS_FOR_BUILD}' \
 			CXX_FOR_BUILD='${CXX_FOR_BUILD}' \
+			CPPFLAGS_FOR_BUILD='${CPPFLAGS_FOR_BUILD}' \
 			CFLAGS_FOR_BUILD='${CFLAGS_FOR_BUILD}' \
+			CXXFLAGS_FOR_BUILD='${CXXFLAGS_FOR_BUILD}' \
 			LDFLAGS_FOR_BUILD='${LDFLAGS_FOR_BUILD}'
 
 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)
 	
-EXTRACT_CMD=		mkdir -p ${WRKDIR}; \
+EXTRACT_CMD=		PATH='${HOST_PATH}'; mkdir -p ${WRKDIR}; \
 			cd ${WRKDIR} && \
 			for file in ${FULLDISTFILES}; do case $$file in \
 			*.cpio) \
-				cat $$file | $(STAGING_HOST_DIR)/usr/bin/cpio -i -d ;; \
+				cat $$file | cpio -i -d ;; \
 			*.tar) \
 				tar -xf $$file ;; \
 			*.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) \
-				$(STAGING_HOST_DIR)/usr/bin/xz -dc $$file | tar -xf - ;; \
+				xz -dc $$file | tar -xf - ;; \
 			*.tar.Z | *.tar.gz | *.taz | *.tgz) \
 				gzip -dc $$file | tar -xf - ;; \
 			*.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) \
-				$(STAGING_HOST_DIR)/usr/bin/bzip2 -dc $$file | tar -xf - ;; \
+				bzip2 -dc $$file | tar -xf - ;; \
 			*.zip) \
-				cat $$file | $(STAGING_HOST_DIR)/usr/bin/cpio -ivd -H zip ;; \
+				cat $$file | cpio -ivd -H zip ;; \
 			*.arm) \
 				cp $$file ${WRKDIR} ;; \
 			*) \

+ 2 - 0
package/Makefile

@@ -28,11 +28,13 @@ include $(TOPDIR)/package/Depends.mk
 DOWNLOAD:=$(patsubst %,%-download,$(package-y) $(package-m))
 REBUILD_PACKAGES:=$(patsubst %,%-rebuild,$(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))
 
 all: compile
 download: $(DOWNLOAD)
 clean: $(patsubst %,%-clean,$(package-) $(package-y) $(package-m) base-files)
+hostcompile: $(HOST_COMPILE_PACKAGES)
 ifeq ($(ADK_TOOLCHAIN_ONLY),y)
 compile: $(REBUILD_PACKAGES) $(COMPILE_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_VERSION:=		0.1
-PKG_RELEASE:=		3
+PKG_RELEASE:=		6
 PKG_DESCR:=		helper tools and scripts for adk-test-framework
 PKG_SECTION:=		misc
 PKG_URL:=		http://openadk.org/

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

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

+ 1 - 1
package/asterisk/Makefile

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

+ 1 - 1
package/avahi/Makefile

@@ -61,7 +61,7 @@ CONFIGURE_ARGS+=	--enable-glib \
 			--with-avahi-user=avahi \
 			--with-avahi-group=avahi
 
-ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y)
+ifeq ($(ADK_TOOLCHAIN_USE_SSP),y)
 CONFIGURE_ARGS+=	--enable-stack-protector
 else
 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_VERSION:=		1.0
-PKG_RELEASE:=		74
+PKG_RELEASE:=		82
 PKG_SECTION:=		base
 PKG_DESCR:=		basic files and scripts
-PKG_BUILDDEP:=		pkgconf-host file-host
 
 WRKDIST=		${WRKDIR}/base-files
 NO_DISTFILES:=		1
@@ -27,11 +26,19 @@ do-install:
 ifeq (${ADK_TARGET_ROOTFS_NFSROOT},y)
 	@echo "#" > $(IDIR_BASE_FILES)/etc/network/interfaces
 endif
+ifeq (${ADK_TARGET_PACKAGE_IPKG},y)
 	$(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,@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,@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/mksh >>${IDIR_BASE_FILES}/etc/shells
 ifneq (${ADK_PACKAGE_ASH},)
@@ -43,14 +50,13 @@ endif
 ifneq (${ADK_PACKAGE_ZSH},)
 	echo /bin/zsh >>${IDIR_BASE_FILES}/etc/shells
 endif
-	mkdir -p $(IDIR_BASE_FILES)/usr/lib/ipkg/lists
 	mkdir -p $(IDIR_BASE_FILES)/etc/crontabs
 	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)/usr/{lib,bin}
-	chmod 755 $(IDIR_BASE_FILES)/lib/mdev/init
 	chmod 600 $(IDIR_BASE_FILES)/etc/shadow
 	chmod 600 $(IDIR_BASE_FILES)/etc/network/interfaces
+	(cd $(IDIR_BASE_FILES)/etc; ln -sf ../tmp/resolv.conf .)
 	chmod 1777 ${IDIR_BASE_FILES}/tmp
 	ln -sf ../proc/mounts $(IDIR_BASE_FILES)/etc/mtab
 	rm -rf $(IDIR_BASE_FILES)/var
@@ -61,7 +67,7 @@ endif
 	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
 	test -z $(ADK_RUNTIME_GETTY_SERIAL) || \
 	    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
 	test -z $(ADK_RUNTIME_HOSTNAME) || \
 	    echo $(ADK_RUNTIME_HOSTNAME) > $(IDIR_BASE_FILES)/etc/hostname; \
@@ -71,7 +77,8 @@ endif
 	test -z $(ADK_RUNTIME_PASSWORD) || \
 	    $(SED) 's,\*NP\*,'"$$($(STAGING_HOST_DIR)/usr/bin/mkcrypt \
 	    ${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
 	test -z $(ADK_TARGET_SYSTEM) || \
 	    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
 	chmod 600 $(IDIR_BASE_FILES)/etc/adkconfig.gz
 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
 else
-	echo 'export IPKGTMPDIR=/tmp >> $(IDIR_BASE_FILES)/etc/profile
+	echo 'export IPKGTMPDIR=/tmp' >> $(IDIR_BASE_FILES)/etc/profile
 endif
-
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
+	echo 'export LD_LIBRARY_PATH=/opt/vc/lib' >> $(IDIR_BASE_FILES)/etc/profile
 endif
 
 # simple network configuration
 ifneq (${ADK_SIMPLE_NETWORK_CONFIG},)
 	${INSTALL_DIR} ${IDIR_BASE_FILES}/etc/network
-
 	# network config local
 	echo -e "auto lo\niface lo inet loopback" > ${IDIR_BASE_FILES}/etc/network/interfaces
-
 	# network config eth0
 	# configure nic with dhcp
 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 "  bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 endif
-
 	# network config wlan0
 ifeq (${SIMPLE_NETWORK_CONFIG_WLAN0_TYPE_NIC},y)
 	echo -e "\nauto wlan0\niface wlan0 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 endif
-
 	# network config eth1
 	# configure nic with dhcp
 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 "  bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH1_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 endif
-
 	# newline at the end of interfaces file
 	echo -en "\n" >>  ${IDIR_BASE_FILES}/etc/network/interfaces
-
 	# resolver config
+	rm ${IDIR_BASE_FILES}/etc/resolv.conf
 	echo -e "nameserver ${SIMPLE_NETWORK_CONFIG_RESOLV}" > ${IDIR_BASE_FILES}/etc/resolv.conf
 endif
 
-
 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
 
-if [ -f /proc/sys/kernel/printk ];then
-	echo 0 > /proc/sys/kernel/printk
-fi
-
 # remount /dev with smaller size
 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
 echo >/dev/mdev.seq
 echo "/sbin/mdev" >/proc/sys/kernel/hotplug
+# creates f.e. /dev/root
+mdev -s
 
 # seed some random
 cat /etc/.rnd >/dev/urandom 2>&1
@@ -29,9 +27,9 @@ cat /etc/.rnd >/dev/urandom 2>&1
 # create some useful directories in tmpfs
 mkdir -p /var/log
 mkdir -p /var/run
+mkdir -p /var/tmp
 touch /var/log/lastlog
 touch /var/log/wtmp
-ln -s /tmp /var/tmp
 
 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
 [ -x /usr/sbin/lvm ] && { lvm vgscan; lvm vgchange -ay; }
 
+fstypes="ext2 ext3 ext4 xfs"
+
 # 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
-		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
+done
 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
 ::sysinit:/etc/init.d/rcS
 ::shutdown:/etc/init.d/rcK
-null::shutdown:/bin/umount -a -r
+null::shutdown:/bin/umount -a -t ext4
 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 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/pcmC0D0p root:audio 660
 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
 		done
 	fi
-
-	touch /tmp/resolv.conf
-	ln -sf /tmp/resolv.conf $RESOLV_CONF
 	echo -n >$RESOLV_CONF
 	${domain:+echo search $domain} >>$RESOLV_CONF
 	for i in $dns; do
 		echo "adding dns $i"
 		echo "nameserver $i" >>$RESOLV_CONF
 	done
-
 	# user rules
 	[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user
 ;;

+ 3 - 3
package/bash/Makefile

@@ -4,9 +4,9 @@
 include $(TOPDIR)/rules.mk
 
 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_SECTION:=		shells
 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_RELEASE:=		1
 PKG_MD5SUM:=		d44b5dddebd8a7a7309aea6c36fda117
-PKG_DESCR:=		An arbitrary precision calculator language
+PKG_DESCR:=		arbitrary precision calculator language
 PKG_SECTION:=		utils
 PKG_BUILDDEP:=		m4-host flex-host
 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
 
+include ${TOPDIR}/mk/host.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,DC,dc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 
+HOST_STYLE:=		auto
+
 bc-install:
 	${INSTALL_DIR} ${IDIR_BC}/usr/bin
 	${INSTALL_BIN} ${WRKBUILD}/bc/bc ${IDIR_BC}/usr/bin/bc
@@ -28,4 +32,5 @@ dc-install:
 	${INSTALL_DIR} ${IDIR_DC}/usr/bin
 	${INSTALL_BIN} ${WRKBUILD}/dc/dc ${IDIR_DC}/usr/bin/dc
 
+include ${TOPDIR}/mk/host-bottom.mk
 include ${TOPDIR}/mk/pkg-bottom.mk

+ 3 - 3
package/bcm2835-bootloader/Makefile

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

+ 6 - 5
package/bcm2835-vc/Makefile

@@ -4,11 +4,12 @@
 include ${TOPDIR}/rules.mk
 
 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_DEPENDS:=		libpthread
 PKG_BUILDDEP:=		cmake-host

+ 2 - 2
package/binutils/Makefile

@@ -39,8 +39,8 @@ CONFIGURE_ARGS+=	--disable-werror \
 # disable honour cflags stuff
 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:
 	${INSTALL_DIR} ${IDIR_LIBBFD}/usr/lib

+ 3 - 5
package/bison/Makefile

@@ -4,18 +4,16 @@
 include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		bison
-PKG_VERSION:=		3.0.1
+PKG_VERSION:=		3.0.2
 PKG_RELEASE:=		1
-PKG_MD5SUM:=		032a7b7b9f1a6e278ccde73f82cec5c2
-PKG_DESCR:=		GNU parser generator
+PKG_MD5SUM:=		72c66879187c128d04f4ab7422e8072d
+PKG_DESCR:=		parser generator
 PKG_SECTION:=		lang
 PKG_BUILDDEP:=		m4-host flex-host bison-host
 HOST_BUILDDEP:=		m4-host flex-host
 PKG_URL:=		http://www.gnu.org/software/bison/
 PKG_SITES:=		${MASTER_SITE_GNU:=${PKG_NAME}/}
 
-DISTFILES:=		${PKG_NAME}-${PKG_VERSION}.tar.xz
-
 include ${TOPDIR}/mk/host.mk
 include ${TOPDIR}/mk/package.mk
 

+ 6 - 1
package/busybox/Makefile

@@ -5,10 +5,11 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=		busybox
 PKG_VERSION:=		1.21.1
-PKG_RELEASE:=		5
+PKG_RELEASE:=		6
 PKG_MD5SUM:=		795394f83903b5eec6567d51eebb417e
 PKG_DESCR:=		core utilities for embedded systems
 PKG_SECTION:=		base
+PKG_BUILDDEP:=		bzip2-host
 PKG_URL:=		http://www.busybox.net/
 PKG_SITES:=		http://www.busybox.net/downloads/
 
@@ -59,6 +60,10 @@ do-build:
 do-install:
 	$(MAKE) ${BB_MAKE_FLAGS} install $(MAKE_TRACE)
 	$(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)
 	${INSTALL_BIN} $(WRKBUILD)/busybox_unstripped \
 		$(IDIR_BUSYBOX)/bin/busybox

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

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

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