declare -x ABI="amd64"
declare -x ABI_MIPS=""
declare -x ABI_PPC=""
declare -x ABI_RISCV=""
declare -x ABI_S390=""
declare -x ABI_X86="64"
declare -x ADA_TARGET=""
declare -a ALL_AUTOTOOLS_MACROS=([0]="AC_PROG_LIBTOOL" [1]="AM_PROG_LIBTOOL" [2]="LT_INIT" [3]="LT_CONFIG_LTDL_DIR" [4]="AC_CONFIG_HEADERS" [5]="AC_CONFIG_HEADER" [6]="AM_CONFIG_HEADERS" [7]="AM_CONFIG_HEADER" [8]="AC_CONFIG_SUBDIRS" [9]="AC_CONFIG_AUX_DIR" [10]="AC_CONFIG_MACRO_DIR" [11]="AM_INIT_AUTOMAKE" [12]="AM_GLIB_GNU_GETTEXT" [13]="AM_GNU_GETTEXT_VERSION" [14]="AM_GNU_GETTEXT_REQUIRE_VERSION" [15]="AC_PROG_INTLTOOL" [16]="IT_PROG_INTLTOOL" [17]="GTK_DOC_CHECK" [18]="GNOME_DOC_INIT")
declare -x ALSA_CARDS=""
declare -x APACHE2_MODULES=""
declare -x APACHE2_MPMS=""
declare -x ARCH="amd64"
declare -- AT_M4DIR=""
declare -- AT_SYS_M4DIR=""
declare -- AUTOTOOLS_AUTO_DEPEND="yes"
declare -- AUTOTOOLS_DEPEND="|| ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15  )
	>=sys-devel/autoconf-2.69
	>=sys-devel/libtool-2.4"
declare BDEPEND="virtual/pkgconfig >=app-portage/elt-patches-20170815 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15  )
	>=sys-devel/autoconf-2.69
	>=sys-devel/libtool-2.4 virtual/pkgconfig"
declare -x BOOTSTRAP_USE="unicode internal-glib pkg-config split-usr python_targets_python3_6 python_targets_python2_7 multilib nptl -berkdb -gdbm"
declare -x CALLIGRA_FEATURES=""
declare -x CAMERAS=""
declare -x CBUILD="x86_64-gentoo-linux-musl"
declare -x CFLAGS="-O2 -pipe -march=native -fno-common -falign-functions=32:25:16"
declare -x CFLAGS_amd64="-m64"
declare -x CFLAGS_default
declare -x CFLAGS_x32="-mx32"
declare -x CFLAGS_x86="-m32"
declare -x CHOST="x86_64-gentoo-linux-musl"
declare -x CHOST_amd64="x86_64-gentoo-linux-musl"
declare -x CHOST_default="x86_64-gentoo-linux-musl"
declare -x CHOST_x32="x86_64-pc-linux-gnux32"
declare -x CHOST_x86="i686-pc-linux-gnu"
declare -x COLLECTD_PLUGINS=""
declare -x COMMON_FLAGS="-O2 -pipe -march=native -fno-common -falign-functions=32:25:16"
declare -- CONFIG_CHECK="~!NF_CONNTRACK_SIP"
declare -x CPU_FLAGS_ARM=""
declare -x CPU_FLAGS_PPC=""
declare -x CPU_FLAGS_X86=""
declare -x CTARGET_default="x86_64-gentoo-linux-musl"
declare -x CURL_SSL=""
declare -x CXXFLAGS="-O2 -pipe -march=native -fno-common -falign-functions=32:25:16"
declare -x DEFAULT_ABI="amd64"
declare -x DEFINED_PHASES=" compile configure install postinst prepare setup"
declare DEPEND="acct-user/asterisk
	acct-group/asterisk
	dev-db/sqlite:3
	dev-libs/popt
	dev-libs/jansson
	dev-libs/libxml2:2
	dev-libs/libxslt
	sys-libs/ncurses:0=
	sys-libs/zlib
	alsa? ( media-libs/alsa-lib )
	bluetooth? ( net-wireless/bluez:= )
	calendar? (
		net-libs/neon:=
		dev-libs/libical:=
		dev-libs/iksemel
	)
	caps? ( sys-libs/libcap )
	cluster? ( sys-cluster/corosync )
	curl? ( net-misc/curl )
	dahdi? (
		net-libs/libpri
		net-misc/dahdi-tools
	)
	freetds? ( dev-db/freetds )
	gtalk? ( dev-libs/iksemel )
	http? ( dev-libs/gmime:2.6 )
	iconv? ( virtual/libiconv )
	ilbc? ( dev-libs/ilbc-rfc3951 )
	ldap? ( net-nds/openldap )
	libedit? ( dev-libs/libedit )
	lua? ( dev-lang/lua:* )
	mysql? ( dev-db/mysql-connector-c:= )
	newt? ( dev-libs/newt )
	odbc? ( dev-db/unixODBC )
	osplookup? ( net-libs/osptoolkit )
	pjproject? ( net-libs/pjproject )
	portaudio? ( media-libs/portaudio )
	postgres? ( dev-db/postgresql:* )
	radius? ( net-dialup/freeradius-client )
	snmp? ( net-analyzer/net-snmp:= )
	span? ( media-libs/spandsp )
	speex? (
		media-libs/speex
		media-libs/speexdsp
	)
	srtp? ( net-libs/libsrtp:0 )
	ssl? (
		!libressl? ( dev-libs/openssl:0= )
		libressl? ( dev-libs/libressl:0= )
	)
	vorbis? ( media-libs/libvorbis )
	voicemail_storage_imap? ( virtual/imap-c-client )
	xmpp? ( dev-libs/iksemel )
 "
declare DESCRIPTION="Asterisk: A Modular Open Source PBX System"
declare -x DIROPTIONS="-m0755"
declare -x EAPI="7"
declare -x EGO_BUILD_FLAGS="-p 1"
declare -x ELIBC="musl"
declare -x ENLIGHTENMENT_MODULES=""
declare -x ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
declare -- EPOCHREALTIME="1584486673.149370"
declare -- EPOCHSECONDS="1584486673"
declare -x EXEOPTIONS="-m0755"
declare -x FCFLAGS="-O2 -pipe -march=native -fno-common -falign-functions=32:25:16"
declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\""
declare -x FFLAGS="-O2 -pipe -march=native -fno-common -falign-functions=32:25:16"
declare -x FFTOOLS=""
declare -x G4ABLADATA="/usr/share/geant4/data/G4ABLA3.1"
declare -x G4ENSDFSTATEDATA="/usr/share/geant4/data/G4ENSDFSTATE2.2"
declare -x G4INCLDATA="/usr/share/geant4/data/G4INCL1.0"
declare -x G4LEDATA="/usr/share/geant4/data/G4EMLOW7.9.1"
declare -x G4LEVELGAMMADATA="/usr/share/geant4/data/PhotonEvaporation5.5"
declare -x G4NEUTRONHPDATA="/usr/share/geant4/data/G4NDL4.6"
declare -x G4PARTICLEXSDATA="/usr/share/geant4/data/G4PARTICLEXS2.1"
declare -x G4PIIDATA="/usr/share/geant4/data/G4PII1.3"
declare -x G4PROTONHPDATA="/usr/share/geant4/data/G4TENDL1.3.2"
declare -x G4RADIOACTIVEDATA="/usr/share/geant4/data/RadioactiveDecay5.4"
declare -x G4REALSURFACEDATA="/usr/share/geant4/data/RealSurface2.1.1"
declare -x G4SAIDXSDATA="/usr/share/geant4/data/G4SAIDDATA2.0"
declare -x GCC_COLORS=""
declare -x GCC_SPECS=""
declare -x GO19CONCURRENTCOMPILATION="0"
declare -x GOMAXPROCS="1"
declare -x GPSD_PROTOCOLS=""
declare -x GREP_COLORS="never"
declare -x GRUB_PLATFORMS=""
declare HOMEPAGE="https://www.asterisk.org/"
declare -x INHERITED=" toolchain-funcs multilib libtool autotools linux-info systemd"
declare -x INPUT_DEVICES=""
declare -x INSOPTIONS="-m0644"
declare IUSE="
	+voicemail_storage_file
	voicemail_storage_odbc
	voicemail_storage_imap
 alsa bluetooth calendar +caps cluster curl dahdi debug doc freetds gtalk http iconv ilbc ldap libedit libressl lua mysql newt +samples odbc osplookup oss pjproject portaudio postgres radius selinux snmp span speex srtp +ssl static statsd syslog vorbis xmpp kernel_linux"
declare -x IUSE_EFFECTIVE="abi_x86_64 alpha alsa amd64 amd64-fbsd amd64-linux arm arm64 bluetooth calendar caps cluster curl dahdi debug doc elibc_AIX elibc_Cygwin elibc_Darwin elibc_DragonFly elibc_FreeBSD elibc_HPUX elibc_Interix elibc_NetBSD elibc_OpenBSD elibc_SunOS elibc_Winnt elibc_bionic elibc_glibc elibc_mingw elibc_mintlib elibc_musl elibc_uclibc freetds gtalk hppa http ia64 iconv ilbc kernel_AIX kernel_Darwin kernel_FreeBSD kernel_HPUX kernel_NetBSD kernel_OpenBSD kernel_SunOS kernel_Winnt kernel_freemint kernel_linux ldap libedit libressl lua m68k m68k-mint mips mysql newt odbc osplookup oss pjproject portaudio postgres ppc ppc-aix ppc-macos ppc64 ppc64-linux prefix prefix-guest prefix-stack radius riscv s390 samples selinux sh snmp span sparc sparc-solaris sparc64-solaris speex srtp ssl static statsd syslog userland_BSD userland_GNU voicemail_storage_file voicemail_storage_imap voicemail_storage_odbc vorbis x64-cygwin x64-macos x64-solaris x64-winnt x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt xmpp"
declare -- IUSE_EXPAND="VOICEMAIL_STORAGE"
declare -x IUSE_IMPLICIT="abi_x86_64 prefix prefix-guest prefix-stack"
declare -- IUSE_VOICEMAIL_STORAGE="
	+voicemail_storage_file
	voicemail_storage_odbc
	voicemail_storage_imap
"
declare -x KERNEL="linux"
declare -x KERNEL_ABI="amd64"
declare -- KERNEL_DIR="/usr/src/linux"
declare -- KERNEL_MAKEFILE="/usr/src/linux/Makefile"
declare -x KEYWORDS="~amd64 ~ppc ~x86"
declare -- KV_DIR="/usr/src/linux"
declare -- KV_EXTRA="-gentoo"
declare -- KV_FULL="5.5.9-gentoo"
declare -- KV_LOCAL=""
declare -- KV_MAJOR="5"
declare -- KV_MINOR="5"
declare -- KV_OUT_DIR="/usr/src/linux"
declare -- KV_PATCH="9"
declare -x L10N=""
declare -x LADSPA_PATH="/usr/lib/ladspa"
declare -x LANG="C.utf8"
declare -x LCD_DEVICES=""
declare -x LC_COLLATE="C"
declare -x LC_MESSAGES="C"
declare -x LDFLAGS="-Wl,-O1 -Wl,--as-needed"
declare -x LDFLAGS_amd64="-m elf_x86_64"
declare -x LDFLAGS_default
declare -x LDFLAGS_x32="-m elf32_x86_64"
declare -x LDFLAGS_x86="-m elf_i386"
declare -x LIBDIR_amd64="lib"
declare -x LIBDIR_default="lib"
declare -x LIBDIR_x32="libx32"
declare -x LIBDIR_x86="lib32"
declare -x LIBOPTIONS="-m0644"
declare -x LIBREOFFICE_EXTENSIONS=""
declare -x LICENSE="GPL-2"
declare -x LINUX_CONFIG_EXISTS_DONE=""
declare -x LIRC_DEVICES=""
declare -x LLVM_TARGETS=""
declare -x MAKEOPTS="-j1"
declare -x MANPAGER="manpager"
declare -x MONKEYD_PLUGINS=""
declare -x MULTILIB_ABIS="amd64"
declare -x MULTILIB_STRICT_DENY="64-bit.*shared object"
declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib"
declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage|udev|systemd|clang|python-exec|llvm)"
declare -- MY_P="asterisk-13.31.0"
declare -x NGINX_MODULES_HTTP=""
declare -x NGINX_MODULES_MAIL=""
declare -x NGINX_MODULES_STREAM=""
declare -x NINJAFLAGS="-j1"
declare -x OCAML_COLOR="never"
declare -x OFED_DRIVERS=""
declare -x OFFICE_IMPLEMENTATION=""
declare -x OMP_DYNAMIC="FALSE"
declare -x OMP_NESTED="FALSE"
declare -x OMP_NUM_THREADS="1"
declare -x OPENMPI_FABRICS=""
declare -x OPENMPI_OFED_FEATURES=""
declare -x OPENMPI_RM=""
declare -a PATCHES=([0]="/var/tmp/portage/net-misc/asterisk-13.31.0/work/asterisk-patchset")
declare -x PATH="/usr/lib/portage/python3.6/ebuild-helpers/xattr:/usr/lib/portage/python3.6/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/10/bin:/usr/lib/llvm/9/bin:/usr/lib/llvm/8/bin"
declare -x PAX_MARKINGS="none"
declare PDEPEND=""
declare -x PHP_TARGETS=""
declare -x PORTAGE_COMPRESSION_COMMAND="bzip2"
declare -a PORTAGE_DOCOMPRESS=([0]="/usr/share/doc" [1]="/usr/share/info" [2]="/usr/share/man")
declare -x PORTAGE_DOCOMPRESS_SIZE_LIMIT="128"
declare -a PORTAGE_DOCOMPRESS_SKIP=([0]="/usr/share/doc/asterisk-13.31.0/html")
declare -a PORTAGE_DOSTRIP=([0]="/")
declare -a PORTAGE_DOSTRIP_SKIP=()
declare -x PORTAGE_LIBC="musl"
declare -x PORT_LOGDIR="/var/log/portage"
declare -x POSTGRES_TARGETS=""
declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC IUSE_IMPLICIT KERNEL USERLAND USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ARCH USE_EXPAND_VALUES_ELIBC USE_EXPAND_VALUES_KERNEL USE_EXPAND_VALUES_USERLAND"
declare -x PROPERTIES=""
declare -x PYTHONDONTWRITEBYTECODE="1"
declare -x PYTHON_SINGLE_TARGET=""
declare -x PYTHON_TARGETS=""
declare -- QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\\+"
declare -x QEMU_SOFTMMU_TARGETS=""
declare -x QEMU_USER_TARGETS=""
declare RDEPEND="acct-user/asterisk
	acct-group/asterisk
	dev-db/sqlite:3
	dev-libs/popt
	dev-libs/jansson
	dev-libs/libxml2:2
	dev-libs/libxslt
	sys-libs/ncurses:0=
	sys-libs/zlib
	alsa? ( media-libs/alsa-lib )
	bluetooth? ( net-wireless/bluez:= )
	calendar? (
		net-libs/neon:=
		dev-libs/libical:=
		dev-libs/iksemel
	)
	caps? ( sys-libs/libcap )
	cluster? ( sys-cluster/corosync )
	curl? ( net-misc/curl )
	dahdi? (
		net-libs/libpri
		net-misc/dahdi-tools
	)
	freetds? ( dev-db/freetds )
	gtalk? ( dev-libs/iksemel )
	http? ( dev-libs/gmime:2.6 )
	iconv? ( virtual/libiconv )
	ilbc? ( dev-libs/ilbc-rfc3951 )
	ldap? ( net-nds/openldap )
	libedit? ( dev-libs/libedit )
	lua? ( dev-lang/lua:* )
	mysql? ( dev-db/mysql-connector-c:= )
	newt? ( dev-libs/newt )
	odbc? ( dev-db/unixODBC )
	osplookup? ( net-libs/osptoolkit )
	pjproject? ( net-libs/pjproject )
	portaudio? ( media-libs/portaudio )
	postgres? ( dev-db/postgresql:* )
	radius? ( net-dialup/freeradius-client )
	snmp? ( net-analyzer/net-snmp:= )
	span? ( media-libs/spandsp )
	speex? (
		media-libs/speex
		media-libs/speexdsp
	)
	srtp? ( net-libs/libsrtp:0 )
	ssl? (
		!libressl? ( dev-libs/openssl:0= )
		libressl? ( dev-libs/libressl:0= )
	)
	vorbis? ( media-libs/libvorbis )
	voicemail_storage_imap? ( virtual/imap-c-client )
	xmpp? ( dev-libs/iksemel )

	net-misc/asterisk-core-sounds
	net-misc/asterisk-extra-sounds
	net-misc/asterisk-moh-opsound
	selinux? ( sec-policy/selinux-asterisk )
	syslog? ( virtual/logger ) "
