Sorry for the double post; didn't expect a text attachment to be scrubbed and the title needed improvement. This patch makes it possible to create scripts to be used as addiional BUILDENV options. It does not include any such scripts itself, which would be up to users to install as supplemental packages. buildenv_ext.sh is based on tidy.sh; doing exactly the same thing for BUILDENV that tidy.sh does for OPTIONS. I have tested this, it does work, but if there's anything you'd like to change, go right ahead. diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 6f9abb8..a633827 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -45,6 +45,7 @@ LIBMAKEPKGDIRS = \ lint_pkgbuild \ source \ tidy \ + buildenv_ext \ util LIBMAKEPKG = \ @@ -82,6 +83,7 @@ LIBMAKEPKG_IN = \ libmakepkg/source/local.sh \ libmakepkg/source/svn.sh \ libmakepkg/tidy.sh \ + libmakepkg/buildenv_ext.sh \ libmakepkg/tidy/docs.sh \ libmakepkg/tidy/emptydirs.sh \ libmakepkg/tidy/libtool.sh \ diff --git a/scripts/libmakepkg/buildenv_ext.sh.in b/scripts/libmakepkg/ buildenv_ext.sh.in new file mode 100644 index 0000000..a877b87 --- /dev/null +++ b/scripts/libmakepkg/buildenv_ext.sh.in @@ -0,0 +1,42 @@ +#!/usr/bin/bash +# +# buildenv_ext.sh - addional functions for altering the build environment +# before compiliation +# +# Copyright (c) 2015-2016 Pacman Development Team < pacman-dev@archlinux.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +[[ -n "$LIBMAKEPKG_BUILDENV_EXT_SH" ]] && return +LIBMAKEPKG_BUILDENV_EXT_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +declare -a build_options exta_buildopts + +for lib in "$LIBRARY/buildenv_ext/"*.sh; do + source "$lib" +done + +readonly -a build_options extra_buildopts + +buildenv_ext() { + + # options that alter compilation parameters + for func in ${extra_buildopts[@]}; do + $func + done + +} diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 2efcc98..aafec5d 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -866,6 +866,9 @@ run_build() { export DISTCC_HOSTS fi + # Check for BUILDENV extensions, use any that are requested (check buildenv and PKGBUILD opts) + buildenv_ext + run_function_safe "build" }