diff --git a/contrib/devtools/CMakeLists.txt b/contrib/devtools/CMakeLists.txt
index 1626213a4..762c29548 100644
--- a/contrib/devtools/CMakeLists.txt
+++ b/contrib/devtools/CMakeLists.txt
@@ -1,38 +1,61 @@
# Copyright (c) 2019 The Bitcoin developers
+set(SPLIT_DEBUG_SCRIPT_TMP "tmp/split-debug.sh")
+configure_file(
+ "split-debug.sh.cmake.in"
+ "${SPLIT_DEBUG_SCRIPT_TMP}"
+)
+
+# Make the script executable by copying to the current build directory
+file(COPY
+ "${CMAKE_CURRENT_BINARY_DIR}/${SPLIT_DEBUG_SCRIPT_TMP}"
+ DESTINATION
+ "${CMAKE_CURRENT_BINARY_DIR}"
+ FILE_PERMISSIONS
+ OWNER_READ
+ OWNER_WRITE
+ OWNER_EXECUTE
+ GROUP_READ
+ GROUP_WRITE
+ GROUP_EXECUTE
+ WORLD_READ
+ WORLD_WRITE
+ WORLD_EXECUTE
+)
+
add_custom_target(check-devtools)
set(DEVTOOLS_TESTS_PYTHON
./chainparams/test_make_chainparams.py
)
foreach(TEST ${DEVTOOLS_TESTS_PYTHON})
get_filename_component(TESTNAME ${TEST} NAME)
get_filename_component(TESTPATH ${TEST} ABSOLUTE ${CMAKE_CURRENT_SOURCE_DIR})
get_filename_component(WORKDIR ${TESTPATH} DIRECTORY)
add_custom_target("check-devtools-${TESTNAME}"
WORKING_DIRECTORY
${WORKDIR}
COMMAND
"${PYTHON_EXECUTABLE}"
"./${TESTNAME}"
)
add_dependencies(check-devtools "check-devtools-${TESTNAME}")
endforeach()
add_dependencies(check check-devtools)
add_dependencies(check-all check-devtools)
include(PackageHelper)
exclude_from_source_package(
# Files
"bitcoind-exit-on-log.sh"
"circular-dependencies.py"
"copyright_header.py"
"extract_strings_qt.py"
"gitian-build.py"
"optimize-pngs.py"
"README.md"
"test-security-check.py"
"update-translations.py"
)
diff --git a/contrib/devtools/split-debug.sh.cmake.in b/contrib/devtools/split-debug.sh.cmake.in
new file mode 100644
index 000000000..1452f5972
--- /dev/null
+++ b/contrib/devtools/split-debug.sh.cmake.in
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+
+export LC_ALL=C
+
+if [ $# -ne 3 ];
+ then echo "usage: $0 "
+fi
+
+${CMAKE_OBJCOPY} --enable-deterministic-archives -p --only-keep-debug $1 $3
+${CMAKE_OBJCOPY} --enable-deterministic-archives -p --strip-debug $1 $2
+${CMAKE_STRIP} --enable-deterministic-archives -p -s $2
+${CMAKE_OBJCOPY} --enable-deterministic-archives -p --add-gnu-debuglink=$3 $2
diff --git a/contrib/devtools/split-debug.sh.in b/contrib/devtools/split-debug.sh.in
index deda49cc5..a6ca667c9 100644
--- a/contrib/devtools/split-debug.sh.in
+++ b/contrib/devtools/split-debug.sh.in
@@ -1,10 +1,12 @@
-#!/bin/sh
+#!/usr/bin/env bash
+
+export LC_ALL=C
if [ $# -ne 3 ];
then echo "usage: $0 "
fi
@OBJCOPY@ --enable-deterministic-archives -p --only-keep-debug $1 $3
@OBJCOPY@ --enable-deterministic-archives -p --strip-debug $1 $2
@STRIP@ --enable-deterministic-archives -p -s $2
@OBJCOPY@ --enable-deterministic-archives -p --add-gnu-debuglink=$3 $2