declare REPOSITORY
declare REQUIRED_USE="gtalk? ( xmpp )
	^^ ( 
	voicemail_storage_file
	voicemail_storage_odbc
	voicemail_storage_imap
 )
	voicemail_storage_odbc? ( odbc )
 "
declare -x RESTRICT=""
declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\""
declare -x ROS_MESSAGES=""
declare -x RUBY_TARGETS=""
declare -x RUSTFLAGS="-C codegen-units=1 -C target-feature=-crt-static"
declare -x RUST_TEST_TASKS="1"
declare -x RUST_TEST_THREADS="1"
declare -x S="/var/tmp/portage/net-misc/asterisk-13.31.0/work/asterisk-13.31.0"
declare -x SANDBOX_DEBUG="0"
declare -x SANDBOX_DENY=""
declare -x SANDBOX_PREDICT="/var/tmp/portage/net-misc/asterisk-13.31.0/homedir:/dev/crypto:/var/cache/man:/var/cache/fontconfig"
declare -x SANDBOX_READ="/:/var/tmp/portage"
declare -x SANDBOX_VERBOSE="1"
declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/ptmx:/dev/pts/:/dev/pty:/dev/shm:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp/:/var/tmp/portage:/var/tmp/portage/net-misc/asterisk-13.31.0/homedir/.bash_history"
declare -x SANE_BACKENDS=""
declare -x SGML_CATALOG_FILES="/etc/sgml/xml-docbook-4.3.cat:/etc/sgml/xml-docbook-4.4.cat:/etc/sgml/xml-docbook-4.1.2.cat:/etc/sgml/sgml-ent.cat:/etc/sgml/xml-docbook-4.5.cat:/etc/sgml/sgml-docbook.cat:/etc/sgml/sgml-docbook-3.1.cat:/etc/sgml/sgml-docbook-3.0.cat:/etc/sgml/dsssl-docbook-stylesheets.cat:/etc/sgml/openjade-1.3.2.cat:/etc/sgml/sgml-lite.cat:/etc/sgml/html401.cat"
declare -x SHELL="/bin/bash"
declare -x SLOT="0"
declare SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-13.31.0.tar.gz
	https://downloads.uls.co.za/gentoo/asterisk/gentoo-asterisk-patchset-4.08.tar.bz2"
