[pacman-dev] [PATCH] libmakepkg: extension for additional BUILDENV options

Que Quotion quequotion at gmail.com
Tue Mar 22 15:45:04 UTC 2016


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 at 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"
 }


More information about the pacman-dev mailing list