mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-27 20:56:55 +00:00
Merge pull request #6915 from HiassofT/le11-build-timestamping
buildsystem: add support for reporting build timing details
This commit is contained in:
commit
03defe67a4
@ -1803,6 +1803,24 @@ release_update_lock() {
|
|||||||
flock --unlock 97 2>/dev/null
|
flock --unlock 97 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# store current timestamp in TIMESTAMP_xxx variable (xxx set by arg)
|
||||||
|
# timestamps are seconds.milliseconds since epoch
|
||||||
|
record_timestamp() {
|
||||||
|
if [ -n "${TRACE_BUILD_TIMING}" ]; then
|
||||||
|
typeset -g "TIMESTAMP_$1=$(date +%s.%3N)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# args: text, start timestamp, end timestamp
|
||||||
|
show_timestamp_diff() {
|
||||||
|
if [ -n "${TRACE_BUILD_TIMING}" ]; then
|
||||||
|
local start="TIMESTAMP_$2"
|
||||||
|
local end="TIMESTAMP_$3"
|
||||||
|
local timediff=$(echo "${!end}-${!start}" | bc)
|
||||||
|
printf '%20s: %10.3f\n' "$1" "${timediff}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Use distribution functions if any
|
# Use distribution functions if any
|
||||||
if [ -f "distributions/$DISTRO/config/functions" ]; then
|
if [ -f "distributions/$DISTRO/config/functions" ]; then
|
||||||
. distributions/$DISTRO/config/functions
|
. distributions/$DISTRO/config/functions
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
. config/options "${1}"
|
. config/options "${1}"
|
||||||
|
|
||||||
|
record_timestamp BUILD_BEGIN
|
||||||
|
|
||||||
if [ -z "${1}" ]; then
|
if [ -z "${1}" ]; then
|
||||||
die "usage: ${0} package_name[:<host|target|init|bootstrap>] [parent_pkg]"
|
die "usage: ${0} package_name[:<host|target|init|bootstrap>] [parent_pkg]"
|
||||||
fi
|
fi
|
||||||
@ -206,6 +208,8 @@ BOOTSTRAP_CONFIGURE_OPTS="${HOST_CONFIGURE_OPTS}"
|
|||||||
BOOTSTRAP_CMAKE_OPTS="${HOST_CMAKE_OPTS}"
|
BOOTSTRAP_CMAKE_OPTS="${HOST_CMAKE_OPTS}"
|
||||||
BOOTSTRAP_MESON_OPTS="${HOST_MESON_OPTS}"
|
BOOTSTRAP_MESON_OPTS="${HOST_MESON_OPTS}"
|
||||||
|
|
||||||
|
record_timestamp BUILD_START
|
||||||
|
|
||||||
# make autoreconf
|
# make autoreconf
|
||||||
if [ "${PKG_TOOLCHAIN}" = "autotools" ]; then
|
if [ "${PKG_TOOLCHAIN}" = "autotools" ]; then
|
||||||
${SCRIPTS}/autoreconf "${PKG_NAME}" "${PARENT_PKG}" $(dirname "${PKG_CONFIGURE_SCRIPT}")
|
${SCRIPTS}/autoreconf "${PKG_NAME}" "${PARENT_PKG}" $(dirname "${PKG_CONFIGURE_SCRIPT}")
|
||||||
@ -249,6 +253,8 @@ if [ -n "${PKG_DEPENDS_CONFIG}" -a -n "${PKG_INSTALL}" ]; then
|
|||||||
export PKG_CONFIG_PATH
|
export PKG_CONFIG_PATH
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
record_timestamp BUILD_CONFIGURE
|
||||||
|
|
||||||
pkg_call_exists_opt pre_configure && pkg_call
|
pkg_call_exists_opt pre_configure && pkg_call
|
||||||
pkg_call_exists_opt pre_configure_${TARGET} && pkg_call
|
pkg_call_exists_opt pre_configure_${TARGET} && pkg_call
|
||||||
|
|
||||||
@ -336,6 +342,8 @@ fi
|
|||||||
|
|
||||||
pkg_call_exists_opt post_configure_${TARGET} && pkg_call
|
pkg_call_exists_opt post_configure_${TARGET} && pkg_call
|
||||||
|
|
||||||
|
record_timestamp BUILD_MAKE
|
||||||
|
|
||||||
# make
|
# make
|
||||||
pkg_call_exists_opt pre_make_${TARGET} && pkg_call
|
pkg_call_exists_opt pre_make_${TARGET} && pkg_call
|
||||||
|
|
||||||
@ -395,6 +403,8 @@ for d in /usr/lib /usr/include /usr/bin /usr/lib/pkgconfig; do
|
|||||||
mkdir -p "${SYSROOT_PREFIX}${d}"
|
mkdir -p "${SYSROOT_PREFIX}${d}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
record_timestamp BUILD_MAKEINSTALL
|
||||||
|
|
||||||
# make install
|
# make install
|
||||||
pkg_call_exists_opt pre_makeinstall_${TARGET} && pkg_call
|
pkg_call_exists_opt pre_makeinstall_${TARGET} && pkg_call
|
||||||
|
|
||||||
@ -440,6 +450,8 @@ fi
|
|||||||
|
|
||||||
pkg_call_exists_opt post_makeinstall_${TARGET} && pkg_call
|
pkg_call_exists_opt post_makeinstall_${TARGET} && pkg_call
|
||||||
|
|
||||||
|
record_timestamp BUILD_COPY_SYSROOT
|
||||||
|
|
||||||
# Fixup temporary sysroot references to the shared sysroot
|
# Fixup temporary sysroot references to the shared sysroot
|
||||||
for i in $(find "${SYSROOT_PREFIX}/usr/lib" -type f -name "*.la" 2>/dev/null); do
|
for i in $(find "${SYSROOT_PREFIX}/usr/lib" -type f -name "*.la" 2>/dev/null); do
|
||||||
sed -e "s:\(['= ]\)/usr:\\1${PKG_ORIG_SYSROOT_PREFIX}/usr:g" -i "${i}"
|
sed -e "s:\(['= ]\)/usr:\\1${PKG_ORIG_SYSROOT_PREFIX}/usr:g" -i "${i}"
|
||||||
@ -473,6 +485,8 @@ rm -rf "${SYSROOT_PREFIX}"
|
|||||||
|
|
||||||
export SYSROOT_PREFIX="${PKG_ORIG_SYSROOT_PREFIX}"
|
export SYSROOT_PREFIX="${PKG_ORIG_SYSROOT_PREFIX}"
|
||||||
|
|
||||||
|
record_timestamp BUILD_CLEANUP_INSTALL
|
||||||
|
|
||||||
if [ "${TARGET}" = "target" -o "${TARGET}" = "init" ]; then
|
if [ "${TARGET}" = "target" -o "${TARGET}" = "init" ]; then
|
||||||
if [ -d ${INSTALL} ]; then
|
if [ -d ${INSTALL} ]; then
|
||||||
rm -rf ${INSTALL}/{usr/local/,usr/,}man
|
rm -rf ${INSTALL}/{usr/local/,usr/,}man
|
||||||
@ -522,3 +536,19 @@ for i in PKG_NAME PKG_DEEPHASH BUILD_WITH_DEBUG; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
pkg_lock_status "UNLOCK" "${PKG_NAME}:${TARGET}" "build" "built"
|
pkg_lock_status "UNLOCK" "${PKG_NAME}:${TARGET}" "build" "built"
|
||||||
|
|
||||||
|
record_timestamp BUILD_END
|
||||||
|
|
||||||
|
if [ -n "${TRACE_BUILD_TIMING}" ]; then
|
||||||
|
(
|
||||||
|
echo "build timing details:"
|
||||||
|
show_timestamp_diff "total" BUILD_BEGIN BUILD_END
|
||||||
|
show_timestamp_diff "unpack" BUILD_BEGIN BUILD_START
|
||||||
|
show_timestamp_diff "pre-build setup" BUILD_START BUILD_CONFIGURE
|
||||||
|
show_timestamp_diff "configure" BUILD_CONFIGURE BUILD_MAKE
|
||||||
|
show_timestamp_diff "make" BUILD_MAKE BUILD_MAKEINSTALL
|
||||||
|
show_timestamp_diff "make install" BUILD_MAKEINSTALL BUILD_COPY_SYSROOT
|
||||||
|
show_timestamp_diff "copy sysroot" BUILD_COPY_SYSROOT BUILD_CLEANUP_INSTALL
|
||||||
|
show_timestamp_diff "cleanup install" BUILD_CLEANUP_INSTALL BUILD_END
|
||||||
|
) >&${VERBOSE_OUT}
|
||||||
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user