summaryrefslogtreecommitdiffhomepage
path: root/subr.pkg/pkg_build.subr
diff options
context:
space:
mode:
Diffstat (limited to 'subr.pkg/pkg_build.subr')
-rw-r--r--subr.pkg/pkg_build.subr53
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