diff options
Diffstat (limited to 'subr.pkg/pkg_build.subr')
-rw-r--r-- | subr.pkg/pkg_build.subr | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/subr.pkg/pkg_build.subr b/subr.pkg/pkg_build.subr new file mode 100644 index 00000000..f3ec51df --- /dev/null +++ b/subr.pkg/pkg_build.subr @@ -0,0 +1,53 @@ +# +# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 LucĂa Andrea Illanes Albornoz <lucia@luciaillanes.de> +# 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_no_autoconf="" _pb_rc=0 _pb_subdir=""; + + 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; + + # + # N.B. We only pass 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. + # + ex_rtl_make \ + "${PKG_AR}" "${PKG_CC}" "${PKG_CXX}" "${PKG_CCLD}" "${PKG_LIBTOOL}" \ + "${PKG_MAKE}" "${PKG_PKG_CONFIG}" "${PKG_RANLIB}" \ + -- \ + "${_pb_no_autoconf}" "${_pb_subdir}" \ + -- \ + "${PKG_MAKEFLAGS_BUILD:-}" "${PKG_MAKEFLAGS_BUILD_EXTRA:-}" \ + "${PKG_MAKEFLAGS_BUILD_LIST:-}" "${PKG_MAKEFLAGS_BUILD_EXTRA_LIST:-}" \ + "${PKG_MAKEFLAGS_LOADAVG:-}" "${PKG_MAKEFLAGS_PARALLELISE:-}" \ + "${PKG_MAKEFLAGS_VERBOSITY:-}" \ + -- \ + "${PKG_CFLAGS_BUILD:-}" "${PKG_CFLAGS_BUILD_EXTRA:-}" \ + "${PKG_CPPFLAGS_BUILD:-}" "${PKG_CPPFLAGS_BUILD_EXTRA:-}" \ + "${PKG_CXXFLAGS_BUILD:-}" "${PKG_CXXFLAGS_BUILD_EXTRA:-}" \ + "${PKG_LDFLAGS_BUILD:-}" "${PKG_LDFLAGS_BUILD_EXTRA:-}" \ + "${PKG_PKG_CONFIG_LIBDIR:-}" \ + -- \ + "" "" \ + ; + _pb_rc="${?}"; + + if [ "${_pb_rc}" -ne 0 ]; then + break; + fi; + done; + + return "${_pb_rc}"; +}; + +# vim:filetype=sh textwidth=0 |