aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Stephen P. Bennett <spb@exherbo.org> 2006-02-03 17:08:40 +0000
committerAvatar Stephen P. Bennett <spb@exherbo.org> 2006-02-03 17:08:40 +0000
commit0eebaed0c7d218987e64db9551479e40fac9f659 (patch)
tree41c84db4e42b9602fd7bd446df796222e7a28c99
parent4097316c87ab0f2ee47a762b4ce7466f4798fc1c (diff)
downloadpaludis-0eebaed0c7d218987e64db9551479e40fac9f659.tar.gz
paludis-0eebaed0c7d218987e64db9551479e40fac9f659.tar.xz
econf now does something with its arguments, and specifies --libdir. As a result, add the beginnings of multilib support stuff.
-rw-r--r--ebuild/build_functions.bash4
-rwxr-xr-xebuild/ebuild.bash1
-rw-r--r--ebuild/multilib_functions.bash67
3 files changed, 72 insertions, 0 deletions
diff --git a/ebuild/build_functions.bash b/ebuild/build_functions.bash
index 18b9005..990cde1 100644
--- a/ebuild/build_functions.bash
+++ b/ebuild/build_functions.bash
@@ -47,6 +47,10 @@ econf()
cmd="${cmd} --datadir=/usr/share"
cmd="${cmd} --sysconfdir=/etc"
cmd="${cmd} --localstatedir=/var/lib"
+ # Check that this is actually what's wanted for multilib etc.
+ cmd="${cmd} --libdir=${PREFIX}/$(ebuild_get_libdir)"
+
+ cmd="${cmd} $@ ${LOCAL_EXTRA_ECONF}"
echo "${cmd}"
${cmd} || die "econf failed"
diff --git a/ebuild/ebuild.bash b/ebuild/ebuild.bash
index 17676bf..479ada3 100755
--- a/ebuild/ebuild.bash
+++ b/ebuild/ebuild.bash
@@ -58,6 +58,7 @@ ebuild_load_module sandbox_stubs
ebuild_load_module portage_stubs
ebuild_load_module list_functions
ebuild_load_module echo_functions
+ebuild_load_module multilib_functions
ebuild_load_module install_functions
ebuild_load_module build_functions
ebuild_load_module unpack_functions
diff --git a/ebuild/multilib_functions.bash b/ebuild/multilib_functions.bash
new file mode 100644
index 0000000..d64d94d
--- /dev/null
+++ b/ebuild/multilib_functions.bash
@@ -0,0 +1,67 @@
+#!/bin/bash
+# vim: set sw=4 sts=4 et :
+
+# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org>
+#
+# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005
+# Gentoo Foundation and distributed under the terms of the GNU General
+# Public License v2.
+#
+# This file is part of the Paludis package manager. Paludis 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.
+#
+# Paludis 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, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA
+
+# Default values. Those used on a non-multilib profile.
+export MULTILIB_ABIS=${MULTILIB_ABIS:-"default"}
+export DEFAULT_ABI=${DEFAULT_ABI:-"default"}
+export CFLAGS_default
+export LDFLAGS_default
+export CHOST_default=${CHOST_default:-${CHOST}}
+export CTARGET_default=${CTARGET_default:-${CTARGET:-${CHOST_default}}}
+export LIBDIR_default=${CONF_LIBDIR:-"lib"}
+export CDEFINE_default
+
+
+ebuild_get_libdir() {
+ local CONF_LIBDIR
+ if [[ -n "${CONF_LIBDIR_OVERRIDE}" ]]; then
+ echo ${CONF_LIBDIR_OVERRIDE}
+ else
+ ebuild_get_abi_LIBDIR
+ fi
+}
+
+ebuild_get_abi_var() {
+ local flag=$1
+ local abi
+ if [[ $# -gt 1 ]]; then
+ abi=${2}
+ elif [[ -n "${ABI}" ]]; then
+ abi=${ABI}
+ elif [[ -n "${DEFAULT_ABI}" ]]l then
+ abi=${DEFAULT_ABI}
+ else
+ abi="default"
+ fi
+
+ local var="${flag}_${abi}"
+ echo ${!var}
+}
+
+ebuild_get_abi_CFLAGS() { ebuild_get_abi_var CFLAGS "$@"; }
+ebuild_get_abi_LDFLAGS() { ebuild_get_abi_var LDFLAGS "$@"; }
+ebuild_get_abi_CHOST() { ebuild_get_abi_var CHOST "$@"; }
+ebuild_get_abi_CTARGET() { ebuild_get_abi_var CTARGET "$@"; }
+ebuild_get_abi_FAKE_TARGETS() { ebuild_get_abi_var FAKE_TARGETS "$@"; }
+ebuild_get_abi_CDEFINE() { ebuild_get_abi_var CDEFINE "$@"; }
+ebuild_get_abi_LIBDIR() { ebuild_get_abi_var LIBDIR "$@"; }