From e9fa0774ed2e7e030a68f5b0ae51fe6dd69fe492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Andrea=20Illanes=20Albornoz?= Date: Fri, 17 Feb 2023 19:29:28 +0100 Subject: Make everything a bit faster. 0) Issues several prayers and sacrifices to Enki under threat of a terrible deluge sent down by Ellil 1) Convert fork-write/read exprs to be non-forking 2) Pass mostly everything by reference 3) Don't bother cleaning the variable namespace because Bourne shell is an abomination 4) Removes broken ./pkgtool.sh -s, --restart-at, --update-diff & ./build.sh --dump-{in,on-abort} 5) Cleanup --- subr.pkg/pkg_build.subr | 67 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 subr.pkg/pkg_build.subr (limited to 'subr.pkg/pkg_build.subr') diff --git a/subr.pkg/pkg_build.subr b/subr.pkg/pkg_build.subr new file mode 100644 index 00000000..8ea97368 --- /dev/null +++ b/subr.pkg/pkg_build.subr @@ -0,0 +1,67 @@ +# +# set +o errexit -o noglob -o nounset is assumed. +# + +pkg_build() { + local _pb_group_name="${1}" _pb_pkg_name="${2}" _pb_restart_at="${3}" \ + _pb_libtool="" _pb_makeflags_verbosity="" _pb_no_autoconf="" \ + _pb_rc=0 _pb_subdir=""; + _pb_makeflags_verbosity="${PKG_MAKEFLAGS_VERBOSITY:-none}"; + if [ "${_pb_makeflags_verbosity}" = "none" ]; then + _pb_makeflags_verbosity=""; + fi; + + case "${PKG_LIBTOOL:-}" in + "") _pb_libtool=""; ;; + none) _pb_libtool=""; ;; + *) _pb_libtool="${PKG_LIBTOOL}"; ;; + esac; + + if [ ! -x "${PKG_CONFIGURE:-}" ]; then + _pb_no_autoconf=1; + fi; + + for _pb_subdir in ${PKG_MAKE_SUBDIRS:-:}; do + if [ "${_pb_subdir}" = ":" ]; then + _pb_subdir=""; + fi; + + if [ "${#_pb_libtool}" -gt 0 ]; then + export MAKE="make LIBTOOL=${_pb_libtool}"; + fi; + + # N.B. We only specify CC= here if the current package does not use GNU + # autoconf as it often abuses it by appending -std={gnu99,...} to it + # instead of amending CFLAGS. + rtl_run_cmd_unsplit "${PKG_MAKE}" \ + ${PKG_MAKEFLAGS_BUILD:-} \ + ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \ + "AR=${PKG_AR}" "${_pb_no_autoconf:+CC=${PKG_CC}}" "RANLIB=${PKG_RANLIB}" \ + "${PKG_CFLAGS_BUILD:+CFLAGS=${PKG_CFLAGS_BUILD}}" \ + "${PKG_CFLAGS_BUILD_EXTRA:+CFLAGS+=${PKG_CFLAGS_BUILD_EXTRA}}" \ + "${PKG_CPPFLAGS_BUILD:+CPPFLAGS=${PKG_CPPFLAGS_BUILD}}" \ + "${PKG_CPPFLAGS_BUILD_EXTRA:+CPPFLAGS+=${PKG_CPPFLAGS_BUILD_EXTRA}}" \ + "${PKG_CXXFLAGS_BUILD:+CXXFLAGS=${PKG_CXXFLAGS_BUILD}}" \ + "${PKG_CXXFLAGS_BUILD_EXTRA:+CXXFLAGS+=${PKG_CXXFLAGS_BUILD_EXTRA}}" \ + "${PKG_LDFLAGS_BUILD:+LDFLAGS=${PKG_LDFLAGS_BUILD}}" \ + "${PKG_LDFLAGS_BUILD_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_BUILD_EXTRA}}" \ + "${PKG_PKG_CONFIG:+PKG_CONFIG=${PKG_PKG_CONFIG}}" \ + "${PKG_PKG_CONFIG_LIBDIR:+PKG_CONFIG_LIBDIR=${PKG_PKG_CONFIG_LIBDIR}}" \ + ${_pb_libtool:+"LIBTOOL=${_pb_libtool}"} \ + ${_pb_makeflags_verbosity} \ + ${_pb_subdir:+-C "${_pb_subdir}"}; + _pb_rc="${?}"; + + if [ "${#_pb_libtool}" -gt 0 ]; then + unset MAKE; + fi; + + if [ "${_pb_rc}" -ne 0 ]; then + break; + fi; + done; + + return "${_pb_rc}"; +}; + +# vim:filetype=sh -- cgit v1.2.3