summaryrefslogtreecommitdiff
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
parent951afda5088f202eead14e3ae281f234b160af0b (diff)
Add DTC as a companion tool
(needed for cross-gdb targeting the moxie-* targets) Signed-off-by: Alexey Neyman <stilor@att.net>
-rw-r--r--config/comp_tools/dtc.in4
-rw-r--r--config/configure.in.in3
-rw-r--r--configure.ac3
-rw-r--r--packages/dtc/1.4.7/chksum8
-rw-r--r--packages/dtc/1.4.7/version.desc0
-rw-r--r--packages/dtc/package.desc4
-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
14 files changed, 178 insertions, 43 deletions
diff --git a/config/comp_tools/dtc.in b/config/comp_tools/dtc.in
new file mode 100644
index 0000000..88628a0
--- /dev/null
+++ b/config/comp_tools/dtc.in
@@ -0,0 +1,4 @@
+# Kernel.org's device tree compiler
+
+config DTC_VERBOSE
+ bool "Verbose DTC build output"
diff --git a/config/configure.in.in b/config/configure.in.in
index 3d6a628..f483f3b 100644
--- a/config/configure.in.in
+++ b/config/configure.in.in
@@ -36,6 +36,9 @@ config CONFIGURE_has_automake_1_15_or_newer
config CONFIGURE_has_gnu_m4_1_4_12_or_newer
@KCONFIG_gnu_m4_1_4_12_or_newer@
+config CONFIGURE_has_dtc
+ @KCONFIG_dtc@
+
config CONFIGURE_has_cvs
@KCONFIG_cvs@
diff --git a/configure.ac b/configure.ac
index 979e131..3f8e954 100644
--- a/configure.ac
+++ b/configure.ac
@@ -217,6 +217,9 @@ CTNG_PROG_VERSION([M4],
AC_SUBST([kconfig_options])
+AC_CHECK_PROGS([dtc], [dtc])
+CTNG_SET_KCONFIG_OPTION([dtc])
+
AC_CHECK_PROGS([cvs], [cvs])
CTNG_SET_KCONFIG_OPTION([cvs])
diff --git a/packages/dtc/1.4.7/chksum b/packages/dtc/1.4.7/chksum
new file mode 100644
index 0000000..df3d7cd
--- /dev/null
+++ b/packages/dtc/1.4.7/chksum
@@ -0,0 +1,8 @@
+md5 dtc-1.4.7.tar.xz cdf3bfae59374fdcd2bbc5ae4f0e835e
+sha1 dtc-1.4.7.tar.xz f9724c51caae4fef4da0c8a5d52e9d4d9fc7e8af
+sha256 dtc-1.4.7.tar.xz 6643e8f00ff86350f465bb54b2185058b5b1b7bac01a0842c81a52b86589cde7
+sha512 dtc-1.4.7.tar.xz 01e0c88aee154d8ce8a5b84a299c98d12df9698e5eff572409e5e912236028532309fd21ca6a146dffef859c665d476bbbe13c371c621c1dee4abe546e5e6ebf
+md5 dtc-1.4.7.tar.gz d51a50202d323fdafd0778f53e861cdd
+sha1 dtc-1.4.7.tar.gz 1de4ad95e08efd6d04dae5f1a71ce18f26565bba
+sha256 dtc-1.4.7.tar.gz 9f4ee98d402b55b4afd79a4bcfce52f891b160d16c0f46d9aee3c0f7e034516d
+sha512 dtc-1.4.7.tar.gz d58855746d9d05f19b2cc091438901acf2dc8cb2b24191de6292abffadfd1fa62a32ea82c300cde51ce30ca5facb0553bed42741a41bc4f4c20c1b9221bdd164
diff --git a/packages/dtc/1.4.7/version.desc b/packages/dtc/1.4.7/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/dtc/1.4.7/version.desc
diff --git a/packages/dtc/package.desc b/packages/dtc/package.desc
new file mode 100644
index 0000000..97d6da8
--- /dev/null
+++ b/packages/dtc/package.desc
@@ -0,0 +1,4 @@
+repository='git git://git.kernel.org/pub/scm/utils/dtc/dtc.git'
+mirrors='$(CT_Mirrors kernel.org dtc)'
+archive_formats='.tar.xz .tar.gz'
+signature_format='unpacked/.sign'
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
}