summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-12-13 16:18:40 (GMT)
committerWaldemar Brodkorb <wbx@openadk.org>2015-12-13 16:18:44 (GMT)
commita94d74d9c875b4a1c07945bf9af282221d0178b3 (patch)
treedaa2be873d758ad77006696efde6e76982f24d20
parent74663fdbbd1dc92dd91f6f88dbc4f972df12c404 (diff)
rework prereq check
The new prereq check is completely implemented in POSIX shell in scripts/prereq.sh. It combines the old features from Makefile, scan-tools.sh, scan-pkgs.sh, reloc.sh and some wrappers for tools. The big benefit is to have all portability stuff in one place. Furthermore we can compile GNU make and bash on the fly, for systems lacking the required tools. All changes on the host are detected on the fly, no make prereq required anymore. The build process is separated in following three phases: 1. small wrapper Makefile is used for BSD make or GNU make 2. prereq.sh is called, doing all checking, calling Makefile.adk 3. old logic in Makefile.adk or mk/build.mk is used Tested successfully on Linux, MacOS X, Cygwin, FreeBSD, OpenBSD and NetBSD. An old depmaker bug was fixed, only optional host tools are compiled. For example, even when a host provides xz, a local xz was compiled in the past, because other packages had a build dependency on it. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-rw-r--r--.gitignore3
-rw-r--r--BSDmakefile27
-rw-r--r--Config.in8
-rw-r--r--GNUmakefile24
-rw-r--r--Makefile221
-rw-r--r--Makefile.adk179
-rw-r--r--Makefile.inc4
-rw-r--r--README11
-rw-r--r--adk/config/Makefile10
-rw-r--r--adk/tools/depmaker.c52
-rw-r--r--mk/build.mk116
-rw-r--r--mk/buildhlp.mk2
-rw-r--r--mk/fetch.mk6
-rw-r--r--mk/host-bottom.mk33
-rw-r--r--mk/image.mk5
-rw-r--r--mk/kernel-build.mk25
-rw-r--r--mk/kernel-vars.mk11
-rw-r--r--mk/os.mk16
-rw-r--r--mk/package.mk4
-rw-r--r--mk/pkg-bottom.mk20
-rw-r--r--mk/vars.mk4
-rw-r--r--package/Makefile10
-rw-r--r--package/adk-helper/src/makedevs.c2
-rw-r--r--package/busybox/Makefile2
-rw-r--r--package/glib/Makefile6
-rw-r--r--package/openssl/Makefile4
-rw-r--r--package/pkgconf/Makefile5
-rw-r--r--package/squashfs/Makefile1
-rw-r--r--package/xz/Makefile2
-rw-r--r--rules.mk5
-rwxr-xr-xscripts/adkprepare.sh67
-rwxr-xr-xscripts/bulk-qemu.sh33
-rwxr-xr-xscripts/bulk-toolchain.sh30
-rwxr-xr-xscripts/create-menu1
-rw-r--r--scripts/gcc-bisect.sh206
-rwxr-xr-xscripts/make9
-rwxr-xr-xscripts/prereq.sh643
-rwxr-xr-xscripts/reloc.sh18
-rw-r--r--scripts/scan-pkgs.sh91
-rwxr-xr-xscripts/sha256sum14
-rw-r--r--target/Makefile19
-rw-r--r--target/config/Config.in.adk25
-rw-r--r--target/config/Config.in.target1
-rw-r--r--target/config/Config.in.tools4
-rw-r--r--toolchain/Makefile28
-rw-r--r--toolchain/gcc/Makefile1
46 files changed, 1039 insertions, 969 deletions
diff --git a/.gitignore b/.gitignore
index 2a5c6bb..f5fa5da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,12 +30,11 @@
/toolchain_*/
/.ADK_HAVE_DOT_CONFIG
/.tmpconfig.h
-/.prereq_done
/.config*
/.busyboxcfg
/.rebuild.*
/.defconfig
-/.adkinit
+/.firstrun
/.menu
/all.config
/target_*/
diff --git a/BSDmakefile b/BSDmakefile
deleted file mode 100644
index ddf8691..0000000
--- a/BSDmakefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-ADK_TOPDIR= ${.CURDIR}
-PWD= ${.CURDIR}
-
-.include "${.CURDIR}/Makefile.inc"
-
-.if defined(package) && !empty(package)
-subdir:= package/${package}
-. if !make(clean)
-_subdir_dep:= ${ADK_TOPDIR}/.config
-. endif
-.endif
-
-.if defined(subdir) && !empty(subdir)
-_subdir:= ${.TARGETS}
-${.TARGETS}: _subdir
-
-_subdir: ${_subdir_dep}
- cd ${.CURDIR}/${subdir} && ADK_TOPDIR=${.CURDIR} DEVELOPER=1 \
- ${GMAKE} ADK_VERBOSE=1 ${.MFLAGS} ${_subdir}
-
-. include "${.CURDIR}/prereq.mk"
-.else
-. include "${.CURDIR}/Makefile"
-.endif
diff --git a/Config.in b/Config.in
index 3eb25c5..62838e6 100644
--- a/Config.in
+++ b/Config.in
@@ -10,7 +10,7 @@ config ADK_MODULES
default y
config ADK_HAVE_DOT_CONFIG
- boolean
+ bool
default y
source "target/config/Config.in.appliances"
@@ -44,7 +44,7 @@ menu "Package options"
visible if !ADK_CHOOSE_APPLIANCE
config ADK_LEAVE_ETC_ALONE
- boolean "do not install anything into /etc"
+ bool "do not install anything into /etc"
default n
help
Enabling this option will prevent the ADK from installing anything
@@ -60,7 +60,7 @@ config ADK_LEAVE_ETC_ALONE
on will almost certainly render the resulting system unusable.
config ADK_INSTALL_PACKAGE_INIT_SCRIPTS
- boolean "ship custom init-scripts along with packages"
+ bool "ship custom init-scripts along with packages"
default y
depends on !ADK_LEAVE_ETC_ALONE
help
@@ -72,7 +72,7 @@ config ADK_INSTALL_PACKAGE_INIT_SCRIPTS
off will almost certainly render the resulting system unusable.
config ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS
- boolean "ship custom network-scripts along with packages"
+ bool "ship custom network-scripts along with packages"
default y
depends on !ADK_LEAVE_ETC_ALONE
help
diff --git a/GNUmakefile b/GNUmakefile
deleted file mode 100644
index 1cd7304..0000000
--- a/GNUmakefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-ADK_TOPDIR:= $(shell pwd)
-PWD:= ${ADK_TOPDIR}
-
-include Makefile.inc
-
-ifneq (${package},)
-subdir:= package/${package}
-_subdir_dep:= ${ADK_TOPDIR}/.config
-endif
-
-ifneq (${subdir},)
-${MAKECMDGOALS}: _subdir
-
-_subdir: ${_subdir_dep}
- cd ${subdir} && ADK_TOPDIR=${ADK_TOPDIR} DEVELOPER=1 \
- make ADK_VERBOSE=1 ${MAKEFLAGS} ${MAKECMDGOALS}
-
-include prereq.mk
-else
-include Makefile
-endif
diff --git a/Makefile b/Makefile
index 5ee5335..cce700b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,221 +1,8 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
-_UNLIMIT= __limit=$$(ulimit -dH 2>/dev/null); \
- test -n "$$__limit" && ulimit -Sd $$__limit; ulimit -n 1024;
+# GNU make and BSD make compatible make file wrapper
+MAKECMDGOALS+= ${.TARGETS}
-all: .prereq_done checkreloc
- @${_UNLIMIT} ${GMAKE_INV} all
-
-v: .prereq_done
- @(echo; echo "Build started on $$(LC_ALL=C LANGUAGE=C date)"; \
- set -x; ${_UNLIMIT} ${GMAKE_FMK} ADK_VERBOSE=1 all) 2>&1 | tee -a make.log
-
-help:
- @echo 'Configuration targets:'
- @echo ' config - Update current config utilising a line-oriented program'
- @echo ' menuconfig - Update current config utilising a menu based program'
- @echo ' (default when .config does not exist)'
- @echo ' oldconfig - Update current config utilising a provided .configs base'
- @echo ' defconfig - New config with defaults'
- @echo ' allmodconfig - New config selecting all symbols with m'
- @echo ' allyesconfig - New config selecting all symbols with y'
- @echo ' allnoconfig - New config where all options are answered with no'
- @echo ''
- @echo 'Help targets:'
- @echo ' help - Print this help text'
- @echo ' pkg-help - Print help about selectively compiling single packages'
- @echo ' dev-help - Print help for developers / package maintainers'
- @echo ''
- @echo 'Common targets:'
- @echo ' download - fetches all needed distfiles'
- @echo ' kernelconfig - view the target kernel configuration'
- @echo ''
- @echo 'Cleaning targets:'
- @echo ' clean - Remove firmware and build directories'
- @echo ' cleandir - Same as "clean", but also remove all built toolchains'
- @echo ' cleansystem - Same as "cleandir", but only remove active system'
- @echo ' cleankernel - Remove kernel dir, useful if you changed any kernel patches'
- @echo ' distclean - Same as "cleandir", but also remove downloaded'
- @echo ' distfiles and .config'
- @echo ''
- @echo 'Other generic targets:'
- @echo ' all - Build everything as specified in .config'
- @echo ' (default if .config exists)'
- @echo ' v - Same as "all" but with logging to make.log enabled'
-
-pkg-help:
- @echo 'Package specific targets (use with "package=<pkg-name>" parameter):'
- @echo ' fetch - Download the necessary distfile'
- @echo ' extract - Same as "fetch", but also extract the distfile'
- @echo ' patch - Same as "extract", but also patch the source'
- @echo ' build - Same as "patch", but also build the binaries'
- @echo ' fake - Same as "build", but also install the binaries'
- @echo ' package - Same as "fake", but also create the package'
- @echo ' clean - Deinstall and remove the build area'
- @echo ' distclean - Same as "clean", but also remove the distfiles'
- @echo ''
- @echo 'Short package rebuilding guide:'
- @echo ' run "make package=<pkgname> clean" to remove all generated binaries'
- @echo ' run "make package=<pkgname> package" to build everything and create the package(s)'
- @echo ''
- @echo 'This does not automatically resolve package dependencies!'
-
-dev-help:
- @echo 'Fast way of updating package patches:'
- @echo ' run "make package=<pkgname> clean" to start with a good base'
- @echo ' run "make package=<pkgname> patch" to fetch, unpack and patch the source'
- @echo ' edit the package sources at build_dir/w-<pkgname>-*/<pkgname>-<version>'
- @echo ' run "make package=<pkgname> update-patches" to regenerate patch files'
- @echo ''
- @echo 'All changed patches will be opened with your $$EDITOR,'
- @echo 'so you can add a description and verify the modifications.'
- @echo ''
- @echo 'Adding a new package:'
- @echo 'make PKG=foo VER=1.0 newpackage'
- @echo 'Adding a new simple library package:'
- @echo 'make PKG=foo VER=1.0 TYPE=lib newpackage'
- @echo 'Adding a new simple program package:'
- @echo 'make PKG=foo VER=1.0 TYPE=prog newpackage'
-
-clean: .prereq_done
- -@rm -f nohup.out
- @${GMAKE_INV} clean
-
-config: .prereq_done
- @${GMAKE_INV} _config W=
-
-oldconfig: .prereq_done
- @${GMAKE_INV} _config W=--oldconfig
-
-download: .prereq_done
- @${GMAKE_INV} toolchain/download
- @${GMAKE_INV} dep
- @${GMAKE_INV} package/download
-
-cleankernel kernelclean: .prereq_done
- -@${GMAKE_INV} cleankernel
-
-cleandir dirclean: .prereq_done
- -@${GMAKE_INV} cleandir
- @-rm -f make.log .prereq_done
-
-cleansystem: .prereq_done
- -@${GMAKE_INV} cleansystem
- @-rm -f make.log .prereq_done
-
-distclean cleandist:
- -@${GMAKE_INV} distclean
- @-rm -f make.log .prereq_done
-
-image: .prereq_done
- @${GMAKE_INV} image
-
-targethelp: .prereq_done
- @${GMAKE_INV} targethelp
-
-kernelconfig: .prereq_done
- @${GMAKE_INV} kernelconfig
-
-newpackage: .prereq_done
- @${GMAKE_INV} newpackage
-
-image_clean imageclean cleanimage: .prereq_done
- @${GMAKE_INV} image_clean
-
-menuconfig: .prereq_done
- @${GMAKE_INV} menuconfig
-
-defconfig: .prereq_done
- @${GMAKE_INV} defconfig
-
-allnoconfig: .prereq_done
- @${GMAKE_INV} KCONFIG_ALLCONFIG=all.config _config W=--allnoconfig
-
-allyesconfig: .prereq_done
- @${GMAKE_INV} KCONFIG_ALLCONFIG=all.config _config W=--allyesconfig
-
-allmodconfig: .prereq_done
- @${GMAKE_INV} KCONFIG_ALLCONFIG=all.config _config W=--allmodconfig
-
-package_index: .prereq_done
- @${GMAKE_INV} package_index
-
-buildall: .prereq_done
- @${GMAKE_INV} buildall
-
-check: .prereq_done
- @${GMAKE_INV} check
-
-check-gcc: .prereq_done
- @${GMAKE_INV} check-gcc
-
-check-g++: .prereq_done
- @${GMAKE_INV} check-g++
-
-menu: .prereq_done
- @${GMAKE_INV} menu
-
-dep: .prereq_done
- @${GMAKE_INV} dep
-
-world: .prereq_done
- @${GMAKE_INV} world
-
-prereq:
- @rm -f .prereq_done
- @${GMAKE} .prereq_done
-
-prereq-noerror:
- @rm -f .prereq_done
- @${GMAKE} .prereq_done NO_ERROR=1
-
-NO_ERROR=0
-.prereq_done:
- @-rm -rf .prereq_done
- @if ! bash --version 2>&1 | grep -F 'GNU bash' >/dev/null 2>&1; then \
- echo "GNU bash needs to be installed."; \
- exit 1; \
- fi
- @echo "ADK_TOPDIR:=$$(readlink -nf . 2>/dev/null || pwd -P)" >prereq.mk
- @echo "BASH:=$$(which bash)" >>prereq.mk
- @if [ -z "$$(which gmake 2>/dev/null )" ]; then \
- echo "GMAKE:=$$(which make)" >>prereq.mk ;\
- else \
- echo "GMAKE:=$$(which gmake)" >>prereq.mk ;\
- fi
- @echo "GNU_HOST_NAME:=$$(${CC} -dumpmachine)" >>prereq.mk
- @echo "ARCH_FOR_BUILD:=$$(${CC} -dumpmachine | sed \
- -e 's/x86_64-linux-gnux32/x32/' \
- -e s'/-.*//' \
- -e 's/sparc.*/sparc/' \
- -e 's/armeb.*/armeb/g' \
- -e 's/arm.*/arm/g' \
- -e 's/m68k.*/m68k/' \
- -e 's/sh[234]/sh/' \
- -e 's/mips-.*/mips/' \
- -e 's/mipsel-.*/mipsel/' \
- -e 's/i[3-9]86/x86/' \
- )" >>prereq.mk
- @echo 'HOST_CC:=${CC}' >>prereq.mk
- @echo 'HOST_CXX:=${CXX}' >>prereq.mk
- @echo 'LANGUAGE:=C' >>prereq.mk
- @echo 'LC_ALL:=C' >>prereq.mk
- @echo 'MAKE:=$${GMAKE}' >>prereq.mk
- @echo "OStype:=$$(env uname)" >>prereq.mk
- @echo "_PATH:=$$PATH" >>prereq.mk
- @echo "PATH:=\$${ADK_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
- @echo '===> Prerequisites checked successfully.'
- @touch .adkinit
- @touch $@
-
-checkreloc:
- @bash scripts/reloc.sh
-
-.PHONY: prereq prereq-noerror checkreloc
-# DO NOT DELETE
+all v help targethelp kernelconfig image menuconfig download clean cleankernel cleansystem cleandir distclean hostclean hostpackage fetch package extract patch dep menu:
+ @./scripts/prereq.sh ${MAKECMDGOALS}
diff --git a/Makefile.adk b/Makefile.adk
new file mode 100644
index 0000000..b8fe31e
--- /dev/null
+++ b/Makefile.adk
@@ -0,0 +1,179 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+ADK_TOPDIR:= $(shell pwd)
+GMAKE_FMK= ${MAKE} -f $(PWD)/mk/build.mk
+GMAKE_INV= ${GMAKE_FMK} --no-print-directory
+
+_UNLIMIT= __limit=$$(ulimit -dH 2>/dev/null); \
+ test -n "$$__limit" && ulimit -Sd $$__limit; ulimit -n 1024;
+
+ifneq (${package},)
+subdir:= package/${package}
+_subdir_dep:= ${ADK_TOPDIR}/.config
+endif
+
+ifneq (${subdir},)
+${MAKECMDGOALS}: _subdir
+
+_subdir: ${_subdir_dep}
+ cd ${subdir} && ADK_TOPDIR=${ADK_TOPDIR} DEVELOPER=1 \
+ $(MAKE) ADK_VERBOSE=1 ${MAKECMDGOALS}
+
+endif
+
+all:
+ @${_UNLIMIT} $(GMAKE_INV) world
+
+v:
+ @(echo; echo "Build started on $$(LC_ALL=C LANGUAGE=C date)"; \
+ set -x; ${_UNLIMIT} ${GMAKE_FMK} ADK_VERBOSE=1 all) 2>&1 | tee -a make.log
+
+help:
+ @echo 'Configuration targets:'
+ @echo ' config - Update current config utilising a line-oriented program'
+ @echo ' menuconfig - Update current config utilising a menu based program'
+ @echo ' (default when .config does not exist)'
+ @echo ' oldconfig - Update current config utilising a provided .configs base'
+ @echo ' defconfig - New config with defaults'
+ @echo ' allmodconfig - New config selecting all symbols with m'
+ @echo ' allyesconfig - New config selecting all symbols with y'
+ @echo ' allnoconfig - New config where all options are answered with no'
+ @echo ''
+ @echo 'Help targets:'
+ @echo ' help - Print this help text'
+ @echo ' pkg-help - Print help about selectively compiling single packages'
+ @echo ' dev-help - Print help for developers / package maintainers'
+ @echo ''
+ @echo 'Common targets:'
+ @echo ' download - fetches all needed distfiles'
+ @echo ' kernelconfig - view the target kernel configuration'
+ @echo ''
+ @echo 'Cleaning targets:'
+ @echo ' clean - Remove firmware and build directories'
+ @echo ' cleandir - Same as "clean", but also remove all built toolchains'
+ @echo ' cleansystem - Same as "cleandir", but only remove active system'
+ @echo ' cleankernel - Remove kernel dir, useful if you changed any kernel patches'
+ @echo ' distclean - Same as "cleandir", but also remove downloaded'
+ @echo ' distfiles and .config'
+ @echo ''
+ @echo 'Other generic targets:'
+ @echo ' all - Build everything as specified in .config'
+ @echo ' (default if .config exists)'
+ @echo ' v - Same as "all" but with logging to make.log enabled'
+
+pkg-help:
+ @echo 'Package specific targets (use with "package=<pkg-name>" parameter):'
+ @echo ' fetch - Download the necessary distfile'
+ @echo ' extract - Same as "fetch", but also extract the distfile'
+ @echo ' patch - Same as "extract", but also patch the source'
+ @echo ' build - Same as "patch", but also build the binaries'
+ @echo ' fake - Same as "build", but also install the binaries'
+ @echo ' package - Same as "fake", but also create the package'
+ @echo ' clean - Deinstall and remove the build area'
+ @echo ' distclean - Same as "clean", but also remove the distfiles'
+ @echo ''
+ @echo 'Short package rebuilding guide:'
+ @echo ' run "make package=<pkgname> clean" to remove all generated binaries'
+ @echo ' run "make package=<pkgname> package" to build everything and create the package(s)'
+ @echo ''
+ @echo 'This does not automatically resolve package dependencies!'
+
+dev-help:
+ @echo 'Fast way of updating package patches:'
+ @echo ' run "make package=<pkgname> clean" to start with a good base'
+ @echo ' run "make package=<pkgname> patch" to fetch, unpack and patch the source'
+ @echo ' edit the package sources at build_dir/w-<pkgname>-*/<pkgname>-<version>'
+ @echo ' run "make package=<pkgname> update-patches" to regenerate patch files'
+ @echo ''
+ @echo 'All changed patches will be opened with your $$EDITOR,'
+ @echo 'so you can add a description and verify the modifications.'
+ @echo ''
+ @echo 'Adding a new package:'
+ @echo 'make PKG=foo VER=1.0 newpackage'
+ @echo 'Adding a new simple library package:'
+ @echo 'make PKG=foo VER=1.0 TYPE=lib newpackage'
+ @echo 'Adding a new simple program package:'
+ @echo 'make PKG=foo VER=1.0 TYPE=prog newpackage'
+
+clean:
+ @${GMAKE_INV} clean
+
+config:
+ @${GMAKE_INV} _config W=
+
+oldconfig:
+ @${GMAKE_INV} _config W=--oldconfig
+
+download:
+ @${GMAKE_INV} toolchain/download
+ @${GMAKE_INV} dep
+ @${GMAKE_INV} package/download
+
+cleankernel:
+ -@${GMAKE_INV} cleankernel
+
+cleandir:
+ -@${GMAKE_INV} cleandir
+
+cleansystem:
+ -@${GMAKE_INV} cleansystem
+
+distclean:
+ -${GMAKE_INV} distclean
+
+image:
+ @${GMAKE_INV} image
+
+targethelp:
+ @${GMAKE_INV} targethelp
+
+kernelconfig:
+ @${GMAKE_INV} kernelconfig
+
+newpackage:
+ @${GMAKE_INV} newpackage
+
+image_clean imageclean cleanimage:
+ @${GMAKE_INV} image_clean
+
+menuconfig:
+ @${GMAKE_INV} menuconfig
+
+defconfig:
+ @${GMAKE_INV} defconfig
+
+allnoconfig:
+ @${GMAKE_INV} KCONFIG_ALLCONFIG=all.config _config W=--allnoconfig
+
+allyesconfig:
+ @${GMAKE_INV} KCONFIG_ALLCONFIG=all.config _config W=--allyesconfig
+
+allmodconfig:
+ @${GMAKE_INV} KCONFIG_ALLCONFIG=all.config _config W=--allmodconfig
+
+package_index:
+ @${GMAKE_INV} package_index
+
+buildall:
+ @${GMAKE_INV} buildall
+
+check:
+ @${GMAKE_INV} check
+
+check-gcc:
+ @${GMAKE_INV} check-gcc
+
+check-g++:
+ @${GMAKE_INV} check-g++
+
+menu:
+ @${GMAKE_INV} menu
+
+dep:
+ @${GMAKE_INV} dep
+
+world:
+ @${GMAKE_INV} world
+
+# DO NOT DELETE
diff --git a/Makefile.inc b/Makefile.inc
deleted file mode 100644
index 4cc06df..0000000
--- a/Makefile.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-CC?= gcc
-GMAKE?= env ${GMAKE_ENV} $(PWD)/scripts/make
-GMAKE_FMK= ${GMAKE} -f $(PWD)/mk/build.mk
-GMAKE_INV= ${GMAKE_FMK} --no-print-directory
diff --git a/README b/README
index 03ac4a4..882b777 100644
--- a/README
+++ b/README
@@ -4,26 +4,25 @@ OpenADK - An embedded Linux construction kit
This is a menu based buildsystem for your embedded Linux system.
Before you can start you need to install some software:
-- bash
- gcc or clang
- g++ or clang++
- binutils
-- GNU make
+- make
- tar
- gzip
-- wget
- perl
+- curl or wget
- c library headers
- ncurses library and header
-- zlib library and header
There is a check for the required versions of these software in advance, though.
-(to re-issue the checks, use "make prereq").
+Most of the needed software for the build process to succeed will
+be compiled before the target build starts.
Please use "make menuconfig" to choose your target architecture and
embedded system and configure like you want to.
-Simply running 'make' will build the firmware for your embedded system. The
+Simply running 'make' will build the firmware for your embedded system. The
buildsystem will download all sources, build the toolchain, the kernel and all
applications.
diff --git a/adk/config/Makefile b/adk/config/Makefile
index 8481e3b..48e1098 100644
--- a/adk/config/Makefile
+++ b/adk/config/Makefile
@@ -69,19 +69,19 @@ MCONF_OBJS=$(patsubst %.c,%.o, $(MCONF_SRC))
SHARED_OBJS=$(patsubst %.c,%.o, $(SHARED_SRC))
conf: $(CONF_OBJS) $(SHARED_OBJS)
- @$(HOST_CC) $(HOST_CFLAGS) $^ -o $@
+ @$(HOST_CC) $(HOST_CFLAGS) $^ -o $@ 2>/dev/null
mconf: $(MCONF_OBJS) $(SHARED_OBJS)
- @$(HOST_CC) $(HOST_CFLAGS) $^ -o $@ $(LIBS)
+ @$(HOST_CC) $(HOST_CFLAGS) $^ -o $@ $(LIBS) 2>/dev/null
$(CONF_OBJS): %.o : %.c $(SHARED_DEPS)
- @$(HOST_CC) $(HOST_CFLAGS) -I. -c $< -o $@
+ @$(HOST_CC) $(HOST_CFLAGS) -I. -c $< -o $@ 2>/dev/null
$(MCONF_OBJS): %.o : %.c $(SHARED_DEPS)
- @$(HOST_CC) $(HOST_CFLAGS) -I. -c $< -o $@
+ @$(HOST_CC) $(HOST_CFLAGS) -I. -c $< -o $@ 2>/dev/null
glob.o: glob.c $(SHARED_DEPS)
- @$(HOST_CC) $(HOST_CFLAGS) -I. -c glob.c -o $@
+ @$(HOST_CC) $(HOST_CFLAGS) -I. -c glob.c -o $@ 2>/dev/null
lkc_defs.h: lkc_proto.h
@sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
diff --git a/adk/tools/depmaker.c b/adk/tools/depmaker.c
index d5ef100..275fa4e 100644
--- a/adk/tools/depmaker.c
+++ b/adk/tools/depmaker.c
@@ -1,7 +1,7 @@
/*
* depmaker - create package/Depends.mk for OpenADK buildsystem
*
- * Copyright (C) 2010-2014 Waldemar Brodkorb <wbx@openadk.org>
+ * Copyright (C) 2010-2015 Waldemar Brodkorb <wbx@openadk.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -67,8 +67,9 @@ static int check_symbol(char *symbol) {
/*@null@*/
static char *parse_line(char *package, char *pkgvar, char *string, int checksym, int pprefix, int system, int *prefixp) {
- char *key, *value, *dep, *key_sym, *pkgdeps;
+ char *key, *value, *dep, *key_sym, *pkgdeps, *depvar;
char temp[MAXLINE];
+ int i;
string[strlen(string)-1] = '\0';
if ((key = strtok(string, ":=")) == NULL) {
@@ -121,6 +122,51 @@ static char *parse_line(char *package, char *pkgvar, char *string, int checksym,
value = strtok(NULL, "=\t");
dep = strtok(value, " ");
while (dep != NULL) {
+ /* check only for optional host tools, if they are required to build */
+ if (checksym == 2) {
+ if ((depvar = malloc(MAXLINE)) != NULL)
+ memset(depvar, 0, MAXLINE);
+ else {
+ perror("Can not allocate memory.");
+ exit(EXIT_FAILURE);
+ }
+ strncat(depvar, dep, strlen(dep)-5);
+ if ((strncmp(depvar, "bc", 2) == 0) ||
+ (strncmp(depvar, "file", 4) == 0) ||
+ (strncmp(depvar, "gawk", 4) == 0) ||
+ (strncmp(depvar, "grep", 4) == 0) ||
+ (strncmp(depvar, "patch", 5) == 0) ||
+ (strncmp(depvar, "sed", 3) == 0) ||
+ (strncmp(depvar, "xz", 2) == 0)) {
+
+ /* transform to uppercase variable name */
+ for (i=0; i<(int)strlen(depvar); i++) {
+ if (depvar[i] == '+')
+ depvar[i] = 'X';
+ if (depvar[i] == '-')
+ depvar[i] = '_';
+ depvar[i] = toupper(depvar[i]);
+ }
+
+ /* extract symbol */
+ if ((key_sym = malloc(MAXLINE)) != NULL)
+ memset(key_sym, 0, MAXLINE);
+ else {
+ perror("Can not allocate memory.");
+ exit(EXIT_FAILURE);
+ }
+ if (snprintf(key_sym, MAXLINE, "ADK_HOST_BUILD_%s", depvar) < 0)
+ perror("Can not create string variable.");
+
+ if (check_symbol(key_sym) != 0) {
+ free(key_sym);
+ free(depvar);
+ return(NULL);
+ }
+ free(key_sym);
+ free(depvar);
+ }
+ }
if (*prefixp == 0) {
*prefixp = 1;
if (snprintf(temp, MAXLINE, "%s-compile: %s-compile", package, dep) < 0)
@@ -295,7 +341,7 @@ int main() {
} else if (strncmp(buf, "HOST_BUILDDEP", 13) == 0) {
asprintf(&string, "%s-host", pkgdirp->d_name);
// check retval; string for NULL
- tmp = parse_line(string, NULL, buf, 0, 0, 0, &hprefix);
+ tmp = parse_line(string, NULL, buf, 2, 0, 0, &hprefix);
if (tmp && *tmp) {
asprintf(&string, "%s%s",
hpkgdeps ? hpkgdeps : "",
diff --git a/mk/build.mk b/mk/build.mk
index 3d0124c..d7e3211 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -1,9 +1,6 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
-ADK_TOPDIR=$(shell pwd)
-export ADK_TOPDIR
-
CONFIG_CONFIG_IN = Config.in
CONFIG = adk/config
DEFCONFIG= ADK_DEBUG=n \
@@ -95,9 +92,7 @@ noconfig_targets:= menuconfig \
defconfig
POSTCONFIG= -@\
- if [ -f .adkinit ];then rm .adkinit;\
- else \
- if [ -f .config.old ];then \
+ if [ ! -f .firstrun ]; then \
$(ADK_TOPDIR)/adk/tools/pkgrebuild;\
rebuild=0; \
cleandir=0; \
@@ -133,22 +128,14 @@ POSTCONFIG= -@\
cleandir=1;\
rebuild=1;\
fi; \
- if [ "$$(grep ^ADK_TARGET_ARCH .config|md5sum)" != "$$(grep ^ADK_TARGET_ARCH .config.old|md5sum)" ];then \
- cleandir=1;\
- rebuild=1;\
- fi; \
- if [ "$$(grep ^ADK_TARGET_SYSTEM .config|md5sum)" != "$$(grep ^ADK_TARGET_SYSTEM .config.old|md5sum)" ];then \
- cleandir=1;\
- rebuild=1;\
- fi; \
if [ $$cleandir -eq 1 ];then \
- echo "You should rebuild with 'make cleandir'";\
+ echo "You should rebuild with 'make cleansystem'";\
fi; \
if [ $$rebuild -eq 1 ];then \
cp .config .config.old;\
fi; \
fi; \
- fi
+ if [ -f .firstrun ]; then rm .firstrun; fi
# Pull in the user's configuration file
ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
@@ -161,8 +148,9 @@ include $(ADK_TOPDIR)/rules.mk
all: world
${ADK_TOPDIR}/package/Depends.mk: ${ADK_TOPDIR}/.config $(wildcard ${ADK_TOPDIR}/package/*/Makefile) $(ADK_TOPDIR)/adk/tools/depmaker
- @echo "Generating dependencies ..."
+ @printf " ---> generating dependencies.. "
$(ADK_TOPDIR)/adk/tools/depmaker > ${ADK_TOPDIR}/package/Depends.mk
+ @printf "done\n"
.NOTPARALLEL:
.PHONY: all world clean cleandir cleansystem distclean image_clean
@@ -170,7 +158,6 @@ ${ADK_TOPDIR}/package/Depends.mk: ${ADK_TOPDIR}/.config $(wildcard ${ADK_TOPDIR}
world:
@mkdir -p $(DL_DIR) $(HOST_BUILD_DIR) $(BUILD_DIR) $(TARGET_DIR) $(FW_DIR) \
$(STAGING_HOST_DIR) $(TOOLCHAIN_BUILD_DIR) $(STAGING_PKG_DIR)/stamps
- ${BASH} ${ADK_TOPDIR}/scripts/scan-pkgs.sh
ifeq ($(ADK_TARGET_TOOLCHAIN),y)
ifeq ($(ADK_TOOLCHAIN_ONLY),y)
$(MAKE) -f mk/build.mk package/hostcompile toolchain/final package/compile
@@ -192,12 +179,17 @@ ifeq ($(ADK_TARGET_PACKAGE_OPKG),y)
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}/{usr/bin,usr/lib,usr/include}
- @for i in lib64 lib32 libx32;do \
- cd ${STAGING_TARGET_DIR}/; ln -sf lib $$i; \
+ mkdir -p ${STAGING_TARGET_DIR}/bin
+ mkdir -p ${STAGING_TARGET_DIR}/etc
+ mkdir -p ${STAGING_TARGET_DIR}/usr/bin
+ mkdir -p ${STAGING_TARGET_DIR}/lib
+ mkdir -p ${STAGING_HOST_DIR}/usr/bin
+ mkdir -p ${STAGING_HOST_DIR}/usr/lib
+ mkdir -p ${STAGING_HOST_DIR}/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; \
- cd ${STAGING_HOST_DIR}/; ln -sf lib $$i; \
+ cd ${STAGING_HOST_DIR}; ln -sf lib $$i; \
cd ${STAGING_HOST_DIR}/usr; ln -sf lib $$i; \
done
@@ -237,7 +229,6 @@ newpackage:
@echo "Edit package/$(PKG)/Makefile to complete"
root_clean:
- @$(TRACE) root_clean
rm -rf $(TARGET_DIR)
mkdir -p $(TARGET_DIR)
touch $(TARGET_DIR)/.adk
@@ -248,7 +239,7 @@ root_clean:
# dependencies information.
clean:
- @$(TRACE) clean
+ @printf " ---> cleaning target build directories and files.. "
$(MAKE) -C $(CONFIG) clean
for f in $$(ls ${STAGING_PKG_DIR}/ 2>/dev/null |grep -v [A-Z]|grep -v stamps 2>/dev/null); do \
while read file ; do \
@@ -259,19 +250,23 @@ clean:
rm -rf $(BUILD_DIR) $(FW_DIR) $(TARGET_DIR) \
${ADK_TOPDIR}/package/pkglist.d
rm -f ${ADK_TOPDIR}/package/Depends.mk
+ @printf "done\n"
cleankernel:
- @$(TRACE) cleankernel
+ @printf " ---> cleaning kernel build directories.. "
@rm -rf $(TOOLCHAIN_BUILD_DIR)/w-linux* $(BUILD_DIR)/linux
+ @printf "done\n"
cleandir:
- @$(TRACE) cleandir
+ @printf " ---> cleaning all build directories and files.. "
@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
@rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) \
${ADK_TOPDIR}/package/pkglist.d ${ADK_TOPDIR}/package/pkgconfigs.d
@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* ${ADK_TOPDIR}/package/Depends.mk ${ADK_TOPDIR}/prereq.mk
+ @rm -f .menu .tmpconfig.h .rebuild*
+ @rm -f ${ADK_TOPDIR}/package/Depends.mk ${ADK_TOPDIR}/prereq.mk
+ @printf "done\n"
cleansystem:
@$(TRACE) cleansystem
@@ -280,20 +275,22 @@ cleansystem:
${ADK_TOPDIR}/package/pkglist.d ${ADK_TOPDIR}/package/pkgconfigs.d
@rm -rf $(TOOLCHAIN_DIR) $(STAGING_TARGET_DIR) $(STAGING_PKG_DIR) $(TOOLCHAIN_BUILD_DIR)
@rm -f .menu .tmpconfig.h .rebuild* ${ADK_TOPDIR}/package/Depends.mk ${ADK_TOPDIR}/prereq.mk
+ @printf "done\n"
distclean:
- @$(TRACE) distclean
+ @printf " ---> cleaning build directories, files and downloads.. "
@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
@rm -rf $(TOOLCHAIN_DIR_PFX) $(STAGING_HOST_DIR_PFX)
@rm -rf $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
@rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) $(DL_DIR)
@rm -rf package/pkglist.d package/pkgconfigs.d
- @rm -f .adkinit .config* .defconfig .tmpconfig.h all.config prereq.mk
- @rm -f .menu package/Depends.mk .ADK_HAVE_DOT_CONFIG .rebuild.*
+ @rm -f .config* .defconfig .tmpconfig.h all.config prereq.mk
+ @rm -f .firstrun .menu package/Depends.mk .ADK_HAVE_DOT_CONFIG .rebuild.*
@rm -f target/*/Config.in.arch* target/*/Config.in.system*
@rm -f package/Config.in.auto* package/Config.in.appliances
@rm -f target/config/Config.in.prereq target/config/Config.in.scripts
@rm -f adk/tools/pkgmaker adk/tools/depmaker adk/tools/pkgrebuild
+ @printf "done\n"
else # ! ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y)
@@ -301,7 +298,6 @@ ifeq ($(filter-out distclean,${MAKECMDGOALS}),)
include ${ADK_TOPDIR}/mk/vars.mk
else
include $(ADK_TOPDIR)/prereq.mk
-export HOST_CC HOST_CXX BASH MAKE LANGUAGE LC_ALL OStype PATH QEMU SHELL
endif
all: menuconfig
@@ -450,50 +446,8 @@ defconfig: .menu $(CONFIG)/conf
@if [ ! -z "$(ADK_APPLIANCE)" ];then \
$(CONFIG)/conf --defconfig=.defconfig $(CONFIG_CONFIG_IN); \
fi
-ifeq (${OStype},Linux)
- @echo ADK_HOST_LINUX=y >> $(ADK_TOPDIR)/.config
-endif
-ifeq (${OStype},FreeBSD)
- @echo ADK_HOST_FREEBSD=y >> $(ADK_TOPDIR)/.config
-endif
-ifeq (${OStype},MirBSD)
- @echo ADK_HOST_MIRBSD=y >> $(ADK_TOPDIR)/.config
-endif
-ifeq (${OStype},OpenBSD)
- @echo ADK_HOST_OPENBSD=y >> $(ADK_TOPDIR)/.config
-endif
-ifeq (${OStype},NetBSD)
- @echo ADK_HOST_NETBSD=y >> $(ADK_TOPDIR)/.config
-endif
-ifeq (${OStype},Darwin)
- @echo ADK_HOST_DARWIN=y >> $(ADK_TOPDIR)/.config
-endif
-ifneq (,$(filter CYGWIN%,${OStype}))
- @echo ADK_HOST_CYGWIN=y >> $(ADK_TOPDIR)/.config
-endif
allconfig:
-ifeq (${OStype},Linux)
- @echo ADK_HOST_LINUX=y > $(ADK_TOPDIR)/all.config
-endif
-ifeq (${OStype},FreeBSD)
- @echo ADK_HOST_FREEBSD=y > $(ADK_TOPDIR)/all.config
-endif
-ifeq (${OStype},MirBSD)
- @echo ADK_HOST_MIRBSD=y > $(ADK_TOPDIR)/all.config
-endif
-ifeq (${OStype},OpenBSD)
- @echo ADK_HOST_OPENBSD=y > $(ADK_TOPDIR)/all.config
-endif
-ifeq (${OStype},NetBSD)
- @echo ADK_HOST_NETBSD=y > $(ADK_TOPDIR)/all.config
-endif
-ifeq (${OStype},Darwin)
- @echo ADK_HOST_DARWIN=y > $(ADK_TOPDIR)/all.config
-endif
-ifneq (,$(filter CYGWIN%,${OStype}))
- @echo ADK_HOST_CYGWIN=y > $(ADK_TOPDIR)/all.config
-endif
@if [ ! -z "$(ADK_APPLIANCE)" ];then \
grep "^config" target/config/Config.in.appliances \
|grep -i "_$(ADK_APPLIANCE)"\$$ \
@@ -541,19 +495,21 @@ _config: $(CONFIG)/conf allconfig .menu
@$(CONFIG)/conf ${W} $(CONFIG_CONFIG_IN)
${POSTCONFIG}
-distclean:
+distclean cleandir:
+ @printf " ---> cleaning build directories, files and downloads.. "
@$(MAKE) -C $(CONFIG) clean
@rm -rf $(BUILD_DIR_PFX) $(FW_DIR_PFX) $(TARGET_DIR_PFX) $(DL_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 package/pkglist.d package/pkgconfigs.d
- @rm -f .adkinit .config* .defconfig .tmpconfig.h all.config
+ @rm -f .config* .defconfig .tmpconfig.h all.config
@rm -f .menu .rebuild.* package/Depends.mk .ADK_HAVE_DOT_CONFIG prereq.mk
@rm -f target/*/Config.in.arch*
@rm -f target/*/Config.in.system*
@rm -f package/Config.in.auto* package/Config.in.appliances
@rm -f target/config/Config.in.prereq target/config/Config.in.scripts
@rm -f adk/tools/pkgmaker adk/tools/depmaker adk/tools/pkgrebuild
+ @printf "done\n"
endif # ! ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y)
@@ -573,14 +529,16 @@ $(ADK_TOPDIR)/adk/tools/depmaker: $(ADK_TOPDIR)/adk/tools/depmaker.c
@$(HOST_CC) $(HOST_CFLAGS) -o $@ $(ADK_TOPDIR)/adk/tools/depmaker.c
menu .menu: $(wildcard package/*/Makefile) $(wildcard target/*/systems) $(wildcard target/*/systems/*) $(ADK_TOPDIR)/adk/tools/pkgmaker $(ADK_TOPDIR)/adk/tools/pkgrebuild $(wildcard target/appliances/*)
- @echo "Generating menu structure ..."
- @$(BASH) $(ADK_TOPDIR)/scripts/create-menu
+ @printf " ---> generating menu structure.. "
+ @$(SHELL) $(ADK_TOPDIR)/scripts/create-menu
@$(ADK_TOPDIR)/adk/tools/pkgmaker
@:>.menu
+ @printf "done\n"
dep: $(ADK_TOPDIR)/adk/tools/depmaker
- @echo "Generating dependencies ..."
+ @printf " ---> generating dependencies.. "
@$(ADK_TOPDIR)/adk/tools/depmaker > ${ADK_TOPDIR}/package/Depends.mk
+ @printf "done\n"
.PHONY: menu dep
diff --git a/mk/buildhlp.mk b/mk/buildhlp.mk
index ae52fc1..f664e19 100644
--- a/mk/buildhlp.mk
+++ b/mk/buildhlp.mk
@@ -82,7 +82,7 @@ ${WRKDIST}/.prepared: ${WRKDIST}/.extract_done
$(MAKE_TRACE)
@${MAKE} post-patch $(MAKE_TRACE)
# always use latest config.sub/config.guess from OpenADK scripts directory
- cd ${WRKDIST}; \
+ @cd ${WRKDIST}; \
for i in $$(find . -name config.sub);do \
if [ -f $$i ]; then \
${CP} ${SCRIPT_DIR}/config.sub $$i; \
diff --git a/mk/fetch.mk b/mk/fetch.mk
index dfd190a..13673b4 100644
--- a/mk/fetch.mk
+++ b/mk/fetch.mk
@@ -31,7 +31,7 @@ ifneq ($(ADK_DISABLE_CHECKSUM),y)
@if [ ! -e $(firstword ${FULLDISTFILES}).nohash ]; then \
OK=n; \
allsums="$(strip ${PKG_HASH})"; \
- (PATH='$(HOST_PATH)' sha256sum ${FULLDISTFILES}; echo exit) | while read sum name; do \
+ ($${SHA256} ${FULLDISTFILES}; echo exit) | while read sum name; do \
if [[ $$sum = exit ]]; then \
[[ $$OK = n ]] && echo >&2 "==> No distfile found!" || :; \
[[ $$OK = 1 ]] || exit 1; \
@@ -81,9 +81,9 @@ $(1):
;; \
http://*|https://*|ftp://*) \
for site in $${PKG_SITES} $${MASTER_SITE_BACKUP}; do \
- : echo "$${FETCH_CMD} $$$$site$$$$filename"; \
+ : echo "$${FETCHCMD} $$$$site$$$$filename"; \
rm -f "$$$$filename"; \
- if $${FETCH_CMD} $$$$site$$$$filename; then \
+ if $${FETCHCMD} $$$$filename $$$$site$$$$filename; then \
: check the size here; \
[[ ! -e $$$$filename ]] || exit 0; \
fi; \
diff --git a/mk/host-bottom.mk b/mk/host-bottom.mk
index caba52f..e28b1da 100644
--- a/mk/host-bottom.mk
+++ b/mk/host-bottom.mk
@@ -6,10 +6,10 @@ host-extract: ${_HOST_PATCH_COOKIE}
hostpre-configure:
host-configure:
${_HOST_CONFIGURE_COOKIE}: ${_HOST_PATCH_COOKIE}
- @mkdir -p ${WRKBUILD}
- @$(CMD_TRACE) "host configuring... "
+ mkdir -p ${WRKBUILD}
+ @$(CMD_TRACE) "configuring.. "
ifneq (,$(filter autogen,${AUTOTOOL_STYLE}))
- @$(CMD_TRACE) "autotool configuring... "
+ @$(CMD_TRACE) "autotool configuring.. "
@cd ${WRKSRC}; env ${AUTOTOOL_ENV} $(BASH) autogen.sh $(MAKE_TRACE)
endif
ifneq (,$(filter autoreconf,${AUTOTOOL_STYLE}))
@@ -17,17 +17,6 @@ ifneq (,$(filter autoreconf,${AUTOTOOL_STYLE}))
@rm -rf ${WRKSRC}/autom4te.cache
@touch ${WRKDIR}/.autoreconf_done
endif
- @cd ${WRKBUILD}; \
- for i in $$(find . -name config.sub);do \
- if [ -f $$i ]; then \
- ${CP} ${SCRIPT_DIR}/config.sub $$i; \
- fi; \
- done; \
- for i in $$(find . -name config.guess);do \
- if [ -f $$i ]; then \
- ${CP} ${SCRIPT_DIR}/config.guess $$i; \
- fi; \
- done;
@${MAKE} hostpre-configure $(MAKE_TRACE)
ifeq (${HOST_STYLE},)
cd ${WRKBUILD}; \
@@ -70,7 +59,7 @@ ifeq (${HOST_STYLE},manual)
${MAKE} host-configure $(MAKE_TRACE)
endif
ifeq (${HOST_STYLE},perl)
- @$(CMD_TRACE) "configuring perl module... "
+ @$(CMD_TRACE) "configuring perl module.. "
cd ${WRKBUILD}; \
PATH='${HOST_PATH}' \
PERL_MM_USE_DEFAULT=1 \
@@ -83,7 +72,7 @@ endif
host-build:
${_HOST_BUILD_COOKIE}: ${_HOST_CONFIGURE_COOKIE}
ifneq (${HOST_STYLE},manual)
- @$(CMD_TRACE) "host compiling... "
+ @$(CMD_TRACE) "compiling.. "
cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
${HOST_MAKE_FLAGS} ${HOST_ALL_TARGET} $(MAKE_TRACE)
endif
@@ -93,7 +82,7 @@ endif
hostpost-install:
host-install: ${ALL_HOSTINST}
${_HOST_FAKE_COOKIE}: ${_HOST_BUILD_COOKIE}
- @$(CMD_TRACE) "host installing... "
+ @$(CMD_TRACE) "installing.. "
@mkdir -p ${HOST_WRKINST}
ifeq (${HOST_STYLE},)
cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
@@ -113,16 +102,18 @@ endif
$(SED) "s,^prefix=.*,prefix=$(STAGING_HOST_DIR)/usr," $$a; \
chmod u+x $(STAGING_HOST_DIR)/usr/bin/$$(basename $$a); \
done
- @touch $@
+ touch $@
${_HOST_COOKIE}:
+ printf wbxdebug
exec ${MAKE} hostpackage
ifeq ($(HOST_LINUX_ONLY),)
hostpackage: ${ALL_HOSTDIRS}
- @touch ${_HOST_COOKIE}
+ touch ${_HOST_COOKIE}
endif
hostclean:
- @$(CMD_TRACE) "cleaning... "
- rm -rf ${WRKDIR} ${STAGING_PKG_DIR}/stamps/${PKG_NAME}*-host
+ @$(CMD_TRACE) "cleaning.. "
+ rm -r ${STAGING_PKG_DIR}/stamps/${PKG_NAME}*-host
+ rm -rf ${WRKDIR}
diff --git a/mk/image.mk b/mk/image.mk
index 5711140..15ebae3 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -107,15 +107,16 @@ ROOTFSUSERTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.
ROOTFSISO= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}.iso
kernel-package: kernel-strip
- $(TRACE) target/$(ADK_TARGET_ARCH)-create-kernel-package
+ $(START_TRACE) "target/$(ADK_TARGET_ARCH)-create-kernel-package.. "
rm -rf $(KERNEL_PKGDIR)
@mkdir -p $(KERNEL_PKGDIR)/boot
cp $(BUILD_DIR)/$(TARGET_KERNEL) $(KERNEL_PKGDIR)/boot/kernel
@${BASH} ${SCRIPT_DIR}/make-ipkg-dir.sh ${KERNEL_PKGDIR} \
../linux/kernel.control ${KERNEL_VERSION} ${ADK_TARGET_CPU_ARCH}
$(PKG_BUILD) $(KERNEL_PKGDIR) $(PACKAGE_DIR) $(MAKE_TRACE)
- $(TRACE) target/$(ADK_TARGET_ARCH)-install-kernel-package
$(PKG_INSTALL) $(KERNEL_PKG) $(MAKE_TRACE)
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
${FW_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR}/.adk kernel-package
cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \
diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk
index 4649a78..a67b666 100644
--- a/mk/kernel-build.mk
+++ b/mk/kernel-build.mk
@@ -34,13 +34,12 @@ ADK_DEPMOD:=true
endif
$(LINUX_DIR)/.prepared: $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/linux-$(KERNEL_FILE_VER)/.patched
- $(TRACE) target/kernel-prepare
ln -sf $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/linux-$(KERNEL_FILE_VER) $(LINUX_DIR)
mkdir -p $(LINUX_BUILD_DIR)/kmod-control
touch $@
$(LINUX_DIR)/.config: $(LINUX_DIR)/.prepared $(BUILD_DIR)/.kernelconfig
- $(TRACE) target/$(ADK_TARGET_ARCH)-kernel-configure
+ $(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-configure.. "
-for f in $(TARGETS);do if [ -f $$f ];then rm $$f;fi;done
ifeq ($(ADK_TARGET_KERNEL_USE_DEFCONFIG),y)
${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} $(ADK_TARGET_KERNEL_DEFCONFIG) $(MAKE_TRACE)
@@ -50,23 +49,31 @@ else
${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=mini.config allnoconfig $(MAKE_TRACE)
endif
touch -c $(LINUX_DIR)/.config
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
$(LINUX_DIR)/$(KERNEL_FILE): $(LINUX_DIR)/.config
- $(TRACE) target/$(ADK_TARGET_ARCH)-kernel-compile
+ $(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-compile.. "
${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} $(KERNEL_TARGET) $(MAKE_TRACE)
touch -c $(LINUX_DIR)/$(KERNEL_FILE)
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
$(LINUX_BUILD_DIR)/modules: $(LINUX_DIR)/$(KERNEL_FILE)
- $(TRACE) target/$(ADK_TARGET_ARCH)-kernel-modules-compile
+ $(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-modules-compile.. "
${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} modules $(MAKE_TRACE)
- $(TRACE) target/$(ADK_TARGET_ARCH)-kernel-modules-install
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
+ $(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-modules-install.. "
rm -rf $(LINUX_BUILD_DIR)/modules
${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} \
DEPMOD=$(ADK_DEPMOD) \
INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules \
modules_install $(MAKE_TRACE)
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
ifneq ($(ADK_RUNTIME_DEV_UDEV),y)
- $(TRACE) target/$(ADK_TARGET_ARCH)-create-packages
+ $(START_TRACE) "target/$(ADK_TARGET_ARCH)-create-packages.. "
@mkdir -p ${PACKAGE_DIR}
PATH='${HOST_PATH}' ${BASH} ${SCRIPT_DIR}/make-module-ipkgs.sh \
"${ADK_TARGET_CPU_ARCH}" \
@@ -74,6 +81,8 @@ ifneq ($(ADK_RUNTIME_DEV_UDEV),y)
"${LINUX_BUILD_DIR}" \
"${PKG_BUILD}" \
"${PACKAGE_DIR}"
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
endif
prepare:
@@ -83,12 +92,14 @@ else
compile: $(LINUX_DIR)/$(KERNEL_FILE)
endif
install: compile
- $(TRACE) target/${ADK_TARGET_ARCH}-modules-install
+ $(START_TRACE) "target/${ADK_TARGET_ARCH}-modules-install.. "
ifeq ($(ADK_TARGET_PACKAGE_IPKG)$(ADK_TARGET_PACKAGE_OPKG),y)
$(PKG_INSTALL) $(wildcard ${PACKAGE_DIR}/kmod-*) $(MAKE_TRACE)
else
$(foreach pkg,$(wildcard ${PACKAGE_DIR}/kmod-*),$(shell $(PKG_INSTALL) $(pkg)))
endif
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
clean:
rm -rf $(LINUX_BUILD_DIR)
diff --git a/mk/kernel-vars.mk b/mk/kernel-vars.mk
index ee1ce80..1b1baee 100644
--- a/mk/kernel-vars.mk
+++ b/mk/kernel-vars.mk
@@ -10,9 +10,14 @@ KERNEL_MAKE_OPTS:= V=1 \
DISABLE_PAX_PLUGINS=y \
CONFIG_SHELL='${SHELL}'
-# regex for relocs needs pcre on Darwin
-ifeq (${OStype},Darwin)
-KERNEL_MAKE_OPTS+= HOSTCFLAGS='$(HOST_CPPFLAGS) ${HOST_CFLAGS}' HOSTLDFLAGS='-lpcreposix'
+# regex for relocs needs pcre
+ifeq ($(OS_FOR_BUILD),Darwin)
+KERNEL_MAKE_OPTS+= HOSTLDFLAGS='-lpcreposix'
+endif
+
+# non-Linux platforms need elf.h
+ifneq ($(OS_FOR_BUILD),Linux)
+KERNEL_MAKE_OPTS+= HOSTCFLAGS='$(HOST_CPPFLAGS) ${HOST_CFLAGS}'
KERNEL_MAKE_OPTS+= HOST_EXTRACFLAGS='-I ${ADK_TOPDIR}/adk/include -DKBUILD_NO_NLS'
else
KERNEL_MAKE_OPTS+= HOSTCFLAGS='${HOST_CFLAGS}'
diff --git a/mk/os.mk b/mk/os.mk
deleted file mode 100644
index 31d5dd7..0000000
--- a/mk/os.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-# operating system quirks
-ifeq (${OStype},Darwin)
-HOST_CC:=clang -fbracket-depth=1024
-HOST_CXX:=clang++ -fbracket-depth=1024
-else
-ifeq (${OStype},FreeBSD)
-HOST_CC:=clang -fbracket-depth=1024
-HOST_CXX:=clang++ -fbracket-depth=1024
-else
-HOST_CC:=${CC}
-HOST_CXX:=${CXX}
-endif
-endif
diff --git a/mk/package.mk b/mk/package.mk
index e0bd141..2c78ed1 100644
--- a/mk/package.mk
+++ b/mk/package.mk
@@ -299,12 +299,12 @@ endef
install-targets:
install:
- @$(CMD_TRACE) "installing... "
+ @$(CMD_TRACE) "installing.. "
@$(MAKE) install-targets $(MAKE_TRACE)
clean-targets:
clean:
- @$(CMD_TRACE) "cleaning... "
+ @$(CMD_TRACE) "cleaning.. "
@$(MAKE) clean-targets $(MAKE_TRACE)
rm -rf ${WRKDIR} ${ALL_IPKGS} ${_IPKGS_COOKIE}
diff --git a/mk/pkg-bottom.mk b/mk/pkg-bottom.mk
index e120ef3..f16f854 100644
--- a/mk/pkg-bottom.mk
+++ b/mk/pkg-bottom.mk
@@ -24,19 +24,19 @@ do-configure:
post-configure:
${_CONFIGURE_COOKIE}: ${_PATCH_COOKIE}
ifneq (,$(filter bootstrap,${AUTOTOOL_STYLE}))
- @$(CMD_TRACE) "autotool configuring... "
+ @$(CMD_TRACE) "autotool configuring.. "
@cd ${WRKSRC}; env ${AUTOTOOL_ENV} $(BASH) bootstrap.sh $(MAKE_TRACE)
endif
ifneq (,$(filter autogen,${AUTOTOOL_STYLE}))
- @$(CMD_TRACE) "autotool configuring... "
+ @$(CMD_TRACE) "autotool configuring.. "
@cd ${WRKSRC}; env ${AUTOTOOL_ENV} $(BASH) autogen.sh $(MAKE_TRACE)
endif
ifneq (,$(filter autoconf,${AUTOTOOL_STYLE}))
- @$(CMD_TRACE) "autotool configuring... "
+ @$(CMD_TRACE) "autotool configuring.. "
@cd ${WRKSRC}; env ${AUTOTOOL_ENV} autoconf $(MAKE_TRACE)
endif
ifneq (,$(filter autoreconf,${AUTOTOOL_STYLE}))
- @$(CMD_TRACE) "autotool configuring... "
+ @$(CMD_TRACE) "autotool configuring.. "
@cd ${WRKSRC}; env ${AUTOTOOL_ENV} autoreconf -vif $(MAKE_TRACE)
@rm -rf ${WRKSRC}/autom4te.cache
@touch ${WRKDIR}/.autoreconf_done
@@ -47,7 +47,7 @@ endif
ifneq ($(filter manual,${CONFIG_STYLE}),)
env ${CONFIGURE_ENV} ${MAKE} do-configure $(MAKE_TRACE)
else ifneq ($(filter cmake,${CONFIG_STYLE}),)
- @$(CMD_TRACE) "configuring cmake... "
+ @$(CMD_TRACE) "configuring cmake.. "
sed -e "s#@@TARGET_CC@@#$(TARGET_CC)#" \
-e "s#@@TARGET_CXX@@#$(TARGET_CXX)#" \
-e "s#@@TARGET_CFLAGS@@#$(TARGET_CFLAGS)#" \
@@ -61,19 +61,19 @@ else ifneq ($(filter cmake,${CONFIG_STYLE}),)
-DCMAKE_TOOLCHAIN_FILE="$(SCRIPT_DIR)/toolchain.cmake" \
${CMAKE_FLAGS} ${WRKSRC}) $(MAKE_TRACE)
else ifneq ($(filter minimal,${CONFIG_STYLE}),)
- @$(CMD_TRACE) "configuring... "
+ @$(CMD_TRACE) "configuring.. "
cd ${WRKBUILD}; rm -f config.{cache,status}; \
env ${CONFIGURE_ENV} \
${BASH} ${WRKSRC}/${CONFIGURE_PROG} \
${CONFIGURE_ARGS} $(MAKE_TRACE)
else ifneq ($(filter basic,${CONFIG_STYLE}),)
- @$(CMD_TRACE) "configuring... "
+ @$(CMD_TRACE) "configuring.. "
cd ${WRKBUILD}; rm -f config.{cache,status}; \
env ${CONFIGURE_ENV} \
${BASH} ${WRKSRC}/${CONFIGURE_PROG} ${CONFIGURE_TRIPLE} \
${CONFIGURE_ARGS} $(MAKE_TRACE)
else ifneq ($(filter perl,${CONFIG_STYLE}),)
- @$(CMD_TRACE) "configuring perl module... "
+ @$(CMD_TRACE) "configuring perl module.. "
if [ -f ${WRKBUILD}/Makefile.PL ]; then \
cd ${WRKBUILD}; \
PATH='${HOST_PATH}' \
@@ -88,7 +88,7 @@ else ifneq ($(filter perl,${CONFIG_STYLE}),)
perl-host Build.PL; \
fi
else ifeq ($(strip ${CONFIG_STYLE}),)
- @$(CMD_TRACE) "configuring... "
+ @$(CMD_TRACE) "configuring.. "
cd ${WRKBUILD}; rm -f config.{cache,status}; \
env ${CONFIGURE_ENV} \
${BASH} ${WRKSRC}/${CONFIGURE_PROG} ${CONFIGURE_TRIPLE} \
@@ -125,7 +125,7 @@ do-build:
post-build:
${_BUILD_COOKIE}: ${_CONFIGURE_COOKIE}
@env ${MAKE_ENV} ${MAKE} pre-build $(MAKE_TRACE)
- @$(CMD_TRACE) "compiling... "
+ @$(CMD_TRACE) "compiling.. "
ifneq ($(filter manual,${BUILD_STYLE}),)
env ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} do-build $(MAKE_TRACE)
else ifeq ($(strip ${BUILD_STYLE}),)
diff --git a/mk/vars.mk b/mk/vars.mk
index 96bcdbe..8607131 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -426,9 +426,9 @@ QUIET:=
else
QUIET:= --quiet
endif
-FETCH_CMD?= PATH='${HOST_PATH}' wget --timeout=$(ADK_WGET_TIMEOUT) -t 3 --no-check-certificate $(QUIET)
+FETCHCMD?= PATH='${HOST_PATH}' wget --timeout=$(ADK_WGET_TIMEOUT) -t 3 --no-check-certificate $(QUIET)
-ifneq (,$(filter CYGWIN%,${OStype}))
+ifneq (,$(filter CYGWIN%,${OS_FOR_BUILD}))
EXEEXT:= .exe
endif
diff --git a/package/Makefile b/package/Makefile
index 9f4aff9..8416fbc 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -50,19 +50,19 @@ install: base-files-install $(INSTALL_ICONV) $(INSTALL_PACKAGES)
endif
%-download:
- $(START_TRACE) "package/$(patsubst %-download,%,$@)-download: "
+ $(START_TRACE) "package/$(patsubst %-download,%,$@)-download.. "
$(MAKE) -C $(patsubst %-download,%,$@) fetch
$(CMD_TRACE) " done"
$(END_TRACE)
%-host-compile:
- $(START_TRACE) "package/$(patsubst %-host-compile,%,$@)-host-compile: "
+ $(START_TRACE) "package/$(patsubst %-host-compile,%,$@)-host.. "
$(MAKE) -C $(patsubst %-host-compile,%,$@) hostpackage
$(CMD_TRACE) " done"
$(END_TRACE)
%-compile:
- $(START_TRACE) "package/$(patsubst %-compile,%,$@)-compile: "
+ $(START_TRACE) "package/$(patsubst %-compile,%,$@)-compile.. "
@if test -f $(ADK_TOPDIR)/.rebuild.$(patsubst %-compile,%,$@); then \
$(MAKE) -C $(patsubst %-compile,%,$@) clean ; \
rm $(ADK_TOPDIR)/.rebuild.$(patsubst %-compile,%,$@) ; \
@@ -72,13 +72,13 @@ endif
$(END_TRACE)
%-install:
- $(START_TRACE) "package/$(patsubst %-install,%,$@)-install: "
+ $(START_TRACE) "package/$(patsubst %-install,%,$@)-install.. "
$(MAKE) -C $(patsubst %-install,%,$@) install
$(CMD_TRACE) " done"
$(END_TRACE)
%-clean:
- $(START_TRACE) "package/$(patsubst %-clean,%,$@)-clean: "
+ $(START_TRACE) "package/$(patsubst %-clean,%,$@)-clean.. "
$(MAKE) -C $(patsubst %-clean,%,$@) clean
$(CMD_TRACE) " done"
$(END_TRACE)
diff --git a/package/adk-helper/src/makedevs.c b/package/adk-helper/src/makedevs.c
index 78a4c70..63b5e80 100644
--- a/package/adk-helper/src/makedevs.c
+++ b/package/adk-helper/src/makedevs.c
@@ -31,7 +31,7 @@
#include <stdarg.h>
#include <sys/stat.h>
#include <sys/types.h>
-#if !defined(__APPLE__) && !defined(__FreeBSD__)
+#if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
#include <sys/sysmacros.h> /* major() and minor() */
#endif
#include <ftw.h>
diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index d1fc86f..9f6550b 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -11,7 +11,7 @@ PKG_DESCR:= core utilities for embedded systems
PKG_SECTION:= base/apps
PKG_BUILDDEP:= bzip2-host
PKG_URL:= http://www.busybox.net/
-PKG_SITES:= http://www.busybox.net/downloads/
+PKG_SITES:= https://www.busybox.net/downloads/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
diff --git a/package/glib/Makefile b/package/glib/Makefile
index 732ccfd..29a4873 100644
--- a/package/glib/Makefile
+++ b/package/glib/Makefile
@@ -14,7 +14,7 @@ PKG_BUILDDEP:= glib-host libffi gettext-tiny zlib libelf dbus
HOST_BUILDDEP:= libffi-host gettext-tiny-host python2-host
PKG_NEEDS:= threads
PKG_URL:= http://www.gtk.org/
-PKG_SITES:= http://ftp.gnome.org/pub/gnome/sources/glib/$(PKG_EXTRAVER)/
+PKG_SITES:= http://gensho.acc.umu.se/pub/gnome/sources/glib/$(PKG_EXTRAVER)/
PKG_NOPARALLEL:= 1
PKG_OPTS:= dev noscripts
@@ -36,10 +36,10 @@ CONFIGURE_ENV+= glib_cv_long_long_format=ll \
ac_cv_func_posix_getgrgid_r=yes
HOST_STYLE:= auto
-ifneq ($(OStype),CYGWIN)
+ifneq ($(OS_FOR_BUILD),CYGWIN)
HOST_CFLAGS+= -fPIC
endif
-ifneq ($(OStype),Darwin)
+ifneq ($(OS_FOR_BUILD),Darwin)
HOST_CONFIGURE_ARGS+= --with-libiconv=no
endif
HOST_CONFIGURE_ARGS+= --disable-fam \
diff --git a/package/openssl/Makefile b/package/openssl/Makefile
index d5f9603..c9f13fe 100644
--- a/package/openssl/Makefile
+++ b/package/openssl/Makefile
@@ -70,10 +70,10 @@ ifeq ($(ADK_TARGET_ARCH_X86_64),y)
CONFIG:= linux-x86_64
endif
-ifneq (,$(filter CYGWIN%,${OStype}))
+ifneq (,$(filter CYGWIN%,${OS_FOR_BUILD}))
HOSTCONFIG:= Cygwin-x86_64
endif
-ifeq ($(OStype),Darwin)
+ifeq ($(OS_FOR_BUILD),Darwin)
HOSTCONFIG:= darwin64-x86_64-cc
endif
diff --git a/package/pkgconf/Makefile b/package/pkgconf/Makefile
index 0d0e123..47c2b7b 100644
--- a/package/pkgconf/Makefile
+++ b/package/pkgconf/Makefile
@@ -9,6 +9,7 @@ PKG_RELEASE:= 1
PKG_HASH:= 8f5f48e52ddef0c3cbffe93f32d5148041e0030b8798b49b0b5fe72f4968d7ec
PKG_DESCR:= smart pkg-config replacement
PKG_SECTION:= dev/tools
+HOST_BUILDDEP:= sed-host
PKG_URL:= https://github.com/pkgconf/pkgconf
PKG_SITES:= http://rabbit.dereferenced.org/~nenolod/distfiles/
@@ -23,9 +24,9 @@ $(eval $(call PKG_template,PKGCONF,pkgconf,$(PKG_VERSION)-${PKG_RELEASE},${PKG_D
hostpost-install:
$(CP) ./files/pkg-config $(STAGING_HOST_DIR)/usr/bin
ifeq ($(ADK_TARGET_USE_STATIC_LIBS),y)
- $(SED) "s#@@OPTS@@#--static#" $(STAGING_HOST_DIR)/usr/bin/pkg-config
+ PATH="$(HOST_PATH)" $(SED) "s#@@OPTS@@#--static#" $(STAGING_HOST_DIR)/usr/bin/pkg-config
else
- $(SED) "s#@@OPTS@@##" $(STAGING_HOST_DIR)/usr/bin/pkg-config
+ PATH="$(HOST_PATH)" $(SED) "s#@@OPTS@@##" $(STAGING_HOST_DIR)/usr/bin/pkg-config
endif
(cd $(STAGING_HOST_DIR)/usr/bin && ln -sf pkg-config $(GNU_TARGET_NAME)-pkg-config)
diff --git a/package/squashfs/Makefile b/package/squashfs/Makefile
index 1f27e50..cef5b75 100644
--- a/package/squashfs/Makefile
+++ b/package/squashfs/Makefile
@@ -8,7 +8,6 @@ PKG_VERSION:= 4.2
PKG_RELEASE:= 1
PKG_HASH:= d9e0195aa922dbb665ed322b9aaa96e04a476ee650f39bbeadb0d00b24022e96
PKG_DESCR:= squashfs filesystem utilities
-HOST_BUILDDEP:= xz-host
PKG_SECTION:= sys/fs
PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=squashfs/}
diff --git a/package/xz/Makefile b/package/xz/Makefile
index b639d07..cce0f93 100644
--- a/package/xz/Makefile
+++ b/package/xz/Makefile
@@ -10,9 +10,9 @@ PKG_HASH:= 73df4d5d34f0468bd57d09f2d8af363e95ed6cc3a4a86129d2f2c366259902a2
PKG_DESCR:= compression utility
PKG_SECTION:= app/archive
PKG_DEPENDS:= libxz
+HOST_BUILDDEP:= heirloom-cpio-host
PKG_URL:= http://tukaani.org/xz/
PKG_SITES:= http://tukaani.org/xz/
-PKG_OPTS:= dev
PKG_LIBNAME:= libxz
PKG_OPTS:= dev
PKG_BB:= 1
diff --git a/rules.mk b/rules.mk
index 25944c3..a734408 100644
--- a/rules.mk
+++ b/rules.mk
@@ -2,7 +2,6 @@
# material, please see the LICENCE file in the top-level directory.
include $(ADK_TOPDIR)/prereq.mk
-include $(ADK_TOPDIR)/mk/os.mk
-include $(ADK_TOPDIR)/.config
ifeq ($(ADK_VERBOSE),1)
@@ -15,9 +14,9 @@ MAKE_TRACE:=
EXTRA_MAKEFLAGS:=
SET_DASHX:= set -x
else
-START_TRACE:= echo -n "---> "
+START_TRACE:= echo -n " ---> "
END_TRACE:= echo
-TRACE:= echo "---> "
+TRACE:= echo " ---> "
CMD_TRACE:= echo -n
PKG_TRACE:= echo "------> "
EXTRA_MAKEFLAGS:= -s
diff --git a/scripts/adkprepare.sh b/scripts/adkprepare.sh
deleted file mode 100755
index 5b18d30..0000000
--- a/scripts/adkprepare.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-os=$(uname)
-ver=$(uname -r)
-arch=$(uname -m)
-
-linux() {
- echo "Preparing Linux for OpenADK is not implemented, yet"
- exit 1
-}
-
-darwin() {
- echo "Preparing MacOS X for OpenADK, is not implemented, yet"
- exit 1
-}
-
-openbsd() {
- echo "Preparing OpenBSD for OpenADK"
- PKG_PATH="ftp://ftp.openbsd.org/pub/OpenBSD/${ver}/packages/${arch}/"
- export PKG_PATH
- pkg_add -v gmake
- pkg_add -v bash
- pkg_add -v wget
- pkg_add -v gtar--
- pkg_add -v gawk
- pkg_add -v gsed
-}
-
-netbsd() {
- echo "Preparing NetBSD for OpenADK"
- PKG_PATH="ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/${arch}/${ver}/All/"
- export PKG_PATH
- pkg_add -vu gmake
- pkg_add -vu bash
- pkg_add -vu wget
- pkg_add -vu gtar
- pkg_add -vu gsed
- pkg_add -vu gawk
-}
-
-freebsd() {
- echo "Preparing FreeBSD for OpenADK"
- pkg_add -r gmake bash wget gtar gsed gawk
-}
-
-case $os in
- Linux)
- linux
- ;;
- FreeBSD)
- freebsd
- ;;
- OpenBSD)
- openbsd
- ;;
- NetBSD)
- netbsd
- ;;
- Darwin)
- darwin
- ;;
- *)
- echo "OS not supported"
- ;;
-esac
diff --git a/scripts/bulk-qemu.sh b/scripts/bulk-qemu.sh
deleted file mode 100755
index 4bd153f..0000000
--- a/scripts/bulk-qemu.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-if [ ! -z $1 ];then
- c=$1
-else
- c="uclibc-ng glibc musl uclibc"
-fi
-
-for libc in $c; do
- for arch in $(cat toolchain/$libc/arch.lst);do
- echo "Cleaning old stuff"
- make cleandir
- echo "Building $libc for $arch"
- DEFAULT="ADK_VERBOSE=1 ADK_APPLIANCE=new ADK_TARGET_ARCH=$arch ADK_TARGET_SYSTEM=qemu-$arch ADK_TARGET_LIBC=$libc ADK_TARGET_FS=initramfspiggyback"
- case $arch in
- mips|microblaze)
- for endian in little big;do
- make $DEFAULT ADK_TARGET_ENDIAN=$endian defconfig all
- cp -a firmware firmware.$arch.$endian
- done
- ;;
- *)
- make $DEFAULT defconfig all
- cp -a firmware firmware.$arch
- ;;
- esac
- if [ $? -ne 0 ];then
- echo "build failed"
- exit 1
- fi
- make cleandir
- done
-done
diff --git a/scripts/bulk-toolchain.sh b/scripts/bulk-toolchain.sh
deleted file mode 100755
index ba087c2..0000000
--- a/scripts/bulk-toolchain.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-if [ ! -z $1 ];then
- c=$1
-else
- c="uclibc-ng glibc musl uclibc"
-fi
-
-for libc in $c; do
- for arch in $(cat toolchain/$libc/arch.lst);do
- echo "Cleaning old stuff"
- make cleandir
- echo "Building $libc for $arch"
- DEFAULT="VERBOSE=1 ADK_TARGET_ARCH=$arch ADK_TARGET_SYSTEM=toolchain-$arch ADK_TARGET_LIBC=$libc"
- case $arch in
- mips|microblaze|sh)
- for endian in little big;do
- make $DEFAULT ADK_TARGET_ENDIAN=$endian defconfig all
- done
- ;;
- *)
- make $DEFAULT defconfig all
- ;;
- esac
- if [ $? -ne 0 ];then
- echo "build failed"
- exit 1
- fi
- done
-done
diff --git a/scripts/create-menu b/scripts/create-menu
index 67176cc..3624776 100755
--- a/scripts/create-menu
+++ b/scripts/create-menu
@@ -1,4 +1,3 @@
-#!/usr/bin/env bash
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
diff --git a/scripts/gcc-bisect.sh b/scripts/gcc-bisect.sh
deleted file mode 100644
index 1da4dd5..0000000
--- a/scripts/gcc-bisect.sh
+++ /dev/null
@@ -1,206 +0,0 @@
-#!/bin/sh
-rm -rf host_x86_64-linux-gnu target_sparc_glibc
-rm -rf gcc-*
-mkdir host_x86_64-linux-gnu
-mkdir target_sparc_glibc
-
-tar xvf binutils-2.24.tar.bz2
-cd binutils-2.24
-./configure \
- --prefix=/home/wbx/smoke/host_x86_64-linux-gnu \
- --target=sparc-openadk-linux-gnu \
- --with-sysroot=/home/wbx/smoke/target_sparc_glibc \
- --disable-dependency-tracking \
- --disable-libtool-lock \
- --disable-nls \
- --disable-werror \
- --disable-plugins \
- --disable-libssp --disable-multilib
-make -j4 all
-make install
-cd ..
-
-tar xvf gmp-5.1.3.tar.xz
-cd gmp-5.1.3
-cp configfsf.guess config.guess
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/usr/bin:$PATH" \
- ./configure \
- --prefix=/home/wbx/smoke/host_x86_64-linux-gnu \
- --with-pic \
- --disable-shared \
- --enable-static
-make -j4 all
-make install
-cd ..
-
-tar xvf mpfr-3.1.2.tar.xz
-cd mpfr-3.1.2
-./configure \
- --prefix=/home/wbx/smoke/host_x86_64-linux-gnu \
- --with-gmp-build=/home/wbx/smoke/gmp-5.1.3 \
- --disable-shared \
- --enable-static
-make -j4 all
-make install
-cd ..
-
-tar xvf mpc-0.8.2.tar.gz
-cd mpc-0.8.2
-./configure \
- --prefix=/home/wbx/smoke/host_x86_64-linux-gnu \
- --with-gmp=/home/wbx/smoke/host_x86_64-linux-gnu \
- --disable-shared \
- --enable-static
-make -j4 all
-make install
-make install
-cd ..
-
-tar xvf libelf-0.8.13.tar.gz
-cd libelf-0.8.13
-./configure \
- --prefix=/home/wbx/smoke/host_x86_64-linux-gnu \
- --disable-nls \
- --disable-shared \
- --enable-static
-make -j4 all
-make install
-cd ..
-
-rm -rf host_x86_64-linux-gnu/sparc-openadk-linux-gnu/{lib,sys-include}
-cd host_x86_64-linux-gnu/sparc-openadk-linux-gnu/
-ln -sf ../../target_sparc_glibc/usr/include sys-include
-ln -sf ../../target_sparc_glibc/lib lib
-cd -
-
-mkdir gcc-minimal
-cd gcc-minimal
-CFLAGS="-O0 -g0" \
-CXXFLAGS="-O0 -g0" \
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" \
-../gcc/configure \
- --prefix=/home/wbx/smoke/host_x86_64-linux-gnu --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=sparc-openadk-linux-gnu --with-gmp=/home/wbx/smoke/host_x86_64-linux-gnu --with-mpfr=/home/wbx/smoke/host_x86_64-linux-gnu --with-libelf=/home/wbx/smoke/host_x86_64-linux-gnu --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --enable-tls --disable-libsanitizer --disable-libitm --disable-libmudflap --disable-libgomp --disable-decimal-float --disable-libstdcxx-pch --disable-ppl-version-check --disable-cloog-version-check --without-system-zlib --without-ppl --without-cloog --without-isl --disable-nls --enable-target-optspace \
- --enable-languages=c \
- --disable-multilib \
- --disable-lto \
- --disable-libssp \
- --disable-shared \
- --without-headers
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make -j4 all-gcc
-if [ $? -ne 0 ];then
- echo failed
- exit
-fi
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make install-gcc
-if [ $? -ne 0 ];then
- echo failed
- exit
-fi
-cd ..
-
-cd linux-3.13.6
-make V=1 ARCH=sparc CROSS_COMPILE="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-" CC="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-gcc" HOSTCC="cc" CONFIG_SHELL='/bin/bash' HOSTCFLAGS='-O2 -Wall' INSTALL_HDR_PATH=/home/wbx/smoke/target_sparc_glibc/usr headers_install
-cd ..
-
-cd glibc-2.19-header
-libc_cv_forced_unwind=yes \
-libc_cv_cc_with_libunwind=yes \
-libc_cv_c_cleanup=yes \
-libc_cv_gnu99_inline=yes \
-libc_cv_initfini_array=yes \
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" ../glibc-2.19/configure \
- --prefix=/home/wbx/smoke/target_sparc_glibc/usr \
- --with-sysroot=/home/wbx/smoke/target_sparc_glibc \
- --build=x86_64-linux-gnu --host=sparc-openadk-linux-gnu --with-headers=/home/wbx/smoke/target_sparc_glibc/usr/include --disable-sanity-checks --disable-nls --without-cvs --disable-profile --disable-debug --without-gd --disable-nscd --with-__thread --with-tls --enable-kernel="2.6.32" --enable-add-ons
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make cross-compiling=yes PARALLELMFLAGS="-j1" install-headers
-if [ $? -ne 0 ];then
- echo failed
- exit
-fi
-cd ..
-touch target_sparc_glibc/usr/include/gnu/stubs.h
-
-mkdir gcc-initial
-cd gcc-initial
-CFLAGS="-O0 -g0" \
-CXXFLAGS="-O0 -g0" \
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" ../gcc/configure \
- --prefix=/home/wbx/smoke/host_x86_64-linux-gnu --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=sparc-openadk-linux-gnu --with-gmp=/home/wbx/smoke/host_x86_64-linux-gnu --with-mpfr=/home/wbx/smoke/host_x86_64-linux-gnu --with-libelf=/home/wbx/smoke/host_x86_64-linux-gnu --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --enable-tls --disable-libsanitizer --disable-libitm --disable-libmudflap --disable-libgomp --disable-decimal-float --disable-libstdcxx-pch --disable-ppl-version-check --disable-cloog-version-check --without-system-zlib --without-ppl --without-cloog --without-isl --disable-nls --enable-target-optspace \
- --disable-biarch --disable-multilib --enable-libssp --enable-lto \
- --enable-languages=c \
- --disable-shared \
- --disable-threads \
- --with-sysroot=/home/wbx/smoke/target_sparc_glibc
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make all-gcc
-if [ $? -ne 0 ];then
- echo failed
- exit
-fi
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make all-target-libgcc
-if [ $? -ne 0 ];then
- echo failed
- exit
-fi
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make install-gcc install-target-libgcc
-if [ $? -ne 0 ];then
- echo failed
- exit
-fi
-cd ..
-
-cd glibc-2.19-final
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" SHELL='/bin/bash' BUILD_CC=cc CFLAGS="-mcpu=v8 -fwrapv -fno-ident -fomit-frame-pointer -O2 -pipe -fno-unwind-tables -fno-asynchronous-unwind-tables -g3" CC="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-gcc" CXX="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-g++" AR="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-ar" RANLIB="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-ranlib" libc_cv_forced_unwind=yes libc_cv_cc_with_libunwind=yes libc_cv_c_cleanup=yes libc_cv_gnu99_inline=yes libc_cv_initfini_array=yes \
-../glibc-2.19/configure \
- --prefix=/usr \
- --enable-shared \
- --enable-stackguard-randomization \
- --build=x86_64-linux-gnu --host=sparc-openadk-linux-gnu --with-headers=/home/wbx/smoke/target_sparc_glibc/usr/include --disable-sanity-checks --disable-nls --without-cvs --disable-profile --disable-debug --without-gd --disable-nscd --with-__thread --with-tls --enable-kernel="2.6.32" --enable-add-ons
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make all
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make install_root=/home/wbx/smoke/target_sparc_glibc install
-if [ $? -ne 0 ];then
- echo failed
- exit
-fi
-cd ..
-
-mkdir gcc-final
-cd gcc-final
-../gcc/configure \
- --prefix=/home/wbx/smoke/host_x86_64-linux-gnu --with-bugurl="http://www.openadk.org/" --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=sparc-openadk-linux-gnu --with-gmp=/home/wbx/smoke/host_x86_64-linux-gnu --with-mpfr=/home/wbx/smoke/host_x86_64-linux-gnu --with-libelf=/home/wbx/smoke/host_x86_64-linux-gnu --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --enable-tls --disable-libsanitizer --disable-libitm --disable-libmudflap --disable-libgomp --disable-decimal-float --disable-libstdcxx-pch --disable-ppl-version-check --disable-cloog-version-check --without-system-zlib --without-ppl --without-cloog --without-isl --disable-nls --enable-target-optspace \
- --disable-biarch --disable-multilib --enable-libssp --enable-lto \
- --enable-languages=c,c++ \
- --with-build-sysroot='${prefix}/../target_sparc_glibc' \
- --with-sysroot='${prefix}/../target_sparc_glibc' \
- --enable-shared
-make -j4 all
-if [ $? -ne 0 ];then
- echo failed
- exit
-fi
-make install
-if [ $? -ne 0 ];then
- echo failed
- exit
-fi
-cd ..
-
-cd linux-3.13.6/
-cat > mini.config <<EOF
-CONFIG_SPARC=y
-CONFIG_SPARC32=y
-CONFIG_SBUS=y
-CONFIG_SBUSCHAR=y
-CONFIG_PCI=y
-CONFIG_PCI_SYSCALL=y
-CONFIG_PCIC_PCI=y
-CONFIG_OF=y
-CONFIG_NET_VENDOR_AMD=y
-CONFIG_SUNLANCE=y
-CONFIG_SERIAL_CONSOLE=y
-CONFIG_SERIAL_SUNCORE=y
-CONFIG_SERIAL_SUNZILOG=y
-CONFIG_SERIAL_SUNZILOG_CONSOLE=y
-EOF
-
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make V=1 ARCH=sparc CROSS_COMPILE="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-" CC="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-gcc" HOSTCC="cc" CONFIG_SHELL='/bin/bash' HOSTCFLAGS='-O2 -Wall' KCONFIG_ALLCONFIG=mini.config allnoconfig
-PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make V=1 ARCH=sparc CROSS_COMPILE="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-" CC="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-gcc" HOSTCC="cc" CONFIG_SHELL='/bin/bash' HOSTCFLAGS='-O2 -Wall' -j4 zImage
diff --git a/scripts/make b/scripts/make
deleted file mode 100755
index e8e5186..0000000
--- a/scripts/make
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env bash
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-if [ -z "$(which gmake 2>/dev/null)" ];then
- /usr/bin/make "$@"
-else
- gmake "$@"
-fi
diff --git a/scripts/prereq.sh b/scripts/prereq.sh
new file mode 100755
index 0000000..44aef4e
--- /dev/null
+++ b/scripts/prereq.sh
@@ -0,0 +1,643 @@
+#!/bin/sh
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+# resolve prerequisites for OpenADK build
+
+topdir=$(pwd)
+target="$@"
+flags="$MAKEFLAGS"
+out=0
+
+mirror=http://distfiles.openadk.org
+makever=4.1
+bashver=4.3.30
+
+# detect operating system
+os=$(env uname)
+osver=$(env uname -r)
+printf " ---> $os $osver for build detected.\n"
+
+# check if the filesystem is case sensitive
+rm -f foo
+echo >FOO
+if [ -e foo ]; then
+ printf "ERROR: OpenADK cannot be built in a case-insensitive file system."
+ case $os in
+ CYG*)
+ printf "Building OpenADK on $os needs a small registry change."
+ printf "http://cygwin.com/cygwin-ug-net/using-specialnames.html"
+ ;;
+ Darwin*)
+ printf "Building OpenADK on $os needs a case-sensitive disk partition."
+ printf "For Snow Leopard and above you can use diskutil to resize your existing disk."
+ printf "Example: sudo diskutil resizeVolume disk0s2 90G 1 jhfsx adk 30G"
+ printf "For older versions you might consider to use a disk image:"
+ printf "hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 30g ~/openadk.dmg"
+ ;;
+ esac
+ rm -f FOO
+ exit 1
+fi
+rm -f FOO
+
+# do we have a download tool?
+tools="curl wget"
+for tool in $tools; do
+ printf " ---> checking if $tool is installed.. "
+ if which $tool >/dev/null; then
+ printf "found\n"
+ case $tool in
+ curl)
+ FETCHCMD="$(which $tool) -k -f -s -o "
+ ;;
+ wget)
+ FETCHCMD="$(which $tool) --no-check-certificate -q -O "
+ ;;
+ esac
+ break
+ else
+ printf "not found\n"
+ continue
+ fi
+done
+if [ -z "$FETCHCMD" ]; then
+ printf "ERROR: no download tool found. Fatal error.\n"
+ exit 1
+fi
+
+# do we have a checksum tool?
+tools="sha256sum sha256 cksum shasum"
+for tool in $tools; do
+ printf " ---> checking if $tool is installed.. "
+ if which $tool >/dev/null 2>/dev/null; then
+ printf "found\n"
+ # check if cksum is usable
+ case $tool in
+ sha256sum)
+ SHA256=$(which $tool)
+ ;;
+ sha256)
+ SHA256="$(which $tool) -q"
+ ;;
+ cksum)
+ if cksum -q >/dev/null 2>/dev/null; then
+ SHA256="$(which $tool) -q -a sha256"
+ else
+ continue
+ fi
+ ;;
+ shasum)
+ SHA256="$(which $tool) -a 256"
+ ;;
+ esac
+ break
+ else
+ printf "not found\n"
+ continue
+ fi
+done
+if [ -z "$SHA256" ]; then
+ printf "ERROR: no checksum tool found. Fatal error.\n"
+ exit 1
+fi
+
+# create download dir
+if [ ! -d $topdir/dl ]; then
+ mkdir -p $topdir/dl
+fi
+
+# check for c compiler
+compilerbins="cc gcc clang"
+for compilerbin in $compilerbins; do
+ printf " ---> checking if $compilerbin is installed.. "
+ if which $compilerbin >/dev/null; then
+ printf "found\n"
+ CC=$compilerbin
+ break
+ fi
+done
+
+# check for c++ compiler
+compilerbins="c++ g++ clang++"
+for compilerbin in $compilerbins; do
+ printf " ---> checking if $compilerbin is installed.. "
+ if which $compilerbin >/dev/null; then
+ printf "found\n"
+ CXX=$compilerbin
+ break
+ fi
+done
+
+gnu_host_name=$(${CC} -dumpmachine)
+
+# relocation of topdir?
+olddir=$(grep "^ADK_TOPDIR" prereq.mk 2>/dev/null |cut -d '=' -f 2)
+newdir=$(pwd)
+
+if [ ! -z "$olddir" ]; then
+ if [ "$olddir" != "$newdir" ]; then
+ printf " ---> adk directory was relocated, fixing .."
+ sed -i -e "s#$olddir#$newdir#g" $(find target_* -name \*.pc|xargs) 2>/dev/null
+ sed -i -e "s#$olddir#$newdir#g" $(find host_${gnu_host_name} -type f|xargs) 2>/dev/null
+ sed -i -e "s#$olddir#$newdir#g" $(find target_*/scripts -type f|xargs) 2>/dev/null
+ sed -i -e "s#$olddir#$newdir#" target_*/etc/ipkg.conf 2>/dev/null
+ sleep 2
+ printf "done\n"
+ fi
+fi
+
+
+case :$PATH: in
+ (*:$topdir/host_${gnu_host_name}/bin:*) ;;
+ (*) export PATH=$topdir/host_${gnu_host_name}/bin:$PATH ;;
+esac
+
+# check for GNU make
+makebins="gmake make"
+for makebin in $makebins; do
+ printf " ---> checking if $makebin is installed.. "
+ if which $makebin >/dev/null 2>/dev/null; then
+ printf "found\n"
+ printf " ---> checking if it is GNU make.. "
+ $makebin --version 2>/dev/null| grep GNU >/dev/null
+ if [ $? -eq 0 ]; then
+ printf "yes\n"
+ MAKE=$(which $makebin)
+ break
+ else
+ # we need to build GNU make
+ printf "no\n"
+ printf " ---> compiling missing GNU make.. "
+ cd dl
+ $FETCHCMD make-${makever}.tar.gz $mirror/make-${makever}.tar.gz
+ if [ $? -ne 0 ]; then
+ printf "ERROR: failed to download make from $mirror\n"
+ exit 1
+ fi
+ cd ..
+ mkdir tmp
+ cd tmp
+ tar xzf ../dl/make-${makever}.tar.gz
+ cd make-$makever
+ ./configure --prefix=$topdir/host_$gnu_host_name/
+ make
+ make install
+ cd ..
+ cd ..
+ rm -rf tmp
+ MAKE=$topdir/host_$gnu_host_name/bin/make
+ makebin=$topdir/host_$gnu_host_name/bin/make
+ printf " done\n"
+ fi
+ else
+ printf "not found\n"
+ continue
+ fi
+done
+
+# check for bash
+printf " ---> checking if bash is installed.. "
+if which bash >/dev/null; then
+ printf "found\n"
+else
+ # we need to build GNU bash
+ printf "not found\n"
+ printf " ---> compiling missing GNU bash.. "
+ cd dl
+ $FETCHCMD bash-${bashver}.tar.gz $mirror/bash-${bashver}.tar.gz
+ if [ $? -ne 0 ]; then
+ printf "ERROR: failed to download make from $mirror\n"
+ exit 1
+ fi
+ cd ..
+ mkdir tmp
+ cd tmp
+ tar xzf ../dl/bash-${bashver}.tar.gz
+ cd bash-${bashver}
+ ./configure --prefix=$topdir/host_$gnu_host_name/
+ make
+ make install
+ cd ..
+ cd ..
+ rm -rf tmp
+ printf " done\n"
+fi
+
+# skip the script if distclean / cleandir
+if [ "$target" = "distclean" -o "$target" = "cleandir" ]; then
+ touch prereq.mk
+ $makebin ADK_TOPDIR=$topdir -s -f Makefile.adk $flags $target
+ exit 0
+fi
+
+printf " ---> checking if perl is installed.. "
+if ! which perl >/dev/null 2>&1; then
+ echo You must install perl to continue.
+ echo
+ out=1
+ printf "not found\n"
+fi
+printf "found\n"
+
+# creating prereq.mk
+echo "ADK_TOPDIR:=$(readlink -nf . 2>/dev/null || pwd -P)" > $topdir/prereq.mk
+echo "BASH:=$(which bash)" >> $topdir/prereq.mk
+echo "SHELL:=$(which bash)" >> $topdir/prereq.mk
+echo "GMAKE:=$MAKE" >> $topdir/prereq.mk
+echo "MAKE:=$MAKE" >> $topdir/prereq.mk
+echo "FETCHCMD:=$FETCHCMD" >> $topdir/prereq.mk
+echo "SHA256:=$SHA256" >> $topdir/prereq.mk
+echo "GNU_HOST_NAME:=${gnu_host_name}" >> $topdir/prereq.mk
+echo "OS_FOR_BUILD:=${os}" >> $topdir/prereq.mk
+echo "ARCH_FOR_BUILD:=$(${CC} -dumpmachine | sed \
+ -e 's/x86_64-linux-gnux32/x32/' \
+ -e s'/-.*//' \
+ -e 's/sparc.*/sparc/' \
+ -e 's/armeb.*/armeb/g' \
+ -e 's/arm.*/arm/g' \
+ -e 's/m68k.*/m68k/' \
+ -e 's/sh[234]/sh/' \
+ -e 's/mips-.*/mips/' \
+ -e 's/mipsel-.*/mipsel/' \
+ -e 's/i[3-9]86/x86/' \
+ )" >>prereq.mk
+
+if [ "$CC" = "clang" ]; then
+ echo "HOST_CC:=${CC} -fbracket-depth=1024" >> $topdir/prereq.mk
+else
+ echo "HOST_CC:=${CC}" >> $topdir/prereq.mk
+fi
+if [ "$CXX" = "clang++" ]; then
+ echo "HOST_CXX:=${CXX} -fbracket-depth=1024" >> $topdir/prereq.mk
+else
+ echo "HOST_CXX:=${CXX}" >> $topdir/prereq.mk
+fi
+
+echo 'LANGUAGE:=C' >> $topdir/prereq.mk
+echo 'LC_ALL:=C' >> $topdir/prereq.mk
+echo "_PATH:=$PATH" >> $topdir/prereq.mk
+echo "PATH:=${topdir}/scripts:/usr/sbin:$PATH" >> $topdir/prereq.mk
+echo "GIT:=$(which git 2>/dev/null)" >> $topdir/prereq.mk
+echo "export ADK_TOPDIR GIT SHA256 BASH SHELL" >> $topdir/prereq.mk
+
+# check if compiler works
+cat >Makefile.tmp <<'EOF'
+include ${ADK_TOPDIR}/prereq.mk
+all: test
+
+test: test.c
+ @${HOST_CC} ${HOST_CFLAGS} -o $@ $^ ${LDADD}
+EOF
+cat >test.c <<-'EOF'
+ #include <stdio.h>
+ int
+ main()
+ {
+ printf("YES");
+ return (0);
+ }
+EOF
+
+$MAKE --no-print-directory ADK_TOPDIR=$topdir -f Makefile.tmp 2>&1
+X=$(./test)
+if [ $X != YES ]; then
+ echo "$X" | sed 's/^/| /'
+ echo Cannot compile a simple test programme.
+ echo You must install a host make and C compiler.
+ echo
+ out=1
+fi
+rm test.c test Makefile.tmp 2>/dev/null
+
+# error out on any required prerequisite
+if [ $out -ne 0 ]; then
+ exit $out
+fi
+
+host_build_bc=0
+if which bc >/dev/null 2>&1; then
+ if ! echo quit|bc -q 2>/dev/null >/dev/null; then
+ host_build_bc=1
+ else
+ if bc -v 2>&1| grep -q BSD >/dev/null 2>&1; then
+ host_build_bc=1
+ fi
+ fi
+else
+ host_build_bc=1
+fi
+
+host_build_bison=0
+if ! which bison >/dev/null 2>&1; then
+ host_build_bison=1
+fi
+
+host_build_bzip2=0
+if ! which bzip2 >/dev/null 2>&1; then
+ host_build_bzip2=1
+fi
+
+host_build_file=0
+if ! which file >/dev/null 2>&1; then
+ host_build_file=1
+fi
+
+host_build_flex=0
+if ! which flex >/dev/null 2>&1; then
+ host_build_flex=1
+fi
+
+host_build_m4=0
+if ! which m4 >/dev/null 2>&1; then
+ host_build_m4=1
+fi
+
+host_build_mksh=0
+if ! which mksh >/dev/null 2>&1; then
+ host_build_mksh=1
+fi
+
+host_build_patch=0
+if ! which patch >/dev/null 2>&1; then
+ host_build_patch=1
+fi
+
+host_build_pkgconf=0
+if ! which pkgconf >/dev/null 2>&1; then
+ host_build_pkgconf=1
+fi
+
+host_build_tar=0
+if which tar >/dev/null 2>&1; then
+ if ! tar --version 2>/dev/null|grep GNU >/dev/null;then
+ host_build_tar=1
+ fi
+else
+ host_build_tar=1
+fi
+
+host_build_findutils=0
+if which xargs >/dev/null 2>&1; then
+ if ! xargs --version 2>/dev/null|grep GNU >/dev/null;then
+ host_build_findutils=1
+ fi
+fi
+
+if which find >/dev/null 2>&1; then
+ if ! find --version 2>/dev/null|grep GNU >/dev/null;then
+ host_build_findutils=1
+ fi
+fi
+
+host_build_grep=0
+if which grep >/dev/null 2>&1; then
+ if ! grep --version 2>/dev/null|grep GNU >/dev/null;then
+ host_build_grep=1
+ fi
+fi
+
+host_build_gawk=0
+if ! which gawk >/dev/null 2>&1; then
+ host_build_gawk=1
+fi
+
+host_build_sed=0
+if which sed >/dev/null 2>&1; then
+ if ! sed --version 2>/dev/null|grep GNU >/dev/null;then
+ host_build_sed=1
+ fi
+fi
+
+host_build_xz=0
+if ! which xz >/dev/null 2>&1; then
+ host_build_xz=1
+fi
+
+# optional
+host_build_cdrtools=0
+if ! which mkisofs >/dev/null 2>&1; then
+ host_build_cdrtools=1
+fi
+
+host_build_ccache=0
+if ! which ccache >/dev/null 2>&1; then
+ host_build_ccache=1
+fi
+
+host_build_genext2fs=0
+if ! which genext2fs >/dev/null 2>&1; then
+ host_build_genext2fs=1
+fi
+
+host_build_lzma=0
+if ! which lzma >/dev/null 2>&1; then
+ host_build_lzma=1
+fi
+
+host_build_lz4=0
+if ! which lz4c >/dev/null 2>&1; then
+ host_build_lz4=1
+fi
+
+host_build_lzop=0
+if ! which lzop >/dev/null 2>&1; then
+ host_build_lzop=1
+fi
+
+host_build_qemu=0
+if ! which qemu-img >/dev/null 2>&1; then
+ host_build_qemu=1
+fi
+
+echo "config ADK_HOST_BUILD_TOOLS" > $topdir/target/config/Config.in.prereq
+printf "\t%s\n" "bool" >> $topdir/target/config/Config.in.prereq
+printf "\t%s\n" "default y" >> $topdir/target/config/Config.in.prereq
+# always required
+if [ $host_build_bc -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_BC" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_bison -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_BISON" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_bzip2 -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_BZIP2" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_file -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_FILE" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_flex -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_FLEX" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_gawk -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_GAWK" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_grep -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_GREP" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_m4 -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_M4" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_mksh -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_MKSH" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_patch -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_PATCH" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_pkgconf -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_PKGCONF" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_findutils -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_FINDUTILS" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_sed -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_SED" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_tar -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_TAR" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_xz -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_XZ" >> $topdir/target/config/Config.in.prereq
+fi
+# optional
+if [ $host_build_ccache -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_CCACHE if ADK_HOST_NEED_CCACHE" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_cdrtools -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_CDRTOOLS if ADK_HOST_NEED_CDRTOOLS" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_genext2fs -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_GENEXT2FS if ADK_HOST_NEED_GENEXT2FS" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_lzma -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_LZMA if ADK_HOST_NEED_LZMA" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_lz4 -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_LZ4 if ADK_HOST_NEED_LZ4" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_lzop -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_LZOP if ADK_HOST_NEED_LZOP" >> $topdir/target/config/Config.in.prereq
+fi
+if [ $host_build_qemu -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_QEMU if ADK_HOST_NEED_QEMU" >> $topdir/target/config/Config.in.prereq
+fi
+
+# create Host OS symbols
+case $os in
+ Linux)
+ printf "\nconfig ADK_HOST_LINUX\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tbool\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tdefault y\n" >> $topdir/target/config/Config.in.prereq
+ ;;
+ Darwin)
+ printf "\nconfig ADK_HOST_DARWIN\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tbool\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tdefault y\n" >> $topdir/target/config/Config.in.prereq
+ ;;
+ OpenBSD)
+ printf "\nconfig ADK_HOST_OPENBSD\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tbool\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tdefault y\n" >> $topdir/target/config/Config.in.prereq
+ ;;
+ FreeBSD)
+ printf "\nconfig ADK_HOST_FREEBSD\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tbool\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tdefault y\n" >> $topdir/target/config/Config.in.prereq
+ ;;
+ NetBSD)
+ printf "\nconfig ADK_HOST_NETBSD\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tbool\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tdefault y\n" >> $topdir/target/config/Config.in.prereq
+ ;;
+ MirBSD)
+ printf "\nconfig ADK_HOST_MIRBSD\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tbool\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tdefault y\n" >> $topdir/target/config/Config.in.prereq
+ ;;
+ Cygwin*)
+ printf "\nconfig ADK_HOST_CYGWIN\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tbool\n" >> $topdir/target/config/Config.in.prereq
+ printf "\tdefault y\n" >> $topdir/target/config/Config.in.prereq
+ ;;
+esac
+
+if [ ! -f $topdir/.config ]; then
+ # create a config if no exist
+ touch .firstrun
+ $makebin ADK_TOPDIR=$topdir --no-print-directory -f Makefile.adk menuconfig
+else
+ # scan host-tool prerequisites of certain packages before building.
+ . $topdir/.config
+ if [ -n "$ADK_PACKAGE_KODI" ]; then
+ NEED_JAVA="$NEED_JAVA kodi"
+ fi
+
+ if [ -n "$ADK_PACKAGE_ICU4C" ]; then
+ NEED_STATIC_LIBSTDCXX="$NEED_STATIC_LIBSTDCXX icu4c"
+ fi
+
+ if [ -n "$ADK_PACKAGE_XKEYBOARD_CONFIG" ]; then
+ NEED_XKBCOMP="$NEED_XKBCOMP xkeyboard-config"
+ fi
+
+ if [ -n "$ADK_PACKAGE_FONT_BITSTREAM_100DPI" ]; then
+ NEED_MKFONTDIR="$NEED_MKFONTDIR font-bitstream-100dpi"
+ fi
+
+ if [ -n "$ADK_PACKAGE_FONT_BITSTREAM_75DPI" ]; then
+ NEED_MKFONTDIR="$NEED_MKFONTDIR font-bitstream-75dpi"
+ fi
+
+ if [ -n "$ADK_PACKAGE_FONT_ADOBE_100DPI" ]; then
+ NEED_MKFONTDIR="$NEED_MKFONTDIR font-adobe-100dpi"
+ fi
+
+ if [ -n "$ADK_PACKAGE_FONT_ADOBE_75DPI" ]; then
+ NEED_MKFONTDIR="$NEED_MKFONTDIR font-adobe-75dpi"
+ fi
+
+ if [ -n "$NEED_MKFONTDIR" ]; then
+ if ! which mkfontdir >/dev/null 2>&1; then
+ printf "You need mkfontdir to build $NEED_MKFONTDIR"
+ out=1
+ fi
+ fi
+
+ if [ -n "$NEED_XKBCOMP" ]; then
+ if ! which xkbcomp >/dev/null 2>&1; then
+ printf "You need xkbcomp to build $NEED_XKBCOMP"
+ out=1
+ fi
+ fi
+
+ if [ -n "$NEED_JAVA" ]; then
+ if ! which java >/dev/null 2>&1; then
+ printf "You need java to build $NEED_JAVA"
+ out=1
+ fi
+ fi
+
+ if [ -n "$NEED_STATIC_LIBSTDCXX" ]; then
+cat >test.c <<-'EOF'
+ #include <stdio.h>
+ int
+ main()
+ {
+ return (0);
+ }
+EOF
+ if ! $CXX -static-libstdc++ -o test test.c 2>/dev/null ; then
+ printf "You need static version of libstdc++ installed to build $NEED_STATIC_LIBSTDCXX"
+ out=1
+ rm test test.c 2>/dev/null
+ fi
+ fi
+
+ # error out
+ if [ $out -ne 0 ]; then
+ exit $out
+ fi
+
+ # start build
+ $makebin ADK_TOPDIR=$topdir --no-print-directory -f Makefile.adk $flags $target
+fi
diff --git a/scripts/reloc.sh b/scripts/reloc.sh
deleted file mode 100755
index b0b2ca9..0000000
--- a/scripts/reloc.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# execute this after relocation of adk directory
-
-olddir=$(grep "^ADK_TOPDIR" prereq.mk 2>/dev/null |cut -d '=' -f 2)
-newdir=$(pwd)
-
-if [ ! -z "$olddir" ];then
- if [ "$olddir" != "$newdir" ];then
- echo "adk directory relocated!"
- echo "old directory: $olddir"
- echo "new directory: $newdir"
- sed -i -e "s#$olddir#$newdir#g" $(find target_* -name \*.pc|xargs)
- sed -i -e "s#$olddir#$newdir#g" $(find target_* -name \*.la|xargs)
- sed -i -e "s#$olddir#$newdir#g" $(find target_*/scripts -type f|xargs)
- sed -i -e "s#$olddir#$newdir#" target_*/etc/ipkg.conf
- sed -i -e "s#$olddir#$newdir#" prereq.mk
- fi
-fi
diff --git a/scripts/scan-pkgs.sh b/scripts/scan-pkgs.sh
deleted file mode 100644
index 416d3a4..0000000
--- a/scripts/scan-pkgs.sh
+++ /dev/null
@@ -1,91 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-#
-# Scan host-tool prerequisites of certain packages before building.
-
-if test -z "$BASH_VERSION"; then
- foo=`$BASH -c 'echo "$BASH_VERSION"'`
-else
- foo=$BASH_VERSION
-fi
-
-if test -z "$foo"; then
- echo OpenADK requires GNU bash to be installed.
- exit 1
-fi
-
-test -z "$BASH_VERSION$KSH_VERSION" && exec $BASH $0 "$@"
-
-[[ -n $BASH_VERSION ]] && shopt -s extglob
-topdir=$(readlink -nf $(dirname $0)/.. 2>/dev/null || (cd $(dirname $0)/..; pwd -P))
-OStype=$(uname)
-out=0
-
-. $topdir/.config
-
-if [[ -n $ADK_PACKAGE_KODI ]]; then
- NEED_JAVA="$NEED_JAVA kodi"
-fi
-
-if [[ -n $ADK_PACKAGE_ICU4C ]]; then
- NEED_STATIC_LIBSTDCXX="$NEED_STATIC_LIBSTDCXX icu4c"
-fi
-
-if [[ -n $ADK_PACKAGE_XKEYBOARD_CONFIG ]]; then
- NEED_XKBCOMP="$NEED_XKBCOMP xkeyboard-config"
-fi
-
-if [[ -n $ADK_PACKAGE_FONT_BITSTREAM_100DPI ]]; then
- NEED_MKFONTDIR="$NEED_MKFONTDIR font-bitstream-100dpi"
-fi
-
-if [[ -n $ADK_PACKAGE_FONT_BITSTREAM_75DPI ]]; then
- NEED_MKFONTDIR="$NEED_MKFONTDIR font-bitstream-75dpi"
-fi
-
-if [[ -n $ADK_PACKAGE_FONT_ADOBE_100DPI ]]; then
- NEED_MKFONTDIR="$NEED_MKFONTDIR font-adobe-100dpi"
-fi
-
-if [[ -n $ADK_PACKAGE_FONT_ADOBE_75DPI ]]; then
- NEED_MKFONTDIR="$NEED_MKFONTDIR font-adobe-75dpi"
-fi
-
-if [[ -n $NEED_MKFONTDIR ]]; then
- if ! which mkfontdir >/dev/null 2>&1; then
- echo >&2 You need mkfontdir to build $NEED_MKFONTDIR
- out=1
- fi
-fi
-
-if [[ -n $NEED_XKBCOMP ]]; then
- if ! which xkbcomp >/dev/null 2>&1; then
- echo >&2 You need xkbcomp to build $NEED_XKBCOMP
- out=1
- fi
-fi
-
-if [[ -n $NEED_JAVA ]]; then
- if ! which java >/dev/null 2>&1; then
- echo >&2 You need java to build $NEED_JAVA
- out=1
- fi
-fi
-
-if [[ -n $NEED_STATIC_LIBSTDCXX ]]; then
-cat >test.c <<-'EOF'
- #include <stdio.h>
- int
- main()
- {
- return (0);
- }
-EOF
- if ! g++ -static-libstdc++ -o test test.c ; then
- echo >&2 You need static version of libstdc++ installed to build $NEED_STATIC_LIBSTDCXX
- out=1
- rm test 2>/dev/null
- fi
-fi
-
-exit $out
diff --git a/scripts/sha256sum b/scripts/sha256sum
deleted file mode 100755
index e709733..0000000
--- a/scripts/sha256sum
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-if [ -x /usr/bin/sha256sum ]; then
- /usr/bin/sha256sum "$@"
-elif [ -x /bin/cksum ] && [ $(echo | cksum -a sha256) = 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b ]; then
- # we assume the arguments are exactly "-c" or "-c -"
- x=$(sed 's/^\([0-9a-fA-F]*\) *\([^ ].*\)$/SHA256 (\2) = \1/' | cksum -c -a sha256)
- [[ $x = *FAILED* ]] && exit 1
- exit 0
-else
- shasum -a 256 "$@"
-fi
diff --git a/target/Makefile b/target/Makefile
index d6cfa0b..180f5f0 100644
--- a/target/Makefile
+++ b/target/Makefile
@@ -122,19 +122,25 @@ install: $(ADK_TARGET_ARCH)-imageclean $(ADK_TARGET_ARCH)-install $(ADK_TARGET_A
clean: $(ADK_TARGET_ARCH)-clean $(ADK_TARGET_ARCH)-imageclean
%-clean:
- $(TRACE) target/$(patsubst %-clean,%,$@)-clean
+ $(START_TRACE) "target/$(patsubst %-clean,%,$@)-clean.. "
$(MAKE) -C $(patsubst %-clean,%,$@) clean
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
%-imageclean:
- $(TRACE) target/$(patsubst %-imageclean,%,$@)-imageclean
+ $(START_TRACE) "target/$(patsubst %-imageclean,%,$@)-imageclean.. "
$(MAKE) -C $(patsubst %-imageclean,%,$@) imageclean
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
%-prepare:
- $(TRACE) target/$(patsubst %-prepare,%,$@)-prepare
+ $(START_TRACE) "target/$(patsubst %-prepare,%,$@)-prepare.. "
$(MAKE) -C $(patsubst %-prepare,%,$@) prepare
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
%-imageprepare:
- $(TRACE) target/$(patsubst %-imageprepare,%,$@)-imageprepare
+ $(START_TRACE) "target/$(patsubst %-imageprepare,%,$@)-imageprepare.. "
ifeq ($(ADK_RUNTIME_DEV_UDEV),y)
# This should be made a package instead
$(CP) -a $(BUILD_DIR)/linux-$(ADK_TARGET_ARCH)/modules/lib $(TARGET_DIR)
@@ -146,20 +152,19 @@ endif
break; \
done
$(MAKE) -C $(patsubst %-imageprepare,%,$@) imageprepare
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
%-compile: %-prepare
- $(TRACE) target/$(patsubst %-compile,%,$@)-compile
$(MAKE) -C $(patsubst %-compile,%,$@) compile
%-install: %-compile
- $(TRACE) target/$(patsubst %-install,%,$@)-install
$(MAKE) -C $(patsubst %-install,%,$@) install
%-targethelp:
$(MAKE) -C $(patsubst %-targethelp,%,$@) targethelp
%-imageinstall: %-imageprepare
- $(TRACE) target/$(patsubst %-imageinstall,%,$@)-imageinstall
$(MAKE) -C $(patsubst %-imageinstall,%,$@) imageinstall
@for x in $$(ls $(ADK_TOPDIR)/scripts/postimage/*.sh 2>/dev/null); do \
[[ -x "$$x" ]] && $$x; \
diff --git a/target/config/Config.in.adk b/target/config/Config.in.adk
index 510809c..81144dc 100644
--- a/target/config/Config.in.adk
+++ b/target/config/Config.in.adk
@@ -101,31 +101,6 @@ config ADK_TARGET_PORT
help
Port to use for SSH when running make check.
-choice
-prompt "Hostsystem (do not change!)"
-config ADK_HOST_LINUX
- bool "Linux"
-
-config ADK_HOST_FREEBSD
- bool "FreeBSD"
-
-config ADK_HOST_MIRBSD
- bool "MirBSD"
-
-config ADK_HOST_OPENBSD
- bool "OpenBSD"
-
-config ADK_HOST_NETBSD
- bool "NetBSD"
-
-config ADK_HOST_DARWIN
- bool "Darwin"
-
-config ADK_HOST_CYGWIN
- bool "Cygwin"
-
-endchoice
-
config ADK_PRELINK
prompt "Prelink binaries and libraries in Image"
boolean
diff --git a/target/config/Config.in.target b/target/config/Config.in.target
index 3c396f3..4d1888c 100644
--- a/target/config/Config.in.target
+++ b/target/config/Config.in.target
@@ -131,7 +131,6 @@ config ADK_TARGET_ROOTFS_ISO
select ADK_HOST_NEED_CDRTOOLS
select ADK_HOST_NEED_SYSLINUX
select ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_QEMU
- depends on ADK_HOST_LINUX
depends on ADK_TARGET_ARCH_X86
help
Use this option to create a bootable ISO image.
diff --git a/target/config/Config.in.tools b/target/config/Config.in.tools
index 702eea6..d8bec81 100644
--- a/target/config/Config.in.tools
+++ b/target/config/Config.in.tools
@@ -37,11 +37,11 @@ config ADK_HOST_BUILD_LIBTOOL
config ADK_HOST_BUILD_LIBRESSL
bool
- default y
+ default n
config ADK_HOST_BUILD_WGET
bool
- default y
+ default n
# always required, but can be provided by host
config ADK_HOST_BUILD_BASH
diff --git a/toolchain/Makefile b/toolchain/Makefile
index b1c24f7..7b24b9a 100644
--- a/toolchain/Makefile
+++ b/toolchain/Makefile
@@ -61,11 +61,13 @@ gcc-install: $(ELF2FLT) $(CLIB)-install
gcc-final: gcc-install $(GDB)
%-download:
- $(TRACE) toolchain/$(patsubst %-download,%,$@)/download
+ $(START_TRACE) "toolchain/$(patsubst %-download,%,$@)/download.. "
$(MAKE) -C $(patsubst %-download,%,$@) fetch
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
%-prepare:
- $(TRACE) toolchain/$(patsubst %-prepare,%,$@)/prepare
+ $(START_TRACE) "toolchain/$(patsubst %-prepare,%,$@)/prepare.. "
@if test x"$(patsubst %-prepare,%,$@)" = x"$(CLIB)"; then \
$(MAKE) -C $(patsubst %-prepare,%,$@) prepare \
$(MAKE_TRACE); \
@@ -73,9 +75,11 @@ gcc-final: gcc-install $(GDB)
$(MAKE) -C $(patsubst %-prepare,%,$@) prepare \
CC='$(HOST_CC)' CFLAGS='$(HOST_CFLAGS)' $(MAKE_TRACE); \
fi
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
%-configure: %-prepare
- $(TRACE) toolchain/$(patsubst %-configure,%,$@)/configure
+ $(START_TRACE) "toolchain/$(patsubst %-configure,%,$@)/configure.. "
@if test x"$(patsubst %-configure,%,$@)" = x"$(CLIB)"; then \
$(MAKE) -C $(patsubst %-configure,%,$@) configure \
$(MAKE_TRACE); \
@@ -83,9 +87,11 @@ gcc-final: gcc-install $(GDB)
$(MAKE) -C $(patsubst %-configure,%,$@) configure \
CC='$(HOST_CC)' CFLAGS='$(HOST_CFLAGS)' $(MAKE_TRACE); \
fi
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
%-compile: %-configure
- $(TRACE) toolchain/$(patsubst %-compile,%,$@)/compile
+ $(START_TRACE) "toolchain/$(patsubst %-compile,%,$@)/compile.. "
@if test x"$(patsubst %-compile,%,$@)" = x"$(CLIB)"; then \
$(MAKE) -C $(patsubst %-compile,%,$@) compile \
$(MAKE_TRACE); \
@@ -93,9 +99,11 @@ gcc-final: gcc-install $(GDB)
$(MAKE) -C $(patsubst %-compile,%,$@) compile \
CC='$(HOST_CC)' CFLAGS='$(HOST_CFLAGS)' CXXFLAGS='$(HOST_STATIC_CXXFLAGS)' $(MAKE_TRACE); \
fi
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
%-install: %-compile
- $(TRACE) toolchain/$(patsubst %-install,%,$@)/install
+ $(START_TRACE) "toolchain/$(patsubst %-install,%,$@)/install.. "
@if test x"$(patsubst %-install,%,$@)" = x"$(CLIB)"; then \
$(MAKE) -C $(patsubst %-install,%,$@) install \
$(MAKE_TRACE); \
@@ -103,11 +111,17 @@ gcc-final: gcc-install $(GDB)
$(MAKE) -C $(patsubst %-install,%,$@) install \
CC='$(HOST_CC)' CFLAGS='$(HOST_CFLAGS)' CXXFLAGS='$(HOST_STATIC_CXXFLAGS)' $(MAKE_TRACE); \
fi
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
%-final: %-install
- $(TRACE) toolchain/$(patsubst %-final,%,$@)/final
+ $(START_TRACE) "toolchain/$(patsubst %-final,%,$@)/final.. "
@$(MAKE) -C $(patsubst %-final,%,$@) final $(MAKE_TRACE)
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
%-clean:
- $(TRACE) toolchain/$(patsubst %-clean,%,$@)/clean
+ $(START_TRACE) "toolchain/$(patsubst %-clean,%,$@)/clean.. "
@$(MAKE) -C $(patsubst %-clean,%,$@) clean $(MAKE_TRACE)
+ $(CMD_TRACE) " done"
+ $(END_TRACE)
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 9aed107..0dfed42 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -49,7 +49,6 @@ GCC_CONFOPTS:= --prefix=$(TOOLCHAIN_DIR)/usr \
--disable-libstdcxx-pch \
--disable-ppl-version-check \
--disable-cloog-version-check \
- --with-system-zlib \
--without-ppl \
--without-cloog \
--without-isl \