summaryrefslogtreecommitdiffhomepage
path: root/subr.pkg/pkg_build_clean.subr
blob: f92bfd6de86312f0dd6839575727466a1da47407 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#
# 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_clean() {
	local	_pbc_group_name="${1}" _pbc_pkg_name="${2}" _pbc_restart_at="${3}"	\
		_pbc_libtool="" _pbc_makeflags_verbosity="${PKG_MAKEFLAGS_VERBOSITY:-}"	\
		_pbc_no_autoconf="" _pbc_rc=0 _pbc_subdir="";

	if ex_pkg_state_test "${PKG_NAME}" "build" "${_pbc_restart_at}"; then
		case "${PKG_LIBTOOL:-}" in
		"")	_pbc_libtool=""; ;;
		none)	_pbc_libtool=""; ;;
		*)	_pbc_libtool="${PKG_LIBTOOL}"; ;;
		esac;
		[ ! -x "${PKG_CONFIGURE:-}" ] && _pbc_no_autoconf=1;

		for _pbc_subdir in ${PKG_MAKE_SUBDIRS:-:}; do
			[ "${_pbc_subdir}" = ":" ] && _pbc_subdir="";
			[ "${#_pbc_libtool}" -gt 0 ] && export MAKE="make LIBTOOL=${_pbc_libtool}";

			if [ "${PKG_MAKEFLAGS_BUILD_LIST:+1}" = 1 ]; then
				rtl_run_cmdlineV ":" "${PKG_MAKE}"			\
					"${PKG_MAKEFLAGS_BUILD_LIST}"			\
					"${PKG_MAKEFLAGS_BUILD_EXTRA_LIST:-}"		\
					${PKG_MAKEFLAGS_PARALLELISE:-}			\
					${_pbc_libtool:+"LIBTOOL=${_pbc_libtool}"}	\
					${_pbc_makeflags_verbosity}			\
					${_pbc_subdir:+-C "${_pbc_subdir}"}		\
					clean;
				_pbc_rc="${?}";
			elif [ "${PKG_MAKEFLAGS_BUILD_EXTRA_LIST:+1}" = 1 ]; then
				rtl_run_cmdlineV ":" "${PKG_MAKE}"			\
					${PKG_MAKEFLAGS_BUILD:-}			\
					"${PKG_MAKEFLAGS_BUILD_EXTRA_LIST}"		\
					${PKG_MAKEFLAGS_PARALLELISE:-}			\
					${_pbc_libtool:+"LIBTOOL=${_pbc_libtool}"}	\
					${_pbc_makeflags_verbosity}			\
					${_pbc_subdir:+-C "${_pbc_subdir}"}		\
					clean;
				_pbc_rc="${?}";
			else
				rtl_run_cmdlineV ":" "${PKG_MAKE}"			\
					${PKG_MAKEFLAGS_BUILD:-}			\
					${PKG_MAKEFLAGS_BUILD_EXTRA:-}			\
					${PKG_MAKEFLAGS_PARALLELISE:-}			\
					${_pbc_libtool:+"LIBTOOL=${_pbc_libtool}"}	\
					${_pbc_makeflags_verbosity}			\
					${_pbc_subdir:+-C "${_pbc_subdir}"}		\
					clean;
				_pbc_rc="${?}";
			fi;

			[ "${#_pbc_libtool}" -gt 0 ] && unset MAKE;
			[ "${_pbc_rc}" -ne 0 ] && return 1;
		done;
	fi;
	return 0;
};

# vim:filetype=sh textwidth=0