diff --git a/lib/build.sh b/lib/build.sh index 7c2cebc..6eeb0cd 100644 --- a/lib/build.sh +++ b/lib/build.sh @@ -273,8 +273,6 @@ cmake 3.31.8 tar.gz https://github.com/Kitware/CMake/archive/refs/tags/v${ve else extracted_dir="${BUILD_DIR}/${build}-v${ver}" fi - # download the release - download_release || return 1 return 0 } @@ -366,15 +364,16 @@ FB_FUNC_COMPLETION['do_build']="$(get_build_conf supported)" do_build() { local build="${1:-''}" get_build_conf "${build}" || return 1 - - # add build configuration to FFMPEG_BUILDER_INFO - FFMPEG_BUILDER_INFO+=("${build}=${ver}") + download_release || return 1 set_compile_opts || return 1 for dep in "${deps[@]}"; do do_build "${dep}" || return 1 done get_build_conf "${build}" || return 1 + download_release || return 1 + + # start build echo_info -n "building ${build} " pushd "$extracted_dir" >/dev/null || return 1 # check for any patches @@ -419,9 +418,6 @@ build() { test -f "${testfile}" && ${SUDO_MODIFY} rm "${testfile}" test -d "${PREFIX}/bin/" || { ${SUDO_MODIFY} mkdir -p "${PREFIX}/bin/" || return 1; } - # embed this project's enables/versions - # into ffmpeg with this variable - FFMPEG_BUILDER_INFO=("ffmpeg-builder=$(cd "${REPO_DIR}" && git rev-parse HEAD)") for build in ${ENABLE}; do do_build "${build}" || return 1 done @@ -747,8 +743,15 @@ build_libvmaf() { ### AUTOTOOLS ### build_libx264() { + # libx264 does not support LTO + local configureFlags=() + for flag in "${CONFIGURE_FLAGS[@]}"; do + test "${flag}" == '--enable-lto' && continue + configureFlags+=("${flag}") + done + ./configure \ - "${CONFIGURE_FLAGS[@]}" \ + "${configureFlags[@]}" \ --disable-cli || return 1 ccache make -j"${JOBS}" || return 1 ${SUDO_MODIFY} make -j"${JOBS}" install || return 1 @@ -784,6 +787,18 @@ build_libnuma() { } add_project_versioning_to_ffmpeg() { + # embed this project's enables/versions + # into ffmpeg with FFMPEG_BUILDER_INFO + local FFMPEG_BUILDER_INFO=("ffmpeg-builder=$(git -C "${REPO_DIR}" rev-parse HEAD)") + for build in ${ENABLE}; do + get_build_conf "${build}" || return 1 + # add build configuration info + FFMPEG_BUILDER_INFO+=("${build}=${ver}") + done + # and finally for ffmpeg itself + get_build_conf ffmpeg || return 1 + FFMPEG_BUILDER_INFO+=("${build}=${ver}") + local fname='ffmpeg_opt.c' local optFile="fftools/${fname}" if [[ ! -f ${optFile} ]]; then diff --git a/lib/utils.sh b/lib/utils.sh index 5a25028..b9122c1 100644 --- a/lib/utils.sh +++ b/lib/utils.sh @@ -30,12 +30,12 @@ void() { echo "$@" >/dev/null; } echo_if_fail() { local cmd=("$@") - local logName="${LOGNAME:-${RANDOM}}" - local out="${TMP_DIR}/.stdout-${logName}" - local err="${TMP_DIR}/.stderr-${logName}" + local logName="${LOGNAME:-${RANDOM}}-" + local out="${TMP_DIR}/.${logName}stdout" + local err="${TMP_DIR}/.${logName}stderr" # set trace to the cmdEvalTrace and open file descriptor - local cmdEvalTrace="${TMP_DIR}/.cmdEvalTrace-${logName}" + local cmdEvalTrace="${TMP_DIR}/.${logName}cmdEvalTrace" test -d "${TMP_DIR}" || mkdir -p "${TMP_DIR}" exec 5>"${cmdEvalTrace}" export BASH_XTRACEFD=5