declare -x SYMLINK_LIB="no"
declare -x TERMINFO="/etc/terminfo"
declare -x TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE="1"
declare -x USE="abi_x86_64 amd64 caps elibc_musl iconv kernel_linux samples ssl userland_GNU voicemail_storage_file"
declare -x USERLAND="GNU"
declare -x USE_EXPAND_IMPLICIT="ARCH ELIBC KERNEL USERLAND"
declare -x USE_EXPAND_UNPREFIXED="ARCH"
declare -x USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm64 hppa ia64 m68k m68k-mint mips ppc ppc64 ppc64-linux ppc-aix ppc-macos riscv s390 sh sparc sparc64-solaris sparc-solaris x64-cygwin x64-macos x64-solaris x64-winnt x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt"
declare -x USE_EXPAND_VALUES_ELIBC="AIX bionic Cygwin Darwin DragonFly FreeBSD glibc HPUX Interix mingw mintlib musl NetBSD OpenBSD SunOS uclibc Winnt"
declare -x USE_EXPAND_VALUES_KERNEL="AIX Darwin FreeBSD freemint HPUX linux NetBSD OpenBSD SunOS Winnt"
declare -x USE_EXPAND_VALUES_USERLAND="BSD GNU"
declare -x UWSGI_PLUGINS=""
declare -x VIDEO_CARDS=""
declare -x VOICEMAIL_STORAGE="file"
declare -x WANT_AUTOCONF="2.5"
declare -x WANT_AUTOMAKE="1.16"
declare -x WANT_LIBTOOL="latest"
declare -x XFCE_PLUGINS=""
declare -x XTABLES_ADDONS=""
declare -- _AUTOTOOLS_ECLASS="1"
declare -x _E_DESTTREE_="/usr"
declare -x _E_DOCDESTTREE_=""
declare -x _E_EXEDESTTREE_=""
declare -x _E_INSDESTTREE_=""
declare -a _LATEST_AUTOMAKE=([0]="1.16.1:1.16" [1]="1.15.1:1.15")
declare -- _LIBTOOL_ECLASS="1"
declare -x _LINUX_CONFIG_EXISTS_DONE="1"
declare -- _MULTILIB_ECLASS="1"
declare -- _TOOLCHAIN_FUNCS_ECLASS="1"
declare -- __AUTOTOOLS_AUTO_DEPEND="yes"
declare -- _libtool_atom=">=sys-devel/libtool-2.4"
declare -- get_version_warning_done=""
__eapi6_src_install () 
{ 
    if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then
        emake DESTDIR="${D}" install;
    fi;
    einstalldocs
}
__eapi6_src_prepare () 
{ 
    if ___is_indexed_array_var PATCHES; then
        [[ ${#PATCHES[@]} -gt 0 ]] && eapply "${PATCHES[@]}";
    else
        if [[ -n ${PATCHES} ]]; then
            eapply ${PATCHES};
        fi;
    fi;
    eapply_user
}
__eapi7_ver_compare () 
{ 
    local va=${1} vb=${2} a an al as ar b bn bl bs br re LC_ALL=C;
    re="^([0-9]+(\.[0-9]+)*)([a-z]?)((_(alpha|beta|pre|rc|p)[0-9]*)*)(-r[0-9]+)?$";
    [[ ${va} =~ ${re} ]] || die "${FUNCNAME}: invalid version: ${va}";
    an=${BASH_REMATCH[1]};
    al=${BASH_REMATCH[3]};
    as=${BASH_REMATCH[4]};
    ar=${BASH_REMATCH[7]};
    [[ ${vb} =~ ${re} ]] || die "${FUNCNAME}: invalid version: ${vb}";
    bn=${BASH_REMATCH[1]};
    bl=${BASH_REMATCH[3]};
    bs=${BASH_REMATCH[4]};
    br=${BASH_REMATCH[7]};
    __eapi7_ver_compare_int "${an%%.*}" "${bn%%.*}" || return;
    while [[ ${an} == *.* && ${bn} == *.* ]]; do
        an=${an#*.};
        bn=${bn#*.};
        a=${an%%.*};
        b=${bn%%.*};
        if [[ ${a} == 0* || ${b} == 0* ]]; then
            [[ ${a} =~ 0+$ ]] && a=${a%"${BASH_REMATCH[0]}"};
            [[ ${b} =~ 0+$ ]] && b=${b%"${BASH_REMATCH[0]}"};
            [[ ${a} > ${b} ]] && return 3;
            [[ ${a} < ${b} ]] && return 1;
        else
            __eapi7_ver_compare_int "${a}" "${b}" || return;
        fi;
    done;
    [[ ${an} == *.* ]] && return 3;
    [[ ${bn} == *.* ]] && return 1;
    [[ ${al} > ${bl} ]] && return 3;
    [[ ${al} < ${bl} ]] && return 1;
    as=${as#_}${as:+_};
    bs=${bs#_}${bs:+_};
    while [[ -n ${as} && -n ${bs} ]]; do
        a=${as%%_*};
        b=${bs%%_*};
        if [[ ${a%%[0-9]*} == "${b%%[0-9]*}" ]]; then
            __eapi7_ver_compare_int "${a##*[a-z]}" "${b##*[a-z]}" || return;
        else
            [[ ${a%%[0-9]*} == p ]] && return 3;
            [[ ${b%%[0-9]*} == p ]] && return 1;
            [[ ${a} > ${b} ]] && return 3 || return 1;
        fi;
        as=${as#*_};
        bs=${bs#*_};
    done;
    if [[ -n ${as} ]]; then
        [[ ${as} == p[_0-9]* ]] && return 3 || return 1;
    else
        if [[ -n ${bs} ]]; then
            [[ ${bs} == p[_0-9]* ]] && return 1 || return 3;
        fi;
    fi;
    __eapi7_ver_compare_int "${ar#-r}" "${br#-r}" || return;
    return 2
}
__eapi7_ver_compare_int () 
{ 
    local a=$1 b=$2 d=$(( ${#1}-${#2} ));
    if [[ ${d} -gt 0 ]]; then
        printf -v b "%0${d}d%s" 0 "${b}";
    else
        if [[ ${d} -lt 0 ]]; then
            printf -v a "%0$(( -d ))d%s" 0 "${a}";
        fi;
    fi;
    [[ ${a} > ${b} ]] && return 3;
    [[ ${a} == "${b}" ]]
}
__eapi7_ver_parse_range () 
{ 
    local range=${1};
    local max=${2};
    [[ ${range} == [0-9]* ]] || die "${FUNCNAME}: range must start with a number";
    start=${range%-*};
    [[ ${range} == *-* ]] && end=${range#*-} || end=${start};
    if [[ -n ${end} ]]; then
        [[ ${start} -le ${end} ]] || die "${FUNCNAME}: end of range must be >= start";
        [[ ${end} -le ${max} ]] || end=${max};
    else
        end=${max};
    fi
}
__eapi7_ver_split () 
{ 
    local v=${1} LC_ALL=C;
    comp=();
    local s c;
    while [[ -n ${v} ]]; do
        s=${v%%[a-zA-Z0-9]*};
        v=${v:${#s}};
        [[ ${v} == [0-9]* ]] && c=${v%%[^0-9]*} || c=${v%%[^a-zA-Z]*};
        v=${v:${#c}};
        comp+=("${s}" "${c}");
    done
}
_at_uses_autoheader () 
{ 
    _at_uses_pkg A{C,M}_CONFIG_HEADER{S,}
}
_at_uses_automake () 
{ 
    _at_uses_pkg AM_INIT_AUTOMAKE
}
_at_uses_gettext () 
{ 
    _at_uses_pkg AM_GNU_GETTEXT_{,REQUIRE_}VERSION
}
_at_uses_glibgettext () 
{ 
    _at_uses_pkg AM_GLIB_GNU_GETTEXT
}
_at_uses_gnomedoc () 
{ 
    _at_uses_pkg GNOME_DOC_INIT
}
_at_uses_gtkdoc () 
{ 
    _at_uses_pkg GTK_DOC_CHECK
}
_at_uses_intltool () 
{ 
    _at_uses_pkg {AC,IT}_PROG_INTLTOOL
}
_at_uses_libltdl () 
{ 
    _at_uses_pkg LT_CONFIG_LTDL_DIR
}
_at_uses_libtool () 
{ 
    _at_uses_pkg A{C,M}_PROG_LIBTOOL LT_INIT
}
_at_uses_pkg () 
{ 
    if [[ -n $(autotools_check_macro "$@") ]]; then
        return 0;
    else
        local macro args=();
        for macro in "$@";
        do
            args+=(-e "^[[:space:]]*${macro}\>");
        done;
        egrep -q "${args[@]}" configure.??;
    fi
}
_automake_version () 
{ 
    autotools_run_tool --at-output automake --version 2> /dev/null | sed -n -e '1{s:.*(GNU automake) ::p;q}'
}
_autotools_m4dir_include () 
{ 
    local x include_opts flag;
    [[ ${WANT_AUTOCONF} == "2.1" ]] && flag="l" || flag="I";
    for x in "$@";
    do
        case ${x} in 
            -${flag})

            ;;
            *)
                [[ ! -d ${x} ]] && ewarn "autotools.eclass: '${x}' does not exist";
                include_opts+=" -${flag} ${x}"
            ;;
        esac;
    done;
    echo ${include_opts}
}
_clang_fullversion () 
{ 
    local ver="$1";
    shift;
    set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__");
    eval echo "$ver"
}
_eapply_get_files () 
{ 
    local LC_ALL=POSIX;
    local prev_shopt=$(shopt -p nullglob);
    shopt -s nullglob;
    local f;
    for f in "${1}"/*;
    do
        if [[ ${f} == *.diff || ${f} == *.patch ]]; then
            files+=("${f}");
        fi;
    done;
    ${prev_shopt}
}
_eapply_patch () 
{ 
    local f=${1};
    local prefix=${2};
    ebegin "${prefix:-Applying }${f##*/}";
    local all_opts=(-p1 -f -g0 --no-backup-if-mismatch "${patch_options[@]}");
    if ${patch_cmd} "${all_opts[@]}" --dry-run -s -F0 < "${f}" &> /dev/null; then
        all_opts+=(-s -F0);
    fi;
    ${patch_cmd} "${all_opts[@]}" < "${f}";
    failed=${?};
    if ! eend "${failed}"; then
        __helpers_die "patch -p1 ${patch_options[*]} failed with ${f}";
    fi
}
_elibtoolize () 
{ 
    local LIBTOOLIZE=${LIBTOOLIZE:-$(type -P glibtoolize > /dev/null && echo glibtoolize || echo libtoolize)};
    if [[ $1 == "--auto-ltdl" ]]; then
        shift;
        _at_uses_libltdl && set -- "$@" --ltdl;
    fi;
    [[ -f GNUmakefile.am || -f Makefile.am ]] && set -- "$@" --automake;
    autotools_run_tool ${LIBTOOLIZE} "$@"
}
_gcc-install-dir () 
{ 
    echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null |		awk '$1=="install:" {print $2}')"
}
_gcc-specs-directive_raw () 
{ 
    local cc=$(tc-getCC);
    local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}');
    ${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN	{ pspec=""; spec=""; outside=1 }
$1=="*"directive":"  { pspec=spec; spec=""; outside=0; next }
	outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next }
	spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next }
	{ spec=spec $0 }
END	{ print spec }';
    return 0
}
_gcc-specs-exists () 
{ 
    [[ -f $(_gcc-install-dir)/$1 ]]
}
_gcc_fullversion () 
{ 
    local ver="$1";
    shift;
    set -- $($(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__");
    eval echo "$ver"
}
_systemd_get_dir () 
{ 
    [[ ${#} -eq 2 ]] || die "Usage: ${FUNCNAME} <variable-name> <fallback-directory>";
    local variable=${1} fallback=${2} d;
    if $(tc-getPKG_CONFIG) --exists systemd; then
        d=$($(tc-getPKG_CONFIG) --variable="${variable}" systemd) || die;
        d=${d#${EPREFIX}};
    else
        d=${fallback};
    fi;
    echo "${d}"
}
_systemd_get_systemgeneratordir () 
{ 
    _systemd_get_dir systemdsystemgeneratordir /lib/systemd/system-generators
}
_systemd_get_systemunitdir () 
{ 
    _systemd_get_dir systemdsystemunitdir /lib/systemd/system
}
_systemd_get_userunitdir () 
{ 
    _systemd_get_dir systemduserunitdir /usr/lib/systemd/user
}
_systemd_get_utildir () 
{ 
    _systemd_get_dir systemdutildir /lib/systemd
}
_tc-getPROG () 
{ 
    local tuple=$1;
    local v var vars=$2;
    local prog=($3);
    var=${vars%% *};
    for v in ${vars};
    do
        if [[ -n ${!v} ]]; then
            export ${var}="${!v}";
            echo "${!v}";
            return 0;
        fi;
    done;
    local search=;
    [[ -n $4 ]] && search=$(type -p $4-${prog[0]});
    [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p ${!tuple}-${prog[0]});
    [[ -n ${search} ]] && prog[0]=${search##*/};
    export ${var}="${prog[*]}";
    echo "${!var}"
}
autotools_check_macro () 
{ 
    [[ -f configure.ac || -f configure.in ]] || return 0;
    local trace_file=".__autoconf_trace_data";
    if [[ ! -e ${trace_file} ]] || [[ ! aclocal.m4 -ot ${trace_file} ]]; then
        WANT_AUTOCONF="2.5" autoconf $(autotools_m4dir_include) ${ALL_AUTOTOOLS_MACROS[@]/#/--trace=} > ${trace_file} 2> /dev/null;
    fi;
    local macro args=();
    for macro in "$@";
    do
        has ${macro} ${ALL_AUTOTOOLS_MACROS[@]} || die "internal error: add ${macro} to ALL_AUTOTOOLS_MACROS";
        args+=(-e ":${macro}:");
    done;
    grep "${args[@]}" ${trace_file}
}
autotools_check_macro_val () 
{ 
    local macro scan_out;
    for macro in "$@";
    do
        autotools_check_macro "${macro}" | gawk -v macro="${macro}" '($0 !~ /^[[:space:]]*(#|dnl)/) {
					if (match($0, macro ":(.*)$", res))
						print res[1]
				}' | uniq;
    done;
    return 0
}
autotools_env_setup () 
{ 
    if [[ ${WANT_AUTOMAKE} == "latest" ]]; then
        local pv;
        for pv in ${_LATEST_AUTOMAKE[@]/#*:};
        do
            local hv_args="";
            case ${EAPI:-0} in 
                5 | 6)
                    hv_args="--host-root"
                ;;
                7)
                    hv_args="-b"
                ;;
            esac;
            ROOT=/ has_version ${hv_args} "=sys-devel/automake-${pv}*" && export WANT_AUTOMAKE="${pv}" && break;
        done;
        [[ ${WANT_AUTOMAKE} == "latest" ]] && die "Cannot find the latest automake! Tried ${_LATEST_AUTOMAKE[*]}";
    fi;
    [[ ${WANT_AUTOCONF} == "latest" ]] && export WANT_AUTOCONF=2.5
}
autotools_m4dir_include () 
{ 
    _autotools_m4dir_include ${AT_M4DIR}
}
autotools_m4sysdir_include () 
{ 
    local paths=($(eval echo ${AT_SYS_M4DIR}));
    if [[ ${#paths[@]} -eq 0 && -n ${SYSROOT} ]]; then
        local path="${SYSROOT}/usr/share/aclocal";
        [[ -d ${path} ]] && paths+=("${path}");
    fi;
    _autotools_m4dir_include "${paths[@]}"
}
autotools_run_tool () 
{ 
    local autofail=true m4flags=false missing_ok=false return_output=false;
    while [[ -n $1 ]]; do
        case $1 in 
            --at-no-fail)
                autofail=false
            ;;
            --at-m4flags)
                m4flags=true
            ;;
            --at-missing)
                missing_ok=true
            ;;
            --at-output)
                return_output=true
            ;;
            *)
                break
            ;;
        esac;
        shift;
    done;
    if [[ ${EBUILD_PHASE} != "unpack" && ${EBUILD_PHASE} != "prepare" ]]; then
        ewarn "QA Warning: running $1 in ${EBUILD_PHASE} phase";
    fi;
    if ${missing_ok} && ! type -P ${1} > /dev/null; then
        einfo "Skipping '$*' due $1 not installed";
        return 0;
    fi;
    autotools_env_setup;
    local STDERR_TARGET="${T}/${1##*/}.out";
    if [[ -e ${STDERR_TARGET} ]]; then
        local i=1;
        while :; do
            STDERR_TARGET="${T}/${1##*/}-${i}.out";
            [[ -e ${STDERR_TARGET} ]] || break;
            : $(( i++ ));
        done;
    fi;
    if ${m4flags}; then
        set -- "${1}" $(autotools_m4dir_include) $(autotools_m4sysdir_include) "${@:2}";
    fi;
    if ${return_output}; then
        "$@";
        return;
    fi;
    printf "***** $1 *****\n***** PWD: ${PWD}\n***** $*\n\n" > "${STDERR_TARGET}";
    ebegin "Running $@";
    "$@" >> "${STDERR_TARGET}" 2>&1;
    if ! eend $? && ${autofail}; then
        echo;
        eerror "Failed Running $1 !";
        eerror;
        eerror "Include in your bugreport the contents of:";
        eerror;
        eerror "  ${STDERR_TARGET}";
        echo;
        die "Failed Running $1 !";
    fi
}
check_extra_config () 
{ 
    use kernel_linux || return;
    local config negate die error reworkmodulenames;
    local soft_errors_count=0 hard_errors_count=0 config_required=0;
    local old_LINUX_CONFIG_EXISTS_DONE="${_LINUX_CONFIG_EXISTS_DONE}";
    linux-info_get_any_version;
    for config in ${CONFIG_CHECK};
    do
        if [[ "${config:0:1}" != "~" ]]; then
            config_required=1;
            break;
        fi;
    done;
    if [[ ${config_required} == 0 ]]; then
        if ! linux_config_exists; then
            ewarn "Unable to check for the following kernel config options due";
            ewarn "to absence of any configured kernel sources or compiled";
            ewarn "config:";
            for config in ${CONFIG_CHECK};
            do
                config=${config#\~};
                config=${config#\!};
                local_error="ERROR_${config}";
                msg="${!local_error}";
                if [[ -z ${msg} ]]; then
                    local_error="WARNING_${config}";
                    msg="${!local_error}";
                fi;
                ewarn " - ${config}${msg:+ - }${msg}";
            done;
            ewarn "You're on your own to make sure they are set if needed.";
            export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}";
            return 0;
        fi;
    else
        require_configured_kernel;
    fi;
    einfo "Checking for suitable kernel configuration options...";
    for config in ${CONFIG_CHECK};
    do
        die=1;
        error=0;
        negate=0;
        reworkmodulenames=0;
        if [[ ${config:0:1} == "~" ]]; then
            die=0;
            config=${config:1};
        else
            if [[ ${config:0:1} == "@" ]]; then
                die=0;
                reworkmodulenames=1;
                config=${config:1};
            fi;
        fi;
        if [[ ${config:0:1} == "!" ]]; then
            negate=1;
            config=${config:1};
        fi;
        if [[ ${negate} == 1 ]]; then
            linux_chkconfig_present ${config} && error=2;
        else
            if [[ ${reworkmodulenames} == 1 ]]; then
                local temp_config="${config//*:}" i n;
                config="${config//:*}";
                if linux_chkconfig_present ${config}; then
                    for i in ${MODULE_NAMES};
                    do
                        n="${i//${temp_config}}";
                        [[ -z ${n//\(*} ]] && MODULE_IGNORE="${MODULE_IGNORE} ${temp_config}";
                    done;
                    error=2;
                fi;
            else
                linux_chkconfig_present ${config} || error=1;
            fi;
        fi;
        if [[ ${error} > 0 ]]; then
            local report_func="eerror" local_error;
            local_error="ERROR_${config}";
            local_error="${!local_error}";
            if [[ -z "${local_error}" ]]; then
                local_error="${config}_ERROR";
                local_error="${!local_error}";
            fi;
            if [[ ${die} == 0 && -z "${local_error}" ]]; then
                local_error="WARNING_${config}";
                local_error="${!local_error}";
                if [[ -n "${local_error}" ]]; then
                    report_func="ewarn";
                fi;
            fi;
            if [[ -z "${local_error}" ]]; then
                [[ ${error} == 1 ]] && local_error="is not set when it should be." || local_error="should not be set. But it is.";
                local_error="CONFIG_${config}:\t ${local_error}";
            fi;
            if [[ ${die} == 0 ]]; then
                ${report_func} "  ${local_error}";
                soft_errors_count=$[soft_errors_count + 1];
            else
                ${report_func} "  ${local_error}";
                hard_errors_count=$[hard_errors_count + 1];
            fi;
        fi;
    done;
    if [[ ${hard_errors_count} > 0 ]]; then
        eerror "Please check to make sure these options are set correctly.";
        eerror "Failure to do so may cause unexpected problems.";
        eerror "Once you have satisfied these options, please try merging";
        eerror "this package again.";
        export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}";
        die "Incorrect kernel configuration options";
    else
        if [[ ${soft_errors_count} > 0 ]]; then
            ewarn "Please check to make sure these options are set correctly.";
            ewarn "Failure to do so may cause unexpected problems.";
        else
            eend 0;
        fi;
    fi;
    export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}"
}
check_kernel_built () 
{ 
    if ! use kernel_linux; then
        die "${FUNCNAME}() called on non-Linux system, please fix the ebuild";
    fi;
    require_configured_kernel;
    local versionh_path;
    if kernel_is -ge 3 7; then
        versionh_path="include/generated/uapi/linux/version.h";
    else
        versionh_path="include/linux/version.h";
    fi;
    if [ ! -f "${KV_OUT_DIR}/${versionh_path}" ]; then
        eerror "These sources have not yet been prepared.";
        eerror "We cannot build against an unprepared tree.";
        eerror "To resolve this, please type the following:";
        eerror;
        eerror "# cd ${KV_DIR}";
        eerror "# make oldconfig";
        eerror "# make modules_prepare";
        eerror;
        eerror "Then please try merging this module again.";
        die "Kernel sources need compiling first";
    fi
}
check_modules_supported () 
{ 
    if ! use kernel_linux; then
        die "${FUNCNAME}() called on non-Linux system, please fix the ebuild";
    fi;
    require_configured_kernel;
    if ! linux_chkconfig_builtin "MODULES"; then
        eerror "These sources do not support loading external modules.";
        eerror "to be able to use this module please enable \"Loadable modules support\"";
        eerror "in your kernel, recompile and then try merging this module again.";
        die "No support for external modules in ${KV_FULL} config";
    fi
}
check_zlibinflate () 
{ 
    if ! use kernel_linux; then
        die "${FUNCNAME}() called on non-Linux system, please fix the ebuild";
    fi;
    require_configured_kernel;
    local INFLATE;
    local DEFLATE;
    einfo "Determining the usability of ZLIB_INFLATE support in your kernel";
    ebegin "checking ZLIB_INFLATE";
    linux_chkconfig_builtin CONFIG_ZLIB_INFLATE;
    eend $? || die;
    ebegin "checking ZLIB_DEFLATE";
    linux_chkconfig_builtin CONFIG_ZLIB_DEFLATE;
    eend $? || die;
    local LINENO_START;
    local LINENO_END;
    local SYMBOLS;
    local x;
    LINENO_END="$(grep -n 'CONFIG_ZLIB_INFLATE y' ${KV_DIR}/lib/Config.in | cut -d : -f 1)";
    LINENO_START="$(head -n $LINENO_END ${KV_DIR}/lib/Config.in | grep -n 'if \[' | tail -n 1 | cut -d : -f 1)";
    (( LINENO_AMOUNT = $LINENO_END - $LINENO_START ));
    (( LINENO_END = $LINENO_END - 1 ));
    SYMBOLS="$(head -n $LINENO_END ${KV_DIR}/lib/Config.in | tail -n $LINENO_AMOUNT | sed -e 's/^.*\(CONFIG_[^\" ]*\).*/\1/g;')";
    for x in $SYMBOLS;
    do
        if [ "${!x}" = "y" ]; then
            einfo "${x} ensures zlib is linked into your kernel - excellent";
            return 0;
        fi;
    done;
    eerror;
    eerror "This kernel module requires ZLIB library support.";
    eerror "You have enabled zlib support in your kernel, but haven't enabled";
    eerror "enabled any option that will ensure that zlib is linked into your";
    eerror "kernel.";
    eerror;
    eerror "Please ensure that you enable at least one of these options:";
    eerror;
    for x in $SYMBOLS;
    do
        eerror "  * $x";
    done;
    eerror;
    eerror "Please remember to recompile and install your kernel, and reboot";
    eerror "into your new kernel before attempting to load this kernel module.";
    die "Kernel doesn't include zlib support"
}
clang-fullversion () 
{ 
    _clang_fullversion '$1.$2.$3' "$@"
}
clang-major-version () 
{ 
    _clang_fullversion '$1' "$@"
}
clang-micro-version () 
{ 
    _clang_fullversion '$3' "$@"
}
clang-minor-version () 
{ 
    _clang_fullversion '$2' "$@"
}
clang-version () 
{ 
    _clang_fullversion '$1.$2' "$@"
}
config_rpath_update () 
{ 
    local dst src=$(type -P gettext | sed 's:bin/gettext:share/gettext/config.rpath:');
    [[ $# -eq 0 ]] && set -- $(find -name config.rpath);
    [[ $# -eq 0 ]] && return 0;
    einfo "Updating all config.rpath files";
    for dst in "$@";
    do
        einfo "   ${dst}";
        cp "${src}" "${dst}" || die;
    done
}
darwintoolize () 
{ 
    die "Use elibtoolize"
}
eaclocal () 
{ 
    [[ ! -f aclocal.m4 || -n $(grep -e 'generated.*by aclocal' aclocal.m4) ]] && autotools_run_tool --at-m4flags aclocal "$@" $(eaclocal_amflags)
}
eaclocal_amflags () 
{ 
    local aclocal_opts amflags_file;
    for amflags_file in GNUmakefile.am Makefile.am GNUmakefile.in Makefile.in;
    do
        [[ -e ${amflags_file} ]] || continue;
        autotools_env_setup;
        aclocal_opts=$(sed -n 			"/^ACLOCAL_AMFLAGS[[:space:]]*=/{ 			  # match the first line
			  s:[^=]*=::p; 			  # then gobble up all escaped lines
			  : nextline /\\\\$/{ n; p; b nextline; } 			}" ${amflags_file});
        eval aclocal_opts=\""${aclocal_opts}"\";
        break;
    done;
    echo ${aclocal_opts}
}
eapply () 
{ 
    local failed patch_cmd=patch;
    local -x LC_COLLATE=POSIX;
    type -P gpatch > /dev/null && patch_cmd=gpatch;
    function _eapply_patch () 
    { 
        local f=${1};
        local prefix=${2};
        ebegin "${prefix:-Applying }${f##*/}";
        local all_opts=(-p1 -f -g0 --no-backup-if-mismatch "${patch_options[@]}");
        if ${patch_cmd} "${all_opts[@]}" --dry-run -s -F0 < "${f}" &> /dev/null; then
            all_opts+=(-s -F0);
        fi;
        ${patch_cmd} "${all_opts[@]}" < "${f}";
        failed=${?};
        if ! eend "${failed}"; then
            __helpers_die "patch -p1 ${patch_options[*]} failed with ${f}";
        fi
    };
    local patch_options=() files=();
    local i found_doublehyphen;
    for ((i = 1; i <= ${#@}; ++i ))
    do
        if [[ ${@:i:1} == -- ]]; then
            patch_options=("${@:1:i-1}");
            files=("${@:i+1}");
            found_doublehyphen=1;
            break;
        fi;
    done;
    if [[ -z ${found_doublehyphen} ]]; then
        for ((i = 1; i <= ${#@}; ++i ))
        do
            if [[ ${@:i:1} != -* ]]; then
                patch_options=("${@:1:i-1}");
                files=("${@:i}");
                break;
            fi;
        done;
        for i in "${files[@]}";
        do
            if [[ ${i} == -* ]]; then
                die "eapply: all options must be passed before non-options";
            fi;
        done;
    fi;
    if [[ ${#files[@]} -eq 0 ]]; then
        die "eapply: no files specified";
    fi;
    local f;
    for f in "${files[@]}";
    do
        if [[ -d ${f} ]]; then
            function _eapply_get_files () 
            { 
                local LC_ALL=POSIX;
                local prev_shopt=$(shopt -p nullglob);
                shopt -s nullglob;
                local f;
                for f in "${1}"/*;
                do
                    if [[ ${f} == *.diff || ${f} == *.patch ]]; then
                        files+=("${f}");
                    fi;
                done;
                ${prev_shopt}
            };
            local files=();
            _eapply_get_files "${f}";
            [[ ${#files[@]} -eq 0 ]] && die "No *.{patch,diff} files in directory ${f}";
            einfo "Applying patches from ${f} ...";
            local f2;
            for f2 in "${files[@]}";
            do
                _eapply_patch "${f2}" '  ';
                [[ ${failed} -ne 0 ]] && return "${failed}";
            done;
        else
            _eapply_patch "${f}";
            [[ ${failed} -ne 0 ]] && return "${failed}";
        fi;
    done;
    return 0
}
eapply_user () 
{ 
    [[ ${EBUILD_PHASE} == prepare ]] || die "eapply_user() called during invalid phase: ${EBUILD_PHASE}";
    local tagfile=${T}/.portage_user_patches_applied;
    [[ -f ${tagfile} ]] && return;
     >> "${tagfile}";
    local basedir=${PORTAGE_CONFIGROOT%/}/etc/portage/patches;
    local applied d f;
    local -A _eapply_user_patches;
    local prev_shopt=$(shopt -p nullglob);
    shopt -s nullglob;
    for d in "${basedir}"/${CATEGORY}/{${P}-${PR},${P},${PN}}{:${SLOT%/*},};
    do
        for f in "${d}"/*;
        do
            if [[ ( ${f} == *.diff || ${f} == *.patch ) && -z ${_eapply_user_patches[${f##*/}]} ]]; then
                _eapply_user_patches[${f##*/}]=${f};
            fi;
        done;
    done;
    if [[ ${#_eapply_user_patches[@]} -gt 0 ]]; then
        while read -r -d '' f; do
            f=${_eapply_user_patches[${f}]};
            if [[ -s ${f} ]]; then
                eapply "${f}";
                applied=1;
            fi;
        done < <(printf -- '%s\0' "${!_eapply_user_patches[@]}" |
				LC_ALL=C sort -z);
    fi;
    ${prev_shopt};
    [[ -n ${applied} ]] && ewarn "User patches applied."
}
eautoconf () 
{ 
    if [[ ! -f configure.ac && ! -f configure.in ]]; then
        echo;
        eerror "No configure.{ac,in} present in '${PWD}'!";
        echo;
        die "No configure.{ac,in} present!";
    fi;
    if [[ ${WANT_AUTOCONF} != "2.1" && -e configure.in ]]; then
        eqawarn "This package has a configure.in file which has long been deprecated.  Please";
        eqawarn "update it to use configure.ac instead as newer versions of autotools will die";
        eqawarn "when it finds this file.  See https://bugs.gentoo.org/426262 for details.";
    fi;
    autotools_run_tool --at-m4flags autoconf "$@"
}
eautoheader () 
{ 
    _at_uses_autoheader || return 0;
    autotools_run_tool --at-no-fail --at-m4flags autoheader "$@"
}
eautomake () 
{ 
    local extra_opts=();
    local makefile_name;
    for makefile_name in {GNUmakefile,{M,m}akefile}.am "";
    do
        [[ -f ${makefile_name} ]] && break;
    done;
    function _automake_version () 
    { 
        autotools_run_tool --at-output automake --version 2> /dev/null | sed -n -e '1{s:.*(GNU automake) ::p;q}'
    };
    if [[ -z ${makefile_name} ]]; then
        _at_uses_automake || return 0;
    else
        if [[ -z ${FROM_EAUTORECONF} && -f ${makefile_name%.am}.in ]]; then
            local used_automake;
            local installed_automake;
            installed_automake=$(WANT_AUTOMAKE= _automake_version);
            used_automake=$(head -n 1 < ${makefile_name%.am}.in | 			sed -e 's:.*by automake \(.*\) from .*:\1:');
            if [[ ${installed_automake} != ${used_automake} ]]; then
                ewarn "Automake used for the package (${used_automake}) differs from" "the installed version (${installed_automake}).";
                ewarn "Forcing a full rebuild of the autotools to workaround.";
                eautoreconf;
                return 0;
            fi;
        fi;
    fi;
    [[ -f INSTALL && -f AUTHORS && -f ChangeLog && -f NEWS && -f README ]] || extra_opts+=(--foreign);
    case $(_automake_version) in 
        1.4 | 1.4[.-]*)

        ;;
        *)
            extra_opts+=(--force-missing)
        ;;
    esac;
    autotools_run_tool automake --add-missing --copy "${extra_opts[@]}" "$@"
}
eautopoint () 
{ 
    autotools_run_tool autopoint "$@"
}
eautoreconf () 
{ 
    local x g;
    if [[ -z ${AT_NO_RECURSIVE} ]]; then
        for x in $(autotools_check_macro_val AC_CONFIG_SUBDIRS);
        do
            if [[ -d ${x} ]]; then
                pushd "${x}" > /dev/null;
                AT_NOELIBTOOLIZE="yes" eautoreconf || die;
                popd > /dev/null;
            fi;
        done;
    fi;
    einfo "Running eautoreconf in '${PWD}' ...";
    local m4dirs=$(autotools_check_macro_val AC_CONFIG_{AUX,MACRO}_DIR);
    [[ -n ${m4dirs} ]] && mkdir -p ${m4dirs};
    local i tools=(glibgettext false "autotools_run_tool glib-gettextize --copy --force" gettext false "autotools_run_tool --at-missing autopoint --force" intltool false "autotools_run_tool intltoolize --automake --copy --force" gtkdoc false "autotools_run_tool --at-missing gtkdocize --copy" gnomedoc false "autotools_run_tool --at-missing gnome-doc-prepare --copy --force" libtool false "_elibtoolize --auto-ltdl --install --copy --force");
    for ((i = 0; i < ${#tools[@]}; i += 3 ))
    do
        if _at_uses_${tools[i]}; then
            tools[i+1]=true;
            ${tools[i+2]};
        fi;
    done;
    local rerun_aclocal=false;
    eaclocal;
    for ((i = 0; i < ${#tools[@]}; i += 3 ))
    do
        if ! ${tools[i+1]} && _at_uses_${tools[i]}; then
            ${tools[i+2]};
            rerun_aclocal=true;
        fi;
    done;
    ${rerun_aclocal} && eaclocal;
    if [[ ${WANT_AUTOCONF} = 2.1 ]]; then
        eautoconf;
    else
        eautoconf --force;
    fi;
    eautoheader;
    [[ ${AT_NOEAUTOMAKE} != "yes" ]] && FROM_EAUTORECONF="yes" eautomake ${AM_OPTS};
    if [[ ${AT_NOELIBTOOLIZE} != "yes" ]]; then
        elibtoolize --force "${PWD}";
    fi;
    return 0
}
econf_build () 
{ 
    local CBUILD=${CBUILD:-${CHOST}};
    tc-env_build econf --build=${CBUILD} --host=${CBUILD} "$@"
}
einstalldocs () 
{ 
    ( if [[ $(declare -p DOCS 2>/dev/null) != *=* ]]; then
        local d;
        for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS FAQ CREDITS CHANGELOG;
        do
            [[ -f ${d} && -s ${d} ]] && docinto / && dodoc "${d}";
        done;
    else
        if ___is_indexed_array_var DOCS; then
            [[ ${#DOCS[@]} -gt 0 ]] && docinto / && dodoc -r "${DOCS[@]}";
        else
            [[ -n ${DOCS} ]] && docinto / && dodoc -r ${DOCS};
        fi;
    fi );
    ( if ___is_indexed_array_var HTML_DOCS; then
        [[ ${#HTML_DOCS[@]} -gt 0 ]] && docinto html && dodoc -r "${HTML_DOCS[@]}";
    else
        [[ -n ${HTML_DOCS} ]] && docinto html && dodoc -r ${HTML_DOCS};
    fi )
}
elibtoolize () 
{ 
    type -P eltpatch &> /dev/null || die "eltpatch not found; is app-portage/elt-patches installed?";
    ELT_LOGDIR=${T} LD=$(tc-getLD) eltpatch "${@}" || die "eltpatch failed"
}
gcc-fullversion () 
{ 
    _gcc_fullversion '$1.$2.$3' "$@"
}
gcc-major-version () 
{ 
    _gcc_fullversion '$1' "$@"
}
gcc-micro-version () 
{ 
    _gcc_fullversion '$3' "$@"
}
gcc-minor-version () 
{ 
    _gcc_fullversion '$2' "$@"
}
gcc-specs-directive () 
{ 
    local directive subdname subdirective;
    directive="$(_gcc-specs-directive_raw $1)";
    while [[ ${directive} == *%\(*\)* ]]; do
        subdname=${directive/*%\(};
        subdname=${subdname/\)*};
        subdirective="$(_gcc-specs-directive_raw ${subdname})";
        directive="${directive//\%(${subdname})/${subdirective}}";
    done;
    echo "${directive}";
    return 0
}
gcc-specs-nostrict () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    [[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]]
}
gcc-specs-now () 
{ 
    local directive;
    directive=$(gcc-specs-directive link_command);
    [[ "${directive/\{!nonow:}" != "${directive}" ]]
}
gcc-specs-pie () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    [[ "${directive/\{!nopie:}" != "${directive}" ]]
}
gcc-specs-relro () 
{ 
    local directive;
    directive=$(gcc-specs-directive link_command);
    [[ "${directive/\{!norelro:}" != "${directive}" ]]
}
gcc-specs-ssp () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    [[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]]
}
gcc-specs-ssp-to-all () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    [[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]]
}
gcc-specs-stack-check () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    [[ "${directive/\{!fno-stack-check:}" != "${directive}" ]]
}
gcc-version () 
{ 
    _gcc_fullversion '$1.$2' "$@"
}
gen_usr_ldscript () 
{ 
    ewarn "${FUNCNAME}: Please migrate to usr-ldscript.eclass";
    local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname);
    [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/;
    tc-is-static-only && return;
    if [[ $(type -t multilib_is_native_abi) == "function" ]]; then
        multilib_is_native_abi || return 0;
    fi;
    case ${CTARGET:-${CHOST}} in 
        *-darwin*)

        ;;
        *-android*)
            return 0
        ;;
        *linux* | *-freebsd* | *-openbsd* | *-netbsd*)
            use prefix && return 0
        ;;
        *)
            return 0
        ;;
    esac;
    dodir /usr/${libdir};
    if [[ $1 == "-a" ]]; then
        auto=true;
        shift;
        dodir /${libdir};
    fi;
    local flags=(${CFLAGS} ${LDFLAGS} -Wl,--verbose);
    if $(tc-getLD) --version | grep -q 'GNU gold'; then
        local d="${T}/bfd-linker";
        mkdir -p "${d}";
        ln -sf $(which ${CHOST}-ld.bfd) "${d}"/ld;
        flags+=(-B"${d}");
    fi;
    output_format=$($(tc-getCC) "${flags[@]}" 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p');
    [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )";
    for lib in "$@";
    do
        local tlib;
        if ${auto}; then
            lib="lib${lib}${suffix}";
        else
            [[ -r ${ED}/${libdir}/${lib} ]] || continue;
        fi;
        case ${CTARGET:-${CHOST}} in 
            *-darwin*)
                if ${auto}; then
                    tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
                else
                    tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib});
                fi;
                [[ -z ${tlib} ]] && die "unable to read install_name from ${lib}";
                tlib=${tlib##*/};
                if ${auto}; then
                    mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
                    if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
                    fi;
                    rm -f "${ED}"/${libdir}/${lib};
                fi;
                if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then
                    chmod u+w "${ED}${libdir}/${tlib}";
                    local nowrite=yes;
                fi;
                install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed";
                [[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}";
                pushd "${ED}/usr/${libdir}" > /dev/null;
                ln -snf "../../${libdir}/${tlib}" "${lib}";
                popd > /dev/null
            ;;
            *)
                if ${auto}; then
                    tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
                    [[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}";
                    mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                    if [[ ${tlib} != ${lib}* ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die;
                    fi;
                    rm -f "${ED}"/${libdir}/${lib};
                else
                    tlib=${lib};
                fi;
                cat > "${ED}/usr/${libdir}/${lib}" <<-END_LDSCRIPT
/* GNU ld script
   Since Gentoo has critical dynamic libraries in /lib, and the static versions
   in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
   run into linking problems.  This "fake" dynamic lib is a linker script that
   redirects the linker to the real lib.  And yes, this works in the cross-
   compiling scenario as the sysroot-ed linker will prepend the real path.

   See bug https://bugs.gentoo.org/4411 for more info.
 */
${output_format}
GROUP ( ${EPREFIX}/${libdir}/${tlib} )
END_LDSCRIPT

            ;;
        esac
        fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}";
    done
}
get_abi_CFLAGS () 
{ 
    get_abi_var CFLAGS "$@"
}
get_abi_CHOST () 
{ 
    get_abi_var CHOST "$@"
}
get_abi_CTARGET () 
{ 
    get_abi_var CTARGET "$@"
}
get_abi_FAKE_TARGETS () 
{ 
    get_abi_var FAKE_TARGETS "$@"
}
get_abi_LDFLAGS () 
{ 
    get_abi_var LDFLAGS "$@"
}
get_abi_LIBDIR () 
{ 
    get_abi_var LIBDIR "$@"
}
get_abi_var () 
{ 
    local flag=$1;
    local abi=${2:-${ABI:-${DEFAULT_ABI:-default}}};
    local var="${flag}_${abi}";
    echo ${!var}
}
get_all_abis () 
{ 
    local x order="" mvar dvar;
    mvar="MULTILIB_ABIS";
    dvar="DEFAULT_ABI";
    if [[ -n $1 ]]; then
        mvar="$1_${mvar}";
        dvar="$1_${dvar}";
    fi;
    if [[ -z ${!mvar} ]]; then
        echo "default";
        return 0;
    fi;
    for x in ${!mvar};
    do
        if [[ ${x} != ${!dvar} ]]; then
            order="${order:+${order} }${x}";
        fi;
    done;
    order="${order:+${order} }${!dvar}";
    echo ${order};
    return 0
}
get_all_libdirs () 
{ 
    local libdirs abi;
    for abi in ${MULTILIB_ABIS};
    do
        libdirs+=" $(get_abi_LIBDIR ${abi})";
    done;
    [[ " ${libdirs} " != *" lib "* ]] && libdirs+=" lib";
    echo "${libdirs}"
}
get_exeext () 
{ 
    case ${CHOST} in 
        *-cygwin* | mingw* | *-mingw*)
            echo ".exe"
        ;;
    esac
}
get_install_abis () 
{ 
    local x order="";
    if [[ -z ${MULTILIB_ABIS} ]]; then
        echo "default";
        return 0;
    fi;
    if [[ ${EMULTILIB_PKG} == "true" ]]; then
        for x in ${MULTILIB_ABIS};
        do
            if [[ ${x} != "${DEFAULT_ABI}" ]]; then
                has ${x} ${ABI_DENY} || order="${order} ${x}";
            fi;
        done;
        has ${DEFAULT_ABI} ${ABI_DENY} || order="${order} ${DEFAULT_ABI}";
        if [[ -n ${ABI_ALLOW} ]]; then
            local ordera="";
            for x in ${order};
            do
                if has ${x} ${ABI_ALLOW}; then
                    ordera="${ordera} ${x}";
                fi;
            done;
            order=${ordera};
        fi;
    else
        order=${DEFAULT_ABI};
    fi;
    if [[ -z ${order} ]]; then
        die "The ABI list is empty.  Are you using a proper multilib profile?  Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package.";
    fi;
    echo ${order};
    return 0
}
get_libdir () 
{ 
    local libdir_var="LIBDIR_${ABI}";
    local libdir="lib";
    [[ -n ${ABI} && -n ${!libdir_var} ]] && libdir=${!libdir_var};
    echo "${libdir}"
}
get_libname () 
{ 
    local libname;
    local ver=$1;
    case ${CHOST} in 
        *-cygwin*)
            libname="dll.a"
        ;;
        mingw* | *-mingw*)
            libname="dll"
        ;;
        *-darwin*)
            libname="dylib"
        ;;
        *-mint*)
            libname="irrelevant"
        ;;
        hppa*-hpux*)
            libname="sl"
        ;;
        *)
            libname="so"
        ;;
    esac;
    if [[ -z $* ]]; then
        echo ".${libname}";
    else
        for ver in "$@";
        do
            case ${CHOST} in 
                *-cygwin*)
                    echo ".${ver}.${libname}"
                ;;
                *-darwin*)
                    echo ".${ver}.${libname}"
                ;;
                *-mint*)
                    echo ".${libname}"
                ;;
                *)
                    echo ".${libname}.${ver}"
                ;;
            esac;
        done;
    fi
}
get_localversion () 
{ 
    local lv_list i x;
    local shopt_save=$(shopt -p nullglob);
    shopt -s nullglob;
    local files=(${1}/localversion*);
    ${shopt_save};
    for i in "${files[@]}";
    do
        [[ -n ${i//*~*} ]] && lv_list="${lv_list} ${i}";
    done;
    for i in ${lv_list};
    do
        x="${x}$(<${i})";
    done;
    x=${x/ /};
    echo ${x}
}
get_makefile_extract_function () 
{ 
    local a='' b='' mkfunc='getfilevar';
    a="$(getfilevar VERSION ${KERNEL_MAKEFILE})";
    b="$(getfilevar_noexec VERSION ${KERNEL_MAKEFILE})";
    [[ "${a}" != "${b}" ]] && mkfunc='getfilevar_noexec';
    echo "${mkfunc}"
}
get_modname () 
{ 
    local modname;
    local ver=$1;
    case ${CHOST} in 
        *-darwin*)
            modname="bundle"
        ;;
        *)
            modname="so"
        ;;
    esac;
    echo ".${modname}"
}
get_running_version () 
{ 
    if ! use kernel_linux; then
        die "${FUNCNAME}() called on non-Linux system, please fix the ebuild";
    fi;
    KV_FULL=$(uname -r);
    if [[ -f ${ROOT%/}/lib/modules/${KV_FULL}/source/Makefile && -f ${ROOT%/}/lib/modules/${KV_FULL}/build/Makefile ]]; then
        KERNEL_DIR=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/source);
        KBUILD_OUTPUT=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/build);
        unset KV_FULL;
        get_version;
        return $?;
    else
        if [[ -f ${ROOT%/}/lib/modules/${KV_FULL}/source/Makefile ]]; then
            KERNEL_DIR=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/source);
            unset KV_FULL;
            get_version;
            return $?;
        else
            if [[ -f ${ROOT%/}/lib/modules/${KV_FULL}/build/Makefile ]]; then
                KERNEL_DIR=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/build);
                unset KV_FULL;
                get_version;
                return $?;
            else
                local kv_full=${KV_FULL//[-+_]*};
                KV_MAJOR=$(ver_cut 1 ${kv_full});
                KV_MINOR=$(ver_cut 2 ${kv_full});
                KV_PATCH=$(ver_cut 3 ${kv_full});
                KV_EXTRA="${KV_FULL#${KV_MAJOR}.${KV_MINOR}${KV_PATCH:+.${KV_PATCH}}}";
                : ${KV_PATCH:=0};
            fi;
        fi;
    fi;
    return 0
}
get_version () 
{ 
    if ! use kernel_linux; then
        die "${FUNCNAME}() called on non-Linux system, please fix the ebuild";
    fi;
    local tmplocal;
    [ -n "${KV_FULL}" ] && return 0;
    unset KV_DIR;
    [ -z "${get_version_warning_done}" ] && qeinfo "Determining the location of the kernel source code";
    [ -d "${KERNEL_DIR}" ] && KV_DIR="${KERNEL_DIR}";
    if [ -z "${KV_DIR}" ]; then
        if [ -z "${get_version_warning_done}" ]; then
            get_version_warning_done=1;
            qewarn "Unable to find kernel sources at ${KERNEL_DIR}";
            if [ "${KERNEL_DIR}" == "/usr/src/linux" ]; then
                qeinfo "Please make sure that ${KERNEL_DIR} points at your running kernel, ";
                qeinfo "(or the kernel you wish to build against).";
                qeinfo "Alternatively, set the KERNEL_DIR environment variable to the kernel sources location";
            else
                qeinfo "Please ensure that the KERNEL_DIR environment variable points at full Linux sources of the kernel you wish to compile against.";
            fi;
        fi;
        return 1;
    fi;
    if [ -z "${KBUILD_OUTPUT}" -a -L "${KERNEL_DIR}/source" ]; then
        KBUILD_OUTPUT=${KERNEL_DIR};
        KERNEL_DIR=$(readlink -f "${KERNEL_DIR}/source");
        KV_DIR=${KERNEL_DIR};
    fi;
    if [ -z "${get_version_warning_done}" ]; then
        qeinfo "Found kernel source directory:";
        qeinfo "    ${KV_DIR}";
    fi;
    if [ ! -s "${KV_DIR}/Makefile" ]; then
        if [ -z "${get_version_warning_done}" ]; then
            get_version_warning_done=1;
            qeerror "Could not find a Makefile in the kernel source directory.";
            qeerror "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources";
        fi;
        return 1;
    fi;
    local OUTPUT_DIR=${KBUILD_OUTPUT};
    KERNEL_MAKEFILE="${KV_DIR}/Makefile";
    if [[ -z ${OUTPUT_DIR} ]]; then
        local mkfunc=$(get_makefile_extract_function "${KERNEL_MAKEFILE}");
        OUTPUT_DIR=$(${mkfunc} KBUILD_OUTPUT "${KERNEL_MAKEFILE}");
    fi;
    KV_MAJOR=$(getfilevar_noexec VERSION "${KERNEL_MAKEFILE}");
    KV_MINOR=$(getfilevar_noexec PATCHLEVEL "${KERNEL_MAKEFILE}");
    KV_PATCH=$(getfilevar_noexec SUBLEVEL "${KERNEL_MAKEFILE}");
    KV_EXTRA=$(getfilevar_noexec EXTRAVERSION "${KERNEL_MAKEFILE}");
    if [ -z "${KV_MAJOR}" -o -z "${KV_MINOR}" -o -z "${KV_PATCH}" ]; then
        if [ -z "${get_version_warning_done}" ]; then
            get_version_warning_done=1;
            qeerror "Could not detect kernel version.";
            qeerror "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources.";
        fi;
        return 1;
    fi;
    [ -d "${OUTPUT_DIR}" ] && KV_OUT_DIR="${OUTPUT_DIR}";
    if [ -n "${KV_OUT_DIR}" ]; then
        qeinfo "Found kernel object directory:";
        qeinfo "    ${KV_OUT_DIR}";
    fi;
    KV_OUT_DIR="${KV_OUT_DIR:-${KV_DIR}}";
    if [ -s "${KV_OUT_DIR}"/include/config/kernel.release ]; then
        KV_LOCAL=$(<"${KV_OUT_DIR}"/include/config/kernel.release);
    else
        if [ -s "${KV_OUT_DIR}"/.kernelrelease ]; then
            KV_LOCAL=$(<"${KV_OUT_DIR}"/.kernelrelease);
        else
            KV_LOCAL=;
        fi;
    fi;
    tmplocal=${KV_LOCAL#${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}};
    if [ "$KV_LOCAL" = "$tmplocal" ]; then
        KV_LOCAL=;
    else
        KV_LOCAL=$tmplocal;
    fi;
    if [[ -z ${OUTPUT_DIR} ]]; then
        for OUTPUT_DIR in "${SYSROOT}" "${ROOT%/}" "";
        do
            OUTPUT_DIR+="/lib/modules/${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}/build";
            if [[ -e ${OUTPUT_DIR} ]]; then
                break;
            fi;
        done;
    fi;
    KV_FULL="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}";
    qeinfo "Found sources for kernel version:";
    qeinfo "    ${KV_FULL}";
    return 0
}
getfilevar () 
{ 
    local ERROR basefname basedname myARCH="${ARCH}" M="${S}";
    ERROR=0;
    [ -z "${1}" ] && ERROR=1;
    [ ! -f "${2}" ] && ERROR=1;
    if [ "${ERROR}" = 1 ]; then
        echo -e "\n";
        eerror "getfilevar requires 2 variables, with the second a valid file.";
        eerror "   getfilevar <VARIABLE> <CONFIGFILE>";
    else
        basefname="$(basename ${2})";
        basedname="$(dirname ${2})";
        unset ARCH;
        [[ ${EAPI:-0} == [0123] ]] && function nonfatal () 
        { 
            "$@"
        };
        case ${EBUILD_PHASE_FUNC} in 
            pkg_info | pkg_nofetch | pkg_pretend)
                M="${T}"
            ;;
        esac;
        echo -e "e:\\n\\t@echo \$(${1})\\ninclude ${basefname}" | nonfatal emake -C "${basedname}" M="${M}" ${BUILD_FIXES} -s -f - 2> /dev/null;
        ARCH=${myARCH};
    fi
}
getfilevar_noexec () 
{ 
    local ERROR basefname basedname mycat myARCH="${ARCH}";
    ERROR=0;
    mycat='cat';
    [ -z "${1}" ] && ERROR=1;
    [ ! -f "${2}" ] && ERROR=1;
    [ "${2%.gz}" != "${2}" ] && mycat='zcat';
    if [ "${ERROR}" = 1 ]; then
        echo -e "\n";
        eerror "getfilevar_noexec requires 2 variables, with the second a valid file.";
        eerror "   getfilevar_noexec <VARIABLE> <CONFIGFILE>";
    else
        ${mycat} "${2}" | sed -n -e "/^[[:space:]]*${1}[[:space:]]*:\\?=[[:space:]]*\(.*\)\$/{
			s,^[^=]*[[:space:]]*=[[:space:]]*,,g ;
			s,[[:space:]]*\$,,g ;
			p
		}";
    fi
}
has_multilib_profile () 
{ 
    [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ]
}
in_iuse () 
{ 
    local use=${1};
    if [[ -z "${use}" ]]; then
        echo "!!! in_iuse() called without a parameter." 1>&2;
        echo "!!! in_iuse <USEFLAG>" 1>&2;
        die "in_iuse() called without a parameter";
    fi;
    local liuse=(${IUSE_EFFECTIVE});
    has "${use}" "${liuse[@]#[+-]}"
}
is_final_abi () 
{ 
    has_multilib_profile || return 0;
    set -- $(get_install_abis);
    local LAST_ABI=$#;
    [[ ${!LAST_ABI} == ${ABI} ]]
}
kernel_is () 
{ 
    if ! use kernel_linux; then
        die "${FUNCNAME}() called on non-Linux system, please fix the ebuild";
    fi;
    linux-info_get_any_version;
    local operator test value;
    case ${1#-} in 
        lt)
            operator="-lt";
            shift
        ;;
        gt)
            operator="-gt";
            shift
        ;;
        le)
            operator="-le";
            shift
        ;;
        ge)
            operator="-ge";
            shift
        ;;
        eq)
            operator="-eq";
            shift
        ;;
        *)
            operator="-eq"
        ;;
    esac;
    [[ $# -gt 3 ]] && die "Error in kernel-2_kernel_is(): too many parameters";
    : $(( test = (KV_MAJOR << 16) + (KV_MINOR << 8) + KV_PATCH ));
    : $(( value = (${1:-${KV_MAJOR}} << 16) + (${2:-${KV_MINOR}} << 8) + ${3:-${KV_PATCH}} ));
    [ ${test} ${operator} ${value} ]
}
linux-info_get_any_version () 
{ 
    if ! use kernel_linux; then
        die "${FUNCNAME}() called on non-Linux system, please fix the ebuild";
    fi;
    if ! get_version; then
        ewarn "Unable to calculate Linux Kernel version for build, attempting to use running version";
        if ! get_running_version; then
            die "Unable to determine any Linux Kernel version, please report a bug";
        fi;
    fi
}
linux-info_pkg_setup () 
{ 
    use kernel_linux || return;
    linux-info_get_any_version;
    if kernel_is 2 4; then
        if [ "$( gcc-major-version )" -eq "4" ]; then
            echo;
            ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with";
            ewarn "linux-2.4 (or modules building against a linux-2.4 kernel)!";
            echo;
            ewarn "Either switch to another gcc-version (via gcc-config) or use a";
            ewarn "newer kernel that supports gcc-4.";
            echo;
            ewarn "Also be aware that bugreports about gcc-4 not working";
            ewarn "with linux-2.4 based ebuilds will be closed as INVALID!";
            echo;
        fi;
    fi;
    [ -n "${CONFIG_CHECK}" ] && check_extra_config
}
linux_chkconfig_builtin () 
{ 
    linux_config_qa_check linux_chkconfig_builtin;
    [[ $(getfilevar_noexec "CONFIG_$1" "$(linux_config_path)") == y ]]
}
linux_chkconfig_module () 
{ 
    linux_config_qa_check linux_chkconfig_module;
    [[ $(getfilevar_noexec "CONFIG_$1" "$(linux_config_path)") == m ]]
}
linux_chkconfig_present () 
{ 
    linux_config_qa_check linux_chkconfig_present;
    [[ $(getfilevar_noexec "CONFIG_$1" "$(linux_config_path)") == [my] ]]
}
linux_chkconfig_string () 
{ 
    linux_config_qa_check linux_chkconfig_string;
    getfilevar_noexec "CONFIG_$1" "$(linux_config_path)"
}
linux_config_bin_exists () 
{ 
    export _LINUX_CONFIG_EXISTS_DONE=1;
    use kernel_linux && [[ -s /proc/config.gz ]]
}
linux_config_exists () 
{ 
    linux_config_src_exists || linux_config_bin_exists
}
linux_config_path () 
{ 
    if linux_config_src_exists; then
        echo "${KV_OUT_DIR}/.config";
    else
        if linux_config_bin_exists; then
            echo "/proc/config.gz";
        else
            return 1;
        fi;
    fi
}
linux_config_qa_check () 
{ 
    local f="$1";
    if [ -z "${_LINUX_CONFIG_EXISTS_DONE}" ]; then
        ewarn "QA: You called $f before any linux_config_exists!";
        ewarn "QA: The return value of $f will NOT guaranteed later!";
    fi;
    if ! use kernel_linux; then
        die "$f called on non-Linux system, please fix the ebuild";
    fi
}
linux_config_src_exists () 
{ 
    export _LINUX_CONFIG_EXISTS_DONE=1;
    use kernel_linux && [[ -n ${KV_OUT_DIR} && -s ${KV_OUT_DIR}/.config ]]
}
menuselect () 
{ 
    menuselect/menuselect "$@" || die "menuselect $* failed."
}
multilib_env () 
{ 
    local CTARGET=${1:-${CTARGET}};
    local cpu=${CTARGET%%*-};
    case ${cpu} in 
        aarch64*)
            export CFLAGS_arm=${CFLAGS_arm-};
            case ${cpu} in 
                aarch64*be)
                    export CHOST_arm="armv8b-${CTARGET#*-}"
                ;;
                *)
                    export CHOST_arm="armv8l-${CTARGET#*-}"
                ;;
            esac;
            CHOST_arm=${CHOST_arm/%-gnu/-gnueabi};
            export CTARGET_arm=${CHOST_arm};
            export LIBDIR_arm="lib";
            export CFLAGS_arm64=${CFLAGS_arm64-};
            export CHOST_arm64=${CTARGET};
            export CTARGET_arm64=${CHOST_arm64};
            export LIBDIR_arm64="lib64";
            : ${MULTILIB_ABIS=arm64};
            : ${DEFAULT_ABI=arm64}
        ;;
        x86_64*)
            export CFLAGS_x86=${CFLAGS_x86--m32};
            export CHOST_x86=${CTARGET/x86_64/i686};
            CHOST_x86=${CHOST_x86/%-gnux32/-gnu};
            export CTARGET_x86=${CHOST_x86};
            if [[ ${SYMLINK_LIB} == "yes" ]]; then
                export LIBDIR_x86="lib32";
            else
                export LIBDIR_x86="lib";
            fi;
            export CFLAGS_amd64=${CFLAGS_amd64--m64};
            export CHOST_amd64=${CTARGET/%-gnux32/-gnu};
            export CTARGET_amd64=${CHOST_amd64};
            export LIBDIR_amd64="lib64";
            export CFLAGS_x32=${CFLAGS_x32--mx32};
            export CHOST_x32=${CTARGET/%-gnu/-gnux32};
            export CTARGET_x32=${CHOST_x32};
            export LIBDIR_x32="libx32";
            case ${CTARGET} in 
                *-gnux32)
                    : ${MULTILIB_ABIS=x32 amd64 x86};
                    : ${DEFAULT_ABI=x32}
                ;;
                *)
                    : ${MULTILIB_ABIS=amd64 x86};
                    : ${DEFAULT_ABI=amd64}
                ;;
            esac
        ;;
        mips64* | mipsisa64*)
            export CFLAGS_o32=${CFLAGS_o32--mabi=32};
            export CHOST_o32=${CTARGET/mips64/mips};
            export CHOST_o32=${CHOST_o32/mipsisa64/mipsisa32};
            export CTARGET_o32=${CHOST_o32};
            export LIBDIR_o32="lib";
            export CFLAGS_n32=${CFLAGS_n32--mabi=n32};
            export CHOST_n32=${CTARGET};
            export CTARGET_n32=${CHOST_n32};
            export LIBDIR_n32="lib32";
            export CFLAGS_n64=${CFLAGS_n64--mabi=64};
            export CHOST_n64=${CTARGET};
            export CTARGET_n64=${CHOST_n64};
            export LIBDIR_n64="lib64";
            : ${MULTILIB_ABIS=n64 n32 o32};
            : ${DEFAULT_ABI=n32}
        ;;
        powerpc64*)
            export CFLAGS_ppc=${CFLAGS_ppc--m32};
            export CHOST_ppc=${CTARGET/powerpc64/powerpc};
            export CTARGET_ppc=${CHOST_ppc};
            export LIBDIR_ppc="lib";
            export CFLAGS_ppc64=${CFLAGS_ppc64--m64};
            export CHOST_ppc64=${CTARGET};
            export CTARGET_ppc64=${CHOST_ppc64};
            export LIBDIR_ppc64="lib64";
            : ${MULTILIB_ABIS=ppc64 ppc};
            : ${DEFAULT_ABI=ppc64}
        ;;
        riscv64*)
            export CFLAGS_lp64d=${CFLAGS_lp64d--mabi=lp64d};
            export CHOST_lp64d=${CTARGET};
            export CTARGET_lp64d=${CTARGET};
            export LIBDIR_lp64d="lib64/lp64d";
            export CFLAGS_lp64=${CFLAGS_lp64--mabi=lp64};
            export CHOST_lp64=${CTARGET};
            export CTARGET_lp64=${CTARGET};
            export LIBDIR_lp64="lib64/lp64";
            : ${MULTILIB_ABIS=lp64d lp64};
            : ${DEFAULT_ABI=lp64d}
        ;;
        s390x*)
            export CFLAGS_s390=${CFLAGS_s390--m31};
            export CHOST_s390=${CTARGET/s390x/s390};
            export CTARGET_s390=${CHOST_s390};
            export LIBDIR_s390="lib";
            export CFLAGS_s390x=${CFLAGS_s390x--m64};
            export CHOST_s390x=${CTARGET};
            export CTARGET_s390x=${CHOST_s390x};
            export LIBDIR_s390x="lib64";
            : ${MULTILIB_ABIS=s390x s390};
            : ${DEFAULT_ABI=s390x}
        ;;
        sparc64*)
            export CFLAGS_sparc32=${CFLAGS_sparc32--m32};
            export CHOST_sparc32=${CTARGET/sparc64/sparc};
            export CTARGET_sparc32=${CHOST_sparc32};
            export LIBDIR_sparc32="lib";
            export CFLAGS_sparc64=${CFLAGS_sparc64--m64};
            export CHOST_sparc64=${CTARGET};
            export CTARGET_sparc64=${CHOST_sparc64};
            export LIBDIR_sparc64="lib64";
            : ${MULTILIB_ABIS=sparc64 sparc32};
            : ${DEFAULT_ABI=sparc64}
        ;;
        *)
            : ${MULTILIB_ABIS=default};
            : ${DEFAULT_ABI=default}
        ;;
    esac;
    export MULTILIB_ABIS DEFAULT_ABI
}
multilib_toolchain_setup () 
{ 
    local v vv;
    export ABI=$1;
    if [[ ${_DEFAULT_ABI_SAVED} == "true" ]]; then
        for v in CHOST CBUILD AS CC CXX F77 FC LD PKG_CONFIG_{LIBDIR,PATH};
        do
            vv="_abi_saved_${v}";
            [[ ${!vv+set} == "set" ]] && export ${v}="${!vv}" || unset ${v};
            unset ${vv};
        done;
        unset _DEFAULT_ABI_SAVED;
    fi;
    if [[ ${ABI} != ${DEFAULT_ABI} ]]; then
        for v in CHOST CBUILD AS CC CXX F77 FC LD PKG_CONFIG_{LIBDIR,PATH};
        do
            vv="_abi_saved_${v}";
            [[ ${!v+set} == "set" ]] && export ${vv}="${!v}" || unset ${vv};
        done;
        export _DEFAULT_ABI_SAVED="true";
        if [[ ${CBUILD} == "${CHOST}" ]]; then
            export CBUILD=$(get_abi_CHOST $1);
        fi;
        export CHOST=$(get_abi_CHOST ${DEFAULT_ABI});
        export CC="$(tc-getCC) $(get_abi_CFLAGS)";
        export CXX="$(tc-getCXX) $(get_abi_CFLAGS)";
        export F77="$(tc-getF77) $(get_abi_CFLAGS)";
        export FC="$(tc-getFC) $(get_abi_CFLAGS)";
        export LD="$(tc-getLD) $(get_abi_LDFLAGS)";
        export CHOST=$(get_abi_CHOST $1);
        export PKG_CONFIG_LIBDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig;
        export PKG_CONFIG_PATH=${EPREFIX}/usr/share/pkgconfig;
    fi
}
number_abis () 
{ 
    set -- `get_install_abis`;
    echo $#
}
pkg_nofetch () 
{ 
    default
}
pkg_postinst () 
{ 
    einfo "Asterisk has been installed";
    echo;
    elog "If you want to know more about asterisk, visit these sites:";
    elog "http://www.asteriskdocs.org/";
    elog "http://www.voip-info.org/wiki-Asterisk";
    echo;
    elog "http://www.automated.it/guidetoasterisk.htm";
    echo;
    elog "Gentoo VoIP IRC Channel:";
    elog "#gentoo-voip @ irc.freenode.net";
    echo;
    echo;
    elog "Please read the Asterisk 13 upgrade document:";
    elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+13"
}
pkg_setup () 
{ 
    CONFIG_CHECK="~!NF_CONNTRACK_SIP";
    local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
	have reported that this module dropped critical SIP packets in their deployments. You
	may want to disable it if you see such problems.";
    check_extra_config
}
qeerror () 
{ 
    qout eerror "${@}"
}
qeinfo () 
{ 
    qout einfo "${@}"
}
qewarn () 
{ 
    qout ewarn "${@}"
}
qout () 
{ 
    local outputmsg type;
    type=${1};
    shift;
    outputmsg="${@}";
    case "${EBUILD_PHASE}" in 
        depend)
            unset outputmsg
        ;;
        clean)
            unset outputmsg
        ;;
        preinst)
            unset outputmsg
        ;;
    esac;
    [ -n "${outputmsg}" ] && ${type} "${outputmsg}"
}
require_configured_kernel () 
{ 
    if ! use kernel_linux; then
        die "${FUNCNAME}() called on non-Linux system, please fix the ebuild";
    fi;
    if ! linux_config_src_exists; then
        qeerror "Could not find a usable .config in the kernel source directory.";
        qeerror "Please ensure that ${KERNEL_DIR} points to a configured set of Linux sources.";
        qeerror "If you are using KBUILD_OUTPUT, please set the environment var so that";
        qeerror "it points to the necessary object directory so that it might find .config.";
        die "Kernel not configured; no .config found in ${KV_OUT_DIR}";
    fi;
    get_version || die "Unable to determine configured kernel version"
}
set_arch_to_kernel () 
{ 
    export ARCH=$(tc-arch-kernel)
}
set_arch_to_portage () 
{ 
    export ARCH=$(tc-arch)
}
src_compile () 
{ 
    emake ASTCFLAGS="${CFLAGS}" ASTLDFLAGS="${LDFLAGS}" NOISY_BUILD=yes
}
src_configure () 
{ 
    local vmst;
    econf --libdir="/usr/$(get_libdir)" --localstatedir="/var" --with-crypto --with-gsm=internal --with-popt --with-z --without-libedit $(use_with caps cap) $(use_with http gmime) $(use_with newt) $(use_with pjproject) $(use_with portaudio) $(use_with ssl);
     > "${S}"/sounds/sounds.xml;
    sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system";
    emake NOISE_BUILD=yes menuselect.makeopts;
    menuselect --disable build_native menuselect.makeopts;
    menuselect --disable chan_misdn menuselect.makeopts;
    menuselect --disable chan_ooh323 menuselect.makeopts;
    menuselect --enable smsq menuselect.makeopts;
    menuselect --enable streamplayer menuselect.makeopts;
    menuselect --enable aelparse menuselect.makeopts;
    menuselect --enable astman menuselect.makeopts;
    menuselect --enable chan_mgcp menuselect.makeopts;
    menuselect --enable res_pktccops menuselect.makeopts;
    menuselect --enable pbx_dundi menuselect.makeopts;
    menuselect --enable func_aes menuselect.makeopts;
    menuselect --enable chan_iax2 menuselect.makeopts;
    menuselect --enable cdr_sqlite3_custom menuselect.makeopts;
    menuselect --enable cel_sqlite3_custom menuselect.makeopts;
    function use_select () 
    { 
        local state=$(use "$1" && echo enable || echo disable);
        shift;
        while [[ -n $1 ]]; do
            menuselect --${state} "$1" menuselect.makeopts;
            shift;
        done
    };
    use_select alsa chan_alsa;
    use_select bluetooth chan_mobile;
    use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar};
    use_select cluster res_corosync;
    use_select curl func_curl res_config_curl res_curl;
    use_select dahdi app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi;
    use_select freetds {cdr,cel}_tds;
    use_select gtalk chan_motif;
    use_select http res_http_post;
    use_select iconv func_iconv;
    use_select ilbc codec_ilbc format_ilbc;
    use_select ldap res_config_ldap;
    use_select lua pbx_lua;
    use_select mysql app_mysql cdr_mysql res_config_mysql;
    use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc;
    use_select osplookup app_osplookup;
    use_select oss chan_oss;
    use_select postgres {cdr,cel}_pgsql res_config_pgsql;
    use_select radius {cdr,cel}_radius;
    use_select snmp res_snmp;
    use_select span res_fax_spandsp;
    use_select speex {codec,func}_speex;
    use_select srtp res_srtp;
    use_select statsd res_statsd res_{endpoint,chan}_stats;
    use_select syslog cdr_syslog;
    use_select vorbis format_ogg_vorbis;
    use_select xmpp res_xmpp;
    for vmst in ${IUSE_VOICEMAIL_STORAGE/+/};
    do
        if use ${vmst}; then
            menuselect --enable $(echo ${vmst##*_} | tr '[:lower:]' '[:upper:]')_STORAGE menuselect.makeopts;
        fi;
    done;
    if use debug; then
        for o in DONT_OPTIMIZE DEBUG_THREADS BETTER_BACKTRACES;
        do
            menuselect --enable $o menuselect.makeopts;
        done;
    fi
}
src_install () 
{ 
    local d;
    mkdir -p "${ED}/usr/$(get_libdir)/pkgconfig" || die;
    emake DESTDIR="${D}" NOISY_BUILD=yes installdirs;
    emake DESTDIR="${D}" NOISY_BUILD=yes install;
    if use radius; then
        insinto /etc/radiusclient/;
        doins contrib/dictionary.digium;
    fi;
    diropts -m 0750 -o root -g asterisk;
    keepdir /etc/asterisk;
    if use samples; then
        emake NOISY_BUILD=yes DESTDIR="${ED}" samples;
        for conffile in "${ED}/etc/asterisk/"*;
        do
            fowners root:root "${conffile#${ED}}";
            fperms 0644 "${conffile#${ED}}";
        done;
        einfo "Sample files have been installed";
    else
        einfo "Skipping installation of sample files...";
        rm "${ED}"/var/lib/asterisk/mohmp3/* || die;
        rm "${ED}"/var/lib/asterisk/sounds/demo-* || die;
        rm "${ED}"/var/lib/asterisk/agi-bin/* || die;
        rm "${ED}"/etc/asterisk/* || die;
    fi;
    rm -r "${ED}"/var/spool/asterisk/voicemail/default || die;
    diropts -m 0770 -o asterisk asterisk;
    keepdir /var/lib/asterisk;
    keepdir /var/spool/asterisk;
    keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail};
    diropts -m 0750 -o asterisk -g asterisk;
    keepdir /var/log/asterisk/{cdr-csv,cdr-custom};
    newinitd "${FILESDIR}"/1.8.0/asterisk.initd8 asterisk;
    newconfd "${FILESDIR}"/1.8.0/asterisk.confd asterisk;
    systemd_dounit "${FILESDIR}"/asterisk.service;
    systemd_newtmpfilesd "${FILESDIR}"/asterisk.tmpfiles.conf asterisk.conf;
    systemd_install_serviced "${FILESDIR}"/asterisk.service.conf;
    diropts -m0755;
    dodoc UPGRADE* BUGS CREDITS;
    if use doc; then
        dodoc doc/*.txt;
        dodoc doc/*.pdf;
    fi;
    dodoc "${FILESDIR}/1.6.2/sip_calc_auth";
    dodoc "${FILESDIR}/1.8.0/find_call_sip_trace.sh";
    dodoc "${FILESDIR}/1.8.0/find_call_ids.sh";
    dodoc "${FILESDIR}/1.6.2/call_data.txt";
    insinto /etc/logrotate.d;
    newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk;
    for d in $(find "${ED}"/var -type d -empty || die "Find failed.");
    do
        keepdir "${d#${ED}}";
    done
}
src_prepare () 
{ 
    default;
    AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
}
src_test () 
{ 
    default
}
src_unpack () 
{ 
    default
}
systemd_dotmpfilesd () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    for f in "$@";
    do
        [[ ${f} == *.conf ]] || die 'tmpfiles.d files need to have .conf suffix.';
    done;
    ( insopts -m 0644;
    insinto /usr/lib/tmpfiles.d/;
    doins "${@}" )
}
systemd_dounit () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    ( insopts -m 0644;
    insinto "$(_systemd_get_systemunitdir)";
    doins "${@}" )
}
systemd_douserunit () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    ( insopts -m 0644;
    insinto "$(_systemd_get_userunitdir)";
    doins "${@}" )
}
systemd_enable_ntpunit () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    if [[ ${#} -lt 2 ]]; then
        die "Usage: systemd_enable_ntpunit <NN-name> <service>...";
    fi;
    local ntpunit_name=${1};
    local services=("${@:2}");
    if [[ ${ntpunit_name} != [0-9][0-9]-* ]]; then
        die "ntpunit.d file must be named NN-name where NN are digits.";
    else
        if [[ ${ntpunit_name} == *.list ]]; then
            die "The .list suffix is appended implicitly to ntpunit.d name.";
        fi;
    fi;
    local unitdir=$(systemd_get_systemunitdir);
    local s;
    for s in "${services[@]}";
    do
        if [[ ! -f "${D}${unitdir}/${s}" ]]; then
            die "ntp-units.d provider ${s} not installed (yet?) in \${D}.";
        fi;
        echo "${s}" >> "${T}"/${ntpunit_name}.list || die;
    done;
    ( insopts -m 0644;
    insinto "$(_systemd_get_utildir)"/ntp-units.d;
    doins "${T}"/${ntpunit_name}.list );
    local ret=${?};
    rm "${T}"/${ntpunit_name}.list || die;
    return ${ret}
}
systemd_enable_service () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    [[ ${#} -eq 2 ]] || die "Synopsis: systemd_enable_service target service";
    local target=${1};
    local service=${2};
    local ud=$(_systemd_get_systemunitdir);
    local destname=${service##*/};
    dodir "${ud}"/"${target}".wants && dosym ../"${service}" "${ud}"/"${target}".wants/"${destname}"
}
systemd_get_systemgeneratordir () 
{ 
    has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=;
    debug-print-function ${FUNCNAME} "${@}";
    echo "${EPREFIX}$(_systemd_get_systemgeneratordir)"
}
systemd_get_systemunitdir () 
{ 
    has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=;
    debug-print-function ${FUNCNAME} "${@}";
    echo "${EPREFIX}$(_systemd_get_systemunitdir)"
}
systemd_get_unitdir () 
{ 
    [[ ${EAPI} == [012345] ]] || die "${FUNCNAME} is banned in EAPI 6, use systemd_get_systemunitdir instead";
    systemd_get_systemunitdir
}
systemd_get_userunitdir () 
{ 
    has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=;
    debug-print-function ${FUNCNAME} "${@}";
    echo "${EPREFIX}$(_systemd_get_userunitdir)"
}
systemd_get_utildir () 
{ 
    has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=;
    debug-print-function ${FUNCNAME} "${@}";
    echo "${EPREFIX}$(_systemd_get_utildir)"
}
systemd_install_serviced () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    local src=${1};
    local service=${2};
    [[ -n ${src} ]] || die "No file specified";
    if [[ ! -n ${service} ]]; then
        [[ ${src} == *.conf ]] || die "Source file needs .conf suffix";
        service=${src##*/};
        service=${service%.conf};
    fi;
    [[ ${service} == *.d ]] && die "Service must not have .d suffix";
    ( insopts -m 0644;
    insinto /etc/systemd/system/"${service}".d;
    newins "${src}" 00gentoo.conf )
}
systemd_is_booted () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    [[ -d /run/systemd/system ]];
    local ret=${?};
    debug-print "${FUNCNAME}: [[ -d /run/systemd/system ]] -> ${ret}";
    return ${ret}
}
systemd_newtmpfilesd () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    [[ ${2} == *.conf ]] || die 'tmpfiles.d files need to have .conf suffix.';
    ( insopts -m 0644;
    insinto /usr/lib/tmpfiles.d/;
    newins "${@}" )
}
systemd_newunit () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    ( insopts -m 0644;
    insinto "$(_systemd_get_systemunitdir)";
    newins "${@}" )
}
systemd_newuserunit () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    ( insopts -m 0644;
    insinto "$(_systemd_get_userunitdir)";
    newins "${@}" )
}
systemd_reenable () 
{ 
    type systemctl &> /dev/null || return 0;
    local x;
    for x in "$@";
    do
        if systemctl --quiet --root="${ROOT:-/}" is-enabled "${x}"; then
            systemctl --root="${ROOT:-/}" reenable "${x}";
        fi;
    done
}
systemd_tmpfiles_create () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    [[ ${EBUILD_PHASE} == postinst ]] || die "${FUNCNAME}: Only valid in pkg_postinst";
    [[ ${#} -gt 0 ]] || die "${FUNCNAME}: Must specify at least one filename";
    [[ ${ROOT} == / ]] || return 0;
    type systemd-tmpfiles &> /dev/null || return 0;
    systemd-tmpfiles --create "${@}"
}
systemd_update_catalog () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    [[ ${EBUILD_PHASE} == post* ]] || die "${FUNCNAME} disallowed during ${EBUILD_PHASE_FUNC:-${EBUILD_PHASE}}";
    local journalctl=${EPREFIX}/usr/bin/journalctl;
    if [[ -x ${journalctl} ]]; then
        ebegin "Updating systemd journal catalogs";
        journalctl --update-catalog;
        eend $?;
    else
        debug-print "${FUNCNAME}: journalctl not found.";
    fi
}
systemd_with_unitdir () 
{ 
    [[ ${EAPI:-0} != [012345] ]] && die "${FUNCNAME} is banned in EAPI ${EAPI}, use --with-${1:-systemdsystemunitdir}=\"\$(systemd_get_systemunitdir)\" instead";
    debug-print-function ${FUNCNAME} "${@}";
    local optname=${1:-systemdsystemunitdir};
    echo --with-${optname}="$(systemd_get_systemunitdir)"
}
systemd_with_utildir () 
{ 
    [[ ${EAPI:-0} != [012345] ]] && die "${FUNCNAME} is banned in EAPI ${EAPI}, use --with-systemdutildir=\"\$(systemd_get_utildir)\" instead";
    debug-print-function ${FUNCNAME} "${@}";
    echo --with-systemdutildir="$(systemd_get_utildir)"
}
tc-arch () 
{ 
    tc-ninja_magic_to_arch portage "$@"
}
tc-arch-kernel () 
{ 
    tc-ninja_magic_to_arch kern "$@"
}
tc-check-openmp () 
{ 
    if ! tc-has-openmp; then
        eerror "Your current compiler does not support OpenMP!";
        if tc-is-gcc; then
            eerror "Enable OpenMP support by building sys-devel/gcc with USE=\"openmp\".";
        else
            if tc-is-clang; then
                eerror "OpenMP support in sys-devel/clang is provided by sys-libs/libomp.";
            fi;
        fi;
        die "Active compiler does not have required support for OpenMP";
    fi
}
tc-cpp-is-true () 
{ 
    local CONDITION=${1};
    shift;
    $(tc-getTARGET_CPP) "${@}" -P - <<-EOF > /dev/null 2>&1
#if ${CONDITION}
true
#else
#error false
#endif
EOF

}
tc-detect-is-softfloat () 
{ 
    [[ $(tc-getTARGET_CPP) == "gcc -E" ]] && return 1;
    case ${CTARGET:-${CHOST}} in 
        *-newlib | *-elf | *-eabi)
            return 1
        ;;
        arm*)
            if tc-cpp-is-true "defined(__ARM_PCS_VFP)"; then
                echo "no";
            else
                if tc-cpp-is-true "defined(__SOFTFP__)"; then
                    echo "yes";
                else
                    echo "softfp";
                fi;
            fi;
            return 0
        ;;
        *)
            return 1
        ;;
    esac
}
tc-enables-pie () 
{ 
    tc-cpp-is-true "defined(__PIE__)" ${CPPFLAGS} ${CFLAGS}
}
tc-enables-ssp () 
{ 
    tc-cpp-is-true "defined(__SSP__) || defined(__SSP_STRONG__) || defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS}
}
tc-enables-ssp-all () 
{ 
    tc-cpp-is-true "defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS}
}
tc-enables-ssp-strong () 
{ 
    tc-cpp-is-true "defined(__SSP_STRONG__) || defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS}
}
tc-endian () 
{ 
    local host=$1;
    [[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
    host=${host%%-*};
    case ${host} in 
        aarch64*be)
            echo big
        ;;
        aarch64)
            echo little
        ;;
        alpha*)
            echo little
        ;;
        arm*b*)
            echo big
        ;;
        arm*)
            echo little
        ;;
        cris*)
            echo little
        ;;
        hppa*)
            echo big
        ;;
        i?86*)
            echo little
        ;;
        ia64*)
            echo little
        ;;
        m68*)
            echo big
        ;;
        mips*l*)
            echo little
        ;;
        mips*)
            echo big
        ;;
        powerpc*le)
            echo little
        ;;
        powerpc*)
            echo big
        ;;
        riscv*)
            echo little
        ;;
        s390*)
            echo big
        ;;
        sh*b*)
            echo big
        ;;
        sh*)
            echo little
        ;;
        sparc*)
            echo big
        ;;
        x86_64*)
            echo little
        ;;
        *)
            echo wtf
        ;;
    esac
}
tc-env_build () 
{ 
    tc-export_build_env;
    CFLAGS=${BUILD_CFLAGS} CXXFLAGS=${BUILD_CXXFLAGS} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} AR=$(tc-getBUILD_AR) AS=$(tc-getBUILD_AS) CC=$(tc-getBUILD_CC) CPP=$(tc-getBUILD_CPP) CXX=$(tc-getBUILD_CXX) LD=$(tc-getBUILD_LD) NM=$(tc-getBUILD_NM) PKG_CONFIG=$(tc-getBUILD_PKG_CONFIG) RANLIB=$(tc-getBUILD_RANLIB) "$@"
}
tc-export () 
{ 
    local var;
    for var in "$@";
    do
        [[ $(type -t "tc-get${var}") != "function" ]] && die "tc-export: invalid export variable '${var}'";
        "tc-get${var}" > /dev/null;
    done
}
tc-export_build_env () 
{ 
    tc-export "$@";
    if tc-is-cross-compiler; then
        : ${BUILD_CFLAGS:=-O1 -pipe};
        : ${BUILD_CXXFLAGS:=-O1 -pipe};
        : ${BUILD_CPPFLAGS:= };
        : ${BUILD_LDFLAGS:= };
    else
        : ${BUILD_CFLAGS:=${CFLAGS}};
        : ${BUILD_CXXFLAGS:=${CXXFLAGS}};
        : ${BUILD_CPPFLAGS:=${CPPFLAGS}};
        : ${BUILD_LDFLAGS:=${LDFLAGS}};
    fi;
    export BUILD_{C,CXX,CPP,LD}FLAGS;
    local v;
    for v in BUILD_{C,CXX,CPP,LD}FLAGS;
    do
        export ${v#BUILD_}_FOR_BUILD="${!v}";
    done
}
tc-get-compiler-type () 
{ 
    local code='
#if defined(__PATHSCALE__)
	HAVE_PATHCC
#elif defined(__clang__)
	HAVE_CLANG
#elif defined(__GNUC__)
	HAVE_GCC
#endif
';
    local res=$($(tc-getCPP "$@") -E -P - <<<"${code}");
    case ${res} in 
        *HAVE_PATHCC*)
            echo pathcc
        ;;
        *HAVE_CLANG*)
            echo clang
        ;;
        *HAVE_GCC*)
            echo gcc
        ;;
        *)
            echo unknown
        ;;
    esac
}
tc-getAR () 
{ 
    tc-getPROG AR ar "$@"
}
tc-getAS () 
{ 
    tc-getPROG AS as "$@"
}
tc-getBUILD_AR () 
{ 
    tc-getBUILD_PROG AR ar "$@"
}
tc-getBUILD_AS () 
{ 
    tc-getBUILD_PROG AS as "$@"
}
tc-getBUILD_CC () 
{ 
    tc-getBUILD_PROG CC gcc "$@"
}
tc-getBUILD_CPP () 
{ 
    tc-getBUILD_PROG CPP "$(tc-getBUILD_CC) -E" "$@"
}
tc-getBUILD_CXX () 
{ 
    tc-getBUILD_PROG CXX g++ "$@"
}
tc-getBUILD_LD () 
{ 
    tc-getBUILD_PROG LD ld "$@"
}
tc-getBUILD_NM () 
{ 
    tc-getBUILD_PROG NM nm "$@"
}
tc-getBUILD_OBJCOPY () 
{ 
    tc-getBUILD_PROG OBJCOPY objcopy "$@"
}
tc-getBUILD_PKG_CONFIG () 
{ 
    tc-getBUILD_PROG PKG_CONFIG pkg-config "$@"
}
tc-getBUILD_PROG () 
{ 
    local vars="BUILD_$1 $1_FOR_BUILD HOST$1";
    tc-is-cross-compiler || vars+=" $1";
    _tc-getPROG CBUILD "${vars}" "${@:2}"
}
tc-getBUILD_RANLIB () 
{ 
    tc-getBUILD_PROG RANLIB ranlib "$@"
}
tc-getBUILD_STRIP () 
{ 
    tc-getBUILD_PROG STRIP strip "$@"
}
tc-getCC () 
{ 
    tc-getPROG CC gcc "$@"
}
tc-getCPP () 
{ 
    tc-getPROG CPP "${CC:-gcc} -E" "$@"
}
tc-getCXX () 
{ 
    tc-getPROG CXX g++ "$@"
}
tc-getDLLWRAP () 
{ 
    tc-getPROG DLLWRAP dllwrap "$@"
}
tc-getF77 () 
{ 
    tc-getPROG F77 gfortran "$@"
}
tc-getFC () 
{ 
    tc-getPROG FC gfortran "$@"
}
tc-getGCJ () 
{ 
    tc-getPROG GCJ gcj "$@"
}
tc-getGO () 
{ 
    tc-getPROG GO gccgo "$@"
}
tc-getLD () 
{ 
    tc-getPROG LD ld "$@"
}
tc-getNM () 
{ 
    tc-getPROG NM nm "$@"
}
tc-getOBJCOPY () 
{ 
    tc-getPROG OBJCOPY objcopy "$@"
}
tc-getOBJDUMP () 
{ 
    tc-getPROG OBJDUMP objdump "$@"
}
tc-getPKG_CONFIG () 
{ 
    tc-getPROG PKG_CONFIG pkg-config "$@"
}
tc-getPROG () 
{ 
    _tc-getPROG CHOST "$@"
}
tc-getRANLIB () 
{ 
    tc-getPROG RANLIB ranlib "$@"
}
tc-getRC () 
{ 
    tc-getPROG RC windres "$@"
}
tc-getSTRIP () 
{ 
    tc-getPROG STRIP strip "$@"
}
tc-getTARGET_CPP () 
{ 
    if [[ -n ${CTARGET} ]]; then
        _tc-getPROG CTARGET TARGET_CPP "gcc -E" "$@";
    else
        tc-getCPP "$@";
    fi
}
tc-has-openmp () 
{ 
    local base="${T}/test-tc-openmp";
    cat <<-EOF > "${base}.c"
#include <omp.h>
int main() {
int nthreads, tid, ret = 0;
#pragma omp parallel private(nthreads, tid)
{
tid = omp_get_thread_num();
nthreads = omp_get_num_threads(); ret += tid + nthreads;
}
return ret;
}
EOF

    $(tc-getCC "$@") -fopenmp "${base}.c" -o "${base}" &> /dev/null;
    local ret=$?;
    rm -f "${base}"*;
    return ${ret}
}
tc-has-tls () 
{ 
    local base="${T}/test-tc-tls";
    cat <<-EOF > "${base}.c"
int foo(int *i) {
static __thread int j = 0;
return *i ? j : *i;
}
EOF

    local flags;
    case $1 in 
        -s)
            flags="-S"
        ;;
        -c)
            flags="-c"
        ;;
        -l)

        ;;
        -*)
            die "Usage: tc-has-tls [-c|-l] [toolchain prefix]"
        ;;
    esac;
    : ${flags:=-fPIC -shared -Wl,-z,defs};
    [[ $1 == -* ]] && shift;
    $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &> /dev/null;
    local ret=$?;
    rm -f "${base}"*;
    return ${ret}
}
tc-is-clang () 
{ 
    [[ $(tc-get-compiler-type) == clang ]]
}
tc-is-cross-compiler () 
{ 
    [[ ${CBUILD:-${CHOST}} != ${CHOST} ]]
}
tc-is-gcc () 
{ 
    [[ $(tc-get-compiler-type) == gcc ]]
}
tc-is-softfloat () 
{ 
    tc-detect-is-softfloat || tc-tuple-is-softfloat
}
tc-is-static-only () 
{ 
    local host=${CTARGET:-${CHOST}};
    [[ ${host} == *-mint* ]]
}
tc-ld-disable-gold () 
{ 
    if ! tc-ld-is-gold "$@"; then
        return;
    fi;
    ewarn "Forcing usage of the BFD linker instead of GOLD";
    local ld=$(tc-getLD "$@");
    local bfd_ld="${ld%% *}.bfd";
    local path_ld=$(which "${bfd_ld}" 2>/dev/null);
    [[ -e ${path_ld} ]] && export LD=${bfd_ld};
    local fallback="true";
    if tc-is-gcc; then
        local major=$(gcc-major-version "$@");
        local minor=$(gcc-minor-version "$@");
        if [[ ${major} -gt 4 ]] || [[ ${major} -eq 4 && ${minor} -ge 8 ]]; then
            export LDFLAGS="${LDFLAGS} -fuse-ld=bfd";
            fallback="false";
        fi;
    else
        if tc-is-clang; then
            local major=$(clang-major-version "$@");
            local minor=$(clang-minor-version "$@");
            if [[ ${major} -gt 3 ]] || [[ ${major} -eq 3 && ${minor} -ge 5 ]]; then
                export LDFLAGS="${LDFLAGS} -fuse-ld=bfd";
                fallback="false";
            fi;
        fi;
    fi;
    if [[ ${fallback} == "true" ]]; then
        if [[ -e ${path_ld} ]]; then
            local d="${T}/bfd-linker";
            mkdir -p "${d}";
            ln -sf "${path_ld}" "${d}"/ld;
            export LDFLAGS="${LDFLAGS} -B${d}";
        else
            die "unable to locate a BFD linker to bypass gold";
        fi;
    fi
}
tc-ld-is-gold () 
{ 
    local out;
    out=$($(tc-getLD "$@") --version 2>&1);
    if [[ ${out} == *"GNU gold"* ]]; then
        return 0;
    fi;
    local base="${T}/test-tc-gold";
    cat <<-EOF > "${base}.c"
int main() { return 0; }
EOF

    out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1);
    rm -f "${base}"*;
    if [[ ${out} == *"GNU gold"* ]]; then
        return 0;
    fi;
    return 1
}
tc-ld-is-lld () 
{ 
    local out;
    out=$($(tc-getLD "$@") --version 2>&1);
    if [[ ${out} == *"LLD"* ]]; then
        return 0;
    fi;
    local base="${T}/test-tc-lld";
    cat <<-EOF > "${base}.c"
int main() { return 0; }
EOF

    out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1);
    rm -f "${base}"*;
    if [[ ${out} == *"LLD"* ]]; then
        return 0;
    fi;
    return 1
}
tc-ninja_magic_to_arch () 
{ 
    function ninj () 
    { 
        [[ ${type} == "kern" ]] && echo $1 || echo $2
    };
    local type=$1;
    local host=$2;
    [[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
    case ${host} in 
        aarch64*)
            echo arm64
        ;;
        alpha*)
            echo alpha
        ;;
        arm*)
            echo arm
        ;;
        avr*)
            ninj avr32 avr
        ;;
        bfin*)
            ninj blackfin bfin
        ;;
        c6x*)
            echo c6x
        ;;
        cris*)
            echo cris
        ;;
        frv*)
            echo frv
        ;;
        hexagon*)
            echo hexagon
        ;;
        hppa*)
            ninj parisc hppa
        ;;
        i?86*)
            if [[ ${type} == "kern" && ${host} == *freebsd* ]]; then
                echo i386;
            else
                echo x86;
            fi
        ;;
        ia64*)
            echo ia64
        ;;
        m68*)
            echo m68k
        ;;
        metag*)
            echo metag
        ;;
        microblaze*)
            echo microblaze
        ;;
        mips*)
            echo mips
        ;;
        nios2*)
            echo nios2
        ;;
        nios*)
            echo nios
        ;;
        or1k | or32*)
            echo openrisc
        ;;
        powerpc*)
            if [[ ${type} == "kern" ]]; then
                echo powerpc;
            else
                if [[ ${host} == powerpc64* ]]; then
                    echo ppc64;
                else
                    echo ppc;
                fi;
            fi
        ;;
        riscv*)
            echo riscv
        ;;
        s390*)
            echo s390
        ;;
        score*)
            echo score
        ;;
        sh64*)
            ninj sh64 sh
        ;;
        sh*)
            echo sh
        ;;
        sparc64*)
            ninj sparc64 sparc
        ;;
        sparc*)
            [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc
        ;;
        tile*)
            echo tile
        ;;
        vax*)
            echo vax
        ;;
        x86_64*freebsd*)
            echo amd64
        ;;
        x86_64*)
            if [[ ${type} == "kern" ]]; then
                echo x86;
            else
                echo amd64;
            fi
        ;;
        xtensa*)
            echo xtensa
        ;;
        *)
            echo unknown
        ;;
    esac
}
tc-stack-grows-down () 
{ 
    case ${ARCH} in 
        hppa | metag)
            return 1
        ;;
    esac;
    return 0
}
tc-tuple-is-softfloat () 
{ 
    local CTARGET=${CTARGET:-${CHOST}};
    case ${CTARGET//_/-} in 
        bfin* | h8300*)
            echo "only"
        ;;
        *-softfloat-*)
            echo "yes"
        ;;
        *-softfp-*)
            echo "softfp"
        ;;
        arm*-hardfloat-* | arm*eabihf)
            echo "no"
        ;;
        *-newlib | *-elf | *-eabi)
            echo "no"
        ;;
        arm*)
            echo "yes"
        ;;
        *)
            echo "no"
        ;;
    esac
}
uclibctoolize () 
{ 
    die "Use elibtoolize"
}
ver_cut () 
{ 
    local range=${1};
    local v=${2:-${PV}};
    local start end;
    local -a comp;
    __eapi7_ver_split "${v}";
    local max=$((${#comp[@]}/2));
    __eapi7_ver_parse_range "${range}" "${max}";
    local IFS=;
    if [[ ${start} -gt 0 ]]; then
        start=$(( start*2 - 1 ));
    fi;
    echo "${comp[*]:start:end*2-start}"
}
ver_rs () 
{ 
    local v;
    (( ${#} & 1 )) && v=${@: -1} || v=${PV};
    local start end i;
    local -a comp;
    __eapi7_ver_split "${v}";
    local max=$((${#comp[@]}/2 - 1));
    while [[ ${#} -ge 2 ]]; do
        __eapi7_ver_parse_range "${1}" "${max}";
        for ((i = start*2; i <= end*2; i+=2 ))
        do
            [[ ${i} -eq 0 && -z ${comp[i]} ]] && continue;
            comp[i]=${2};
        done;
        shift 2;
    done;
    local IFS=;
    echo "${comp[*]}"
}
ver_test () 
{ 
    local va op vb;
    if [[ $# -eq 3 ]]; then
        va=${1};
        shift;
    else
        va=${PVR};
    fi;
    [[ $# -eq 2 ]] || die "${FUNCNAME}: bad number of arguments";
    op=${1};
    vb=${2};
    case ${op} in 
        -eq | -ne | -lt | -le | -gt | -ge)

        ;;
        *)
            die "${FUNCNAME}: invalid operator: ${op}"
        ;;
    esac;
    __eapi7_ver_compare "${va}" "${vb}";
    test $? "${op}" 2
}