summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi-Hang Lin <lihang.lin@gmail.com>2016-10-07 02:54:46 (GMT)
committerLi-Hang Lin <lihang.lin@gmail.com>2017-01-22 10:09:49 (GMT)
commit1f6c6d3f328bba62244975c5a73b7bd4a94ee3dc (patch)
treee44daf64ec0d7b1730ae4363bdc265177a812390
parent8c2e76ccb864b8af8951efe967af1ddbccca5496 (diff)
mingw: compile the mingw-w64 companion tools as well
There are some useful tools such as widl, gendef, genidl ... etc. provided by mingw-w64 and do not waste the developers' works. Signed-off-by: Li-Hang Lin <lihang.lin@gmail.com>
-rw-r--r--config/libc/mingw.in7
-rw-r--r--scripts/build/libc/mingw.sh30
2 files changed, 37 insertions, 0 deletions
diff --git a/config/libc/mingw.in b/config/libc/mingw.in
index 6c33d2f..0de5dac 100644
--- a/config/libc/mingw.in
+++ b/config/libc/mingw.in
@@ -103,3 +103,10 @@ config MINGW_DIRECTX
config MINGW_DDK
bool
prompt "Include DDK development files"
+
+config MINGW_TOOLS
+ bool
+ prompt "Include the companion tools"
+ help
+ build the companion tools with mingw such as widl, gendef,
+ and genpeimg
diff --git a/scripts/build/libc/mingw.sh b/scripts/build/libc/mingw.sh
index 705f8c9..fddf1f7 100644
--- a/scripts/build/libc/mingw.sh
+++ b/scripts/build/libc/mingw.sh
@@ -83,6 +83,31 @@ do_check_mingw_vendor_tuple()
fi
}
+do_mingw_tools() {
+ for f in gendef genidl genlib genpeimg widl
+ do
+ if [[ ! -d "${CT_SRC_DIR}/mingw-w64-${CT_WINAPI_VERSION_DOWNLOADED}/mingw-w64-tools/${f}" ]]; then
+ continue;
+ fi
+
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-mingw-w64-tools/${f}"
+
+ CT_DoExecLog CFG \
+ "${CT_SRC_DIR}/mingw-w64-${CT_WINAPI_VERSION_DOWNLOADED}/mingw-w64-tools/${f}/configure" \
+ --build=${CT_BUILD} \
+ --host=${CT_HOST} \
+ --target=${CT_TARGET} \
+ --program-prefix=${CT_TARGET}- \
+ --prefix="${CT_PREFIX_DIR}"
+
+ CT_DoExecLog ALL ${make} ${JOBSFLAGS}
+
+ CT_DoExecLog ALL ${make} install
+
+ CT_Popd
+ done
+}
+
do_libc() {
do_check_mingw_vendor_tuple
@@ -109,6 +134,11 @@ do_libc() {
CT_DoLog EXTRA "Installing mingw-w64-crt"
CT_DoExecLog ALL make install DESTDIR=${CT_SYSROOT_DIR}
+ if [[ ${CT_MINGW_TOOLS} == "y" ]]; then
+ CT_DoLog EXTRA "Installing mingw-w64 companion tools"
+ do_mingw_tools
+ fi
+
CT_EndStep
if [ "${CT_THREADS}" = "posix" ]; then