You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.2 KiB
76 lines
2.2 KiB
# Copyright 1999-2023 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
MY_P="bc-${PV}"
|
|
DESCRIPTION="Implementation of POSIX bc with GNU extensions"
|
|
HOMEPAGE="
|
|
https://git.gavinhoward.com/gavin/bc/
|
|
https://github.com/gavinhoward/bc/
|
|
"
|
|
SRC_URI="
|
|
https://github.com/gavinhoward/bc/releases/download/${PV}/${MY_P}.tar.xz
|
|
"
|
|
S=${WORKDIR}/${MY_P}
|
|
|
|
LICENSE="BSD-2"
|
|
SLOT="0"
|
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86"
|
|
IUSE="libedit readline"
|
|
|
|
DEPEND="
|
|
!readline? (
|
|
libedit? ( dev-libs/libedit:= )
|
|
)
|
|
readline? (
|
|
sys-libs/readline:=
|
|
sys-libs/ncurses:=
|
|
)
|
|
"
|
|
RDEPEND="
|
|
${DEPEND}
|
|
"
|
|
|
|
src_configure() {
|
|
local myconf=(
|
|
# GNU and BSD bc's have slightly different behavior. This bc can act
|
|
# like both, changing at runtime with environment variables, but it
|
|
# needs defaults, which can be set at compile time. This option sets all
|
|
# of the defaults to match the GNU bc/dc since it's common on Linux.
|
|
-pGNU
|
|
# A lot of test results are generated first by a bc compatible with the
|
|
# GNU bc. If there is no GNU bc installed, then those tests should be
|
|
# skipped. That's what this option does. Without it, we would have a
|
|
# dependency cycle. Those tests are super long, anyway.
|
|
-G
|
|
# Disables the automatic stripping of binaries.
|
|
-T
|
|
# Enables installing all locales, which is important for packages.
|
|
-l
|
|
# Disables some "problematic" tests that need specific options on Linux
|
|
# to not trigger the OOM killer because malloc() lies.
|
|
-P
|
|
)
|
|
if use readline ; then
|
|
myconf+=( -r )
|
|
elif use libedit ; then
|
|
myconf+=( -e )
|
|
fi
|
|
|
|
local -x EXECSUFFIX="-gh"
|
|
local -x PREFIX="${EPREFIX}/usr"
|
|
./configure.sh "${myconf[@]}" || die
|
|
}
|
|
|
|
src_test() {
|
|
# This is to fix a bug encountered on Arch. It is to ensure we don't get
|
|
# segfaults on `make check` when the error messages change because the error
|
|
# messages are passed to printf(); they have format specifiers. With these
|
|
# env vars, the internal error messages are used, instead of the installed
|
|
# locales, which might be different since the new locale files are not
|
|
# installed yet. (It is impossible to use uninstalled locales because of the
|
|
# poor design of POSIX locales.)
|
|
env LANG=C LC_ALL=C emake check
|
|
}
|