summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--etc/README.md2
-rw-r--r--midipix.env4
-rw-r--r--subr/pkg_build.subr49
-rw-r--r--subr/pkg_install_make.subr27
4 files changed, 51 insertions, 31 deletions
diff --git a/etc/README.md b/etc/README.md
index bfe679de..6f0c5bc0 100644
--- a/etc/README.md
+++ b/etc/README.md
@@ -501,6 +501,7 @@ VERSION`` and/or ``URLS_GIT``, respectively.
| BUILD_STEPS_DISABLE | List of build steps to disable during package build |
| BUILD_TYPE | Cross-compiled toolchain (``cross``,) host (``host``,) or cross-compiled package (``native``) build type |
| CC | Command- or pathname of toolchain C compiler ``cc(1)`` |
+| CFLAGS_BUILD | C compiler flags during package ``make(1)`` build |
| CFLAGS_BUILD_EXTRA | Additional C compiler flags during package ``make(1)`` build |
| CFLAGS_CONFIGURE | C compiler flags during package (GNU autotools or similar) configuration |
| CFLAGS_CONFIGURE_EXTRA | Additional C compiler flags during package (GNU autotools or similar) configuration |
@@ -533,6 +534,7 @@ VERSION`` and/or ``URLS_GIT``, respectively.
| LDFLAGS_CONFIGURE_EXTRA | Additional linker flags during package (GNU autotools or similar) configuration |
| LIBTOOL | Command- or pathname of ``libtool(1)`` (defaults to ``slibtool``) |
| MAKE | Command line of ``make(1)`` |
+| MAKE_SUBDIRS | List of ``make(1)`` subdirectories to exclusively build |
| MAKEFLAGS_BUILD | List of ``make(1)`` flags during package ``make(1)`` build |
| MAKEFLAGS_BUILD_EXTRA | Additional list of ``make(1)`` flags during package ``make(1)`` build |
| MAKEFLAGS_INSTALL | List of ``make(1)`` flags during package ``make(1)`` installation |
diff --git a/midipix.env b/midipix.env
index 83f767e9..efc1a6d2 100644
--- a/midipix.env
+++ b/midipix.env
@@ -16,7 +16,7 @@ DEFAULT_BUILD_STEPS="
install_subdirs install_make install_files install_libs install install_rpm clean";
DEFAULT_BUILD_VARS="
AR BASE_DIR BUILD_DIR BUILD_STEPS_DISABLE BUILD_TYPE CC \
- CFLAGS_BUILD_EXTRA CFLAGS_CONFIGURE CFLAGS_CONFIGURE_EXTRA \
+ CFLAGS_BUILD CFLAGS_BUILD_EXTRA CFLAGS_CONFIGURE CFLAGS_CONFIGURE_EXTRA \
CONFIG_CACHE CONFIG_CACHE_EXTRA CONFIG_CACHE_LOCAL CONFIGURE \
CONFIGURE_ARGS CONFIGURE_ARGS_EXTRA CXX CXXFLAGS_CONFIGURE \
CXXFLAGS_CONFIGURE_EXTRA DEPENDS DESTDIR DESTDIR_HOST DISABLED \
@@ -24,7 +24,7 @@ DEFAULT_BUILD_VARS="
INSTALL_FILES INSTALL_FILES_DESTDIR INSTALL_FILES_DESTDIR_EXTRA \
INSTALL_TARGET INSTALL_TARGET_EXTRA IN_TREE LDFLAGS_BUILD_EXTRA \
LDFLAGS_CONFIGURE LDFLAGS_CONFIGURE_EXTRA LIBTOOL MAKE \
- MAKE_INSTALL_VNAME MAKEFLAGS_BUILD MAKEFLAGS_BUILD_EXTRA \
+ MAKE_INSTALL_VNAME MAKE_SUBDIRS MAKEFLAGS_BUILD MAKEFLAGS_BUILD_EXTRA \
MAKEFLAGS_INSTALL MAKEFLAGS_INSTALL_EXTRA MAKEFLAGS_VERBOSITY \
NO_CLEAN NO_CLEAN_BASE_DIR NO_LOG_VARS PYTHON PATCHES_EXTRA \
PKG_CONFIG PKG_CONFIG_LIBDIR PKGLIST_DISABLE PREFIX RANLIB \
diff --git a/subr/pkg_build.subr b/subr/pkg_build.subr
index ecc049f6..327edae2 100644
--- a/subr/pkg_build.subr
+++ b/subr/pkg_build.subr
@@ -3,7 +3,7 @@
#
pkg_build() {
- local _libtool="" _makeflags_verbosity="${PKG_MAKEFLAGS_VERBOSITY:-none}" _no_autoconf="";
+ local _libtool="" _makeflags_verbosity="${PKG_MAKEFLAGS_VERBOSITY:-none}" _no_autoconf="" _subdir="";
case "${PKG_LIBTOOL:-}" in
"") _libtool=""; ;;
none) _libtool=""; ;;
@@ -15,25 +15,34 @@ pkg_build() {
if [ ! -x "${PKG_CONFIGURE:-}" ]; then
_no_autoconf=1;
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 make \
- ${PKG_MAKEFLAGS_BUILD:-} \
- ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \
- "AR=${PKG_AR}" "${_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}}" \
- ${_libtool:+"LIBTOOL=${_libtool}"} \
- ${_makeflags_verbosity};
+ for _subdir in ${PKG_MAKE_SUBDIRS:-:}; do
+ if [ "${_subdir}" = ":" ]; then
+ _subdir="";
+ 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 make \
+ ${PKG_MAKEFLAGS_BUILD:-} \
+ ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \
+ "AR=${PKG_AR}" "${_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}}" \
+ ${_libtool:+"LIBTOOL=${_libtool}"} \
+ ${_makeflags_verbosity} \
+ ${_subdir:+-C "${_subdir}"};
+ if [ "${?}" -ne 0 ]; then
+ return 1;
+ fi;
+ done;
};
# vim:filetype=sh
diff --git a/subr/pkg_install_make.subr b/subr/pkg_install_make.subr
index a5e58f60..2afcb7b8 100644
--- a/subr/pkg_install_make.subr
+++ b/subr/pkg_install_make.subr
@@ -3,20 +3,29 @@
#
pkg_install_make() {
- local _libtool="";
+ local _libtool="" _subdir="";
case "${PKG_LIBTOOL:-}" in
"") _libtool=""; ;;
none) _libtool=""; ;;
*) _libtool="${PKG_LIBTOOL}"; ;;
esac;
- rtl_run_cmd_unsplit make \
- ${PKG_MAKEFLAGS_INSTALL:-} \
- ${PKG_MAKEFLAGS_INSTALL_EXTRA:-} \
- AR="${PKG_AR}" CC="${PKG_CC}" RANLIB="${PKG_RANLIB}" \
- "${PKG_RANLIB_INSTALL:+RANLIB=${PKG_RANLIB_INSTALL}}" \
- ${_libtool:+"LIBTOOL=${_libtool}"} \
- "${PKG_MAKE_INSTALL_VNAME:-DESTDIR}=${PKG_DESTDIR}/" \
- ${PKG_INSTALL_TARGET:-install};
+ for _subdir in ${PKG_MAKE_SUBDIRS:-:}; do
+ if [ "${_subdir}" = ":" ]; then
+ _subdir="";
+ fi;
+ rtl_run_cmd_unsplit make \
+ ${PKG_MAKEFLAGS_INSTALL:-} \
+ ${PKG_MAKEFLAGS_INSTALL_EXTRA:-} \
+ AR="${PKG_AR}" CC="${PKG_CC}" RANLIB="${PKG_RANLIB}" \
+ "${PKG_RANLIB_INSTALL:+RANLIB=${PKG_RANLIB_INSTALL}}" \
+ ${_libtool:+"LIBTOOL=${_libtool}"} \
+ "${PKG_MAKE_INSTALL_VNAME:-DESTDIR}=${PKG_DESTDIR}/" \
+ ${PKG_INSTALL_TARGET:-install} \
+ ${_subdir:+-C "${_subdir}"};
+ if [ "${?}" -ne 0 ]; then
+ return 1;
+ fi;
+ done;
};
# vim:filetype=sh