summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2018-11-19 23:17:37 (GMT)
committerAlexey Neyman <stilor@att.net>2018-11-28 08:30:10 (GMT)
commitda76ae3ea3ba523223fe61b3b40974254a389141 (patch)
tree12affa1c2a39bf58f0a1720a76c1dfa0dc246b90 /scripts
parent951afda5088f202eead14e3ae281f234b160af0b (diff)
Add DTC as a companion tool
(needed for cross-gdb targeting the moxie-* targets) Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build/companion_tools/050-make.sh15
-rw-r--r--scripts/build/companion_tools/100-m4.sh15
-rw-r--r--scripts/build/companion_tools/200-autoconf.sh15
-rw-r--r--scripts/build/companion_tools/300-automake.sh15
-rw-r--r--scripts/build/companion_tools/400-libtool.sh15
-rw-r--r--scripts/build/companion_tools/500-dtc.sh81
-rw-r--r--scripts/functions41
-rw-r--r--scripts/show-config.sh2
8 files changed, 156 insertions, 43 deletions
diff --git a/scripts/build/companion_tools/050-make.sh b/scripts/build/companion_tools/050-make.sh
index 3253f5b..4c6dc4c 100644
--- a/scripts/build/companion_tools/050-make.sh
+++ b/scripts/build/companion_tools/050-make.sh
@@ -1,14 +1,17 @@
# Build script for make
-do_companion_tools_make_get() {
+do_companion_tools_make_get()
+{
CT_Fetch MAKE
}
-do_companion_tools_make_extract() {
+do_companion_tools_make_extract()
+{
CT_ExtractPatch MAKE
}
-do_companion_tools_make_for_build() {
+do_companion_tools_make_for_build()
+{
CT_DoStep INFO "Installing make for build"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-make-build"
do_make_backend \
@@ -23,7 +26,8 @@ do_companion_tools_make_for_build() {
CT_EndStep
}
-do_companion_tools_make_for_host() {
+do_companion_tools_make_for_host()
+{
CT_DoStep INFO "Installing make for host"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-make-host"
do_make_backend \
@@ -38,7 +42,8 @@ do_companion_tools_make_for_host() {
CT_EndStep
}
-do_make_backend() {
+do_make_backend()
+{
local host
local prefix
local cflags
diff --git a/scripts/build/companion_tools/100-m4.sh b/scripts/build/companion_tools/100-m4.sh
index 1707d64..4bbe8d3 100644
--- a/scripts/build/companion_tools/100-m4.sh
+++ b/scripts/build/companion_tools/100-m4.sh
@@ -1,14 +1,17 @@
# Build script for m4
-do_companion_tools_m4_get() {
+do_companion_tools_m4_get()
+{
CT_Fetch M4
}
-do_companion_tools_m4_extract() {
+do_companion_tools_m4_extract()
+{
CT_ExtractPatch M4
}
-do_companion_tools_m4_for_build() {
+do_companion_tools_m4_for_build()
+{
CT_DoStep INFO "Installing m4 for build"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-m4-build"
do_m4_backend \
@@ -20,7 +23,8 @@ do_companion_tools_m4_for_build() {
CT_EndStep
}
-do_companion_tools_m4_for_host() {
+do_companion_tools_m4_for_host()
+{
CT_DoStep INFO "Installing m4 for host"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-m4-host"
do_m4_backend \
@@ -32,7 +36,8 @@ do_companion_tools_m4_for_host() {
CT_EndStep
}
-do_m4_backend() {
+do_m4_backend()
+{
local host
local prefix
local cflags
diff --git a/scripts/build/companion_tools/200-autoconf.sh b/scripts/build/companion_tools/200-autoconf.sh
index 52149ea..28ff651 100644
--- a/scripts/build/companion_tools/200-autoconf.sh
+++ b/scripts/build/companion_tools/200-autoconf.sh
@@ -1,14 +1,17 @@
# Build script for autoconf
-do_companion_tools_autoconf_get() {
+do_companion_tools_autoconf_get()
+{
CT_Fetch AUTOCONF
}
-do_companion_tools_autoconf_extract() {
+do_companion_tools_autoconf_extract()
+{
CT_ExtractPatch AUTOCONF
}
-do_companion_tools_autoconf_for_build() {
+do_companion_tools_autoconf_for_build()
+{
CT_DoStep INFO "Installing autoconf for build"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-autoconf-build"
do_autoconf_backend host=${CT_BUILD} prefix="${CT_BUILD_COMPTOOLS_DIR}"
@@ -16,7 +19,8 @@ do_companion_tools_autoconf_for_build() {
CT_EndStep
}
-do_companion_tools_autoconf_for_host() {
+do_companion_tools_autoconf_for_host()
+{
CT_DoStep INFO "Installing autoconf for host"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-autoconf-host"
do_autoconf_backend host=${CT_HOST} prefix="${CT_PREFIX_DIR}"
@@ -24,7 +28,8 @@ do_companion_tools_autoconf_for_host() {
CT_EndStep
}
-do_autoconf_backend() {
+do_autoconf_backend()
+{
local host
local prefix
diff --git a/scripts/build/companion_tools/300-automake.sh b/scripts/build/companion_tools/300-automake.sh
index 2d7eded..9f7dd49 100644
--- a/scripts/build/companion_tools/300-automake.sh
+++ b/scripts/build/companion_tools/300-automake.sh
@@ -1,14 +1,17 @@
# Build script for automake
-do_companion_tools_automake_get() {
+do_companion_tools_automake_get()
+{
CT_Fetch AUTOMAKE
}
-do_companion_tools_automake_extract() {
+do_companion_tools_automake_extract()
+{
CT_ExtractPatch AUTOMAKE
}
-do_companion_tools_automake_for_build() {
+do_companion_tools_automake_for_build()
+{
CT_DoStep INFO "Installing automake for build"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-automake-build"
do_automake_backend host=${CT_BUILD} prefix="${CT_BUILD_COMPTOOLS_DIR}"
@@ -16,7 +19,8 @@ do_companion_tools_automake_for_build() {
CT_EndStep
}
-do_companion_tools_automake_for_host() {
+do_companion_tools_automake_for_host()
+{
CT_DoStep INFO "Installing automake for host"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-automake-host"
do_automake_backend host=${CT_HOST} prefix="${CT_PREFIX_DIR}"
@@ -24,7 +28,8 @@ do_companion_tools_automake_for_host() {
CT_EndStep
}
-do_automake_backend() {
+do_automake_backend()
+{
local host
local prefix
diff --git a/scripts/build/companion_tools/400-libtool.sh b/scripts/build/companion_tools/400-libtool.sh
index 3733072..f7aeb6c 100644
--- a/scripts/build/companion_tools/400-libtool.sh
+++ b/scripts/build/companion_tools/400-libtool.sh
@@ -1,14 +1,17 @@
# Build script for libtool
-do_companion_tools_libtool_get() {
+do_companion_tools_libtool_get()
+{
CT_Fetch LIBTOOL
}
-do_companion_tools_libtool_extract() {
+do_companion_tools_libtool_extract()
+{
CT_ExtractPatch LIBTOOL
}
-do_companion_tools_libtool_for_build() {
+do_companion_tools_libtool_for_build()
+{
CT_DoStep INFO "Installing libtool for build"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-libtool-build"
do_libtool_backend host=${CT_BUILD} prefix="${CT_BUILD_COMPTOOLS_DIR}"
@@ -16,7 +19,8 @@ do_companion_tools_libtool_for_build() {
CT_EndStep
}
-do_companion_tools_libtool_for_host() {
+do_companion_tools_libtool_for_host()
+{
CT_DoStep INFO "Installing libtool for host"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-libtool-host"
do_libtool_backend host=${CT_HOST} prefix="${CT_PREFIX_DIR}"
@@ -24,7 +28,8 @@ do_companion_tools_libtool_for_host() {
CT_EndStep
}
-do_libtool_backend() {
+do_libtool_backend()
+{
local host
local prefix
diff --git a/scripts/build/companion_tools/500-dtc.sh b/scripts/build/companion_tools/500-dtc.sh
new file mode 100644
index 0000000..ce0b303
--- /dev/null
+++ b/scripts/build/companion_tools/500-dtc.sh
@@ -0,0 +1,81 @@
+# Build script for DTC (device tree compiler)
+
+do_companion_tools_dtc_get()
+{
+ CT_Fetch DTC
+}
+
+do_companion_tools_dtc_extract()
+{
+ CT_ExtractPatch DTC
+}
+
+do_companion_tools_dtc_for_build()
+{
+ CT_DoStep INFO "Installing dtc for build"
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-dtc-build"
+ do_dtc_backend \
+ host=${CT_BUILD} \
+ prefix="${CT_BUILD_COMPTOOLS_DIR}" \
+ cflags="${CT_CFLAGS_FOR_BUILD}" \
+ ldflags="${CT_LDFLAGS_FOR_BUILD}"
+ CT_Popd
+ CT_EndStep
+}
+
+do_companion_tools_dtc_for_host()
+{
+ CT_DoStep INFO "Installing dtc for host"
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-dtc-host"
+ do_dtc_backend \
+ host=${CT_HOST} \
+ prefix="${CT_PREFIX_DIR}" \
+ cflags="${CT_CFLAGS_FOR_HOST}" \
+ ldflags="${CT_LDFLAGS_FOR_HOST}"
+ CT_Popd
+ CT_EndStep
+}
+
+do_dtc_backend()
+{
+ local host
+ local prefix
+ local cflags
+ local ldflags
+ local -a extra_opts
+
+ for arg in "$@"; do
+ eval "${arg// /\\ }"
+ done
+
+ extra_opts=( \
+ CC="${host}-gcc" \
+ AR="${host}-ar" \
+ PREFIX="${prefix}" \
+ NO_PYTHON=1 \
+ BIN=dtc \
+ )
+ if [ -n "${CT_DTC_VERBOSE}" ]; then
+ extra_opts+=( V=1 )
+ fi
+ case "${host}" in
+ *-mingw32)
+ # Turn off warnings: mingw32 hosts complain about %zd formats even though
+ # they seem to be supported by mingw32. Only build 'dtc', again, because
+ # other binaries use syscalls not available under mingw32, but we also
+ # do not need them. Hijack WARNINGS to override lstat with stat (Windows
+ # does not have symlinks).
+ extra_opts+=( BIN=dtc WARNINGS=-Dlstat=stat )
+ ;;
+ esac
+
+ CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/dtc/." .
+
+ CT_DoLog EXTRA "Building dtc"
+ CT_DoExecLog ALL make all "${extra_opts[@]}"
+
+ # Only install binaries, we don't support shared libraries in installation
+ # directory yet.
+ CT_DoLog EXTRA "Installing dtc"
+ CT_DoExecLog ALL make install-bin "${extra_opts[@]}"
+}
diff --git a/scripts/functions b/scripts/functions
index 7150b5b..973ba3f 100644
--- a/scripts/functions
+++ b/scripts/functions
@@ -1719,27 +1719,34 @@ CT_Mirrors()
echo "https://releases.linaro.org/archive/${yymm}/components/toolchain/${project}-linaro"
;;
kernel.org)
- # TBD move to linux.sh?
- if [ "${project}" != "linux" ]; then
- echo "-unknown-"
- fi
- local version="${CT_LINUX_VERSION}"
- case "${version}" in
- '')
- # Ignore, this happens before .config is fully evaluated
- ;;
- [34].*)
- echo "http://www.kernel.org/pub/linux/kernel/v${version%%.*}.x"
- ;;
- 2.6.*)
- echo "http://www.kernel.org/pub/linux/kernel/v2.6"
+ # TBD move to linux.sh and dtc.sh?
+ case "${project}" in
+ linux)
+ local version="${CT_LINUX_VERSION}"
case "${version}" in
- 2.6.*.*)
- echo "http://www.kernel.org/pub/linux/kernel/v2.6/longterm"
- echo "http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v${version%.*}"
+ '')
+ # Ignore, this happens before .config is fully evaluated
+ ;;
+ [34].*)
+ echo "http://www.kernel.org/pub/linux/kernel/v${version%%.*}.x"
+ ;;
+ 2.6.*)
+ echo "http://www.kernel.org/pub/linux/kernel/v2.6"
+ case "${version}" in
+ 2.6.*.*)
+ echo "http://www.kernel.org/pub/linux/kernel/v2.6/longterm"
+ echo "http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v${version%.*}"
+ ;;
+ esac
+ ;;
+ *)
+ echo "-unknown-"
;;
esac
;;
+ dtc)
+ echo "https://mirrors.edge.kernel.org/pub/software/utils/dtc"
+ ;;
*)
echo "-unknown-"
;;
diff --git a/scripts/show-config.sh b/scripts/show-config.sh
index 7112269..7f2051c 100644
--- a/scripts/show-config.sh
+++ b/scripts/show-config.sh
@@ -108,7 +108,7 @@ dump_single_sample()
dump_choice_desc LIBC "C library"
dump_pkgs_desc DEBUG "Debug tools" DUMA GDB LTRACE STRACE
- dump_pkgs_desc COMP_TOOLS "Companion tools" AUTOCONF AUTOMAKE LIBTOOL M4 MAKE
+ dump_pkgs_desc COMP_TOOLS "Companion tools" AUTOCONF AUTOMAKE LIBTOOL M4 MAKE DTC
fi
}