app-shells/mksh: Add USE=lksh
[gentoo.git] / app-shells / mksh / mksh-57-r2.ebuild
1 # Copyright 1999-2019 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 inherit toolchain-funcs
7
8 if [[ $PV = 9999 ]]; then
9         inherit cvs
10         ECVS_SERVER="anoncvs.mirbsd.org:/cvs"
11         ECVS_MODULE="mksh"
12         ECVS_USER="_anoncvs"
13         ECVS_AUTH="ext"
14         KEYWORDS=""
15 else
16         SRC_URI="https://www.mirbsd.org/MirOS/dist/mir/mksh/${PN}-R${PV}.tgz"
17         KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
18 fi
19
20 DESCRIPTION="MirBSD Korn Shell"
21 # Host is TLSv1.0-only, keep to http for compatibility with modern browsers
22 HOMEPAGE="http://mirbsd.de/mksh"
23
24 LICENSE="BSD"
25 SLOT="0"
26 IUSE="lksh static test"
27 RESTRICT="!test? ( test )"
28
29 DEPEND="
30         test? (
31                 dev-lang/perl
32                 sys-apps/ed
33         )
34 "
35
36 S="${WORKDIR}/${PN}"
37
38 src_prepare() {
39         default
40         if use lksh; then
41                 cp -pr "${S}" "${S}"_lksh || die
42         fi
43 }
44
45 src_compile() {
46         tc-export CC
47         use static && export LDSTATIC="-static"
48         export CPPFLAGS="${CPPFLAGS} -DMKSH_DEFAULT_PROFILEDIR=\\\"${EPREFIX}/etc\\\""
49
50         if use lksh; then
51                 pushd "${S}"_lksh >/dev/null || die
52                 CPPFLAGS="${CPPFLAGS} -DMKSH_BINSHPOSIX -DMKSH_BINSHREDUCED" \
53                         sh Build.sh -r -L || die
54                 popd >/dev/null || die
55         fi
56
57         sh Build.sh -r || die
58 }
59
60 src_install() {
61         into /
62         dobin mksh
63         doman mksh.1
64         dodoc dot.mkshrc
65
66         if use lksh; then
67                 dobin "${S}"_lksh/lksh
68                 doman "${S}"_lksh/lksh.1
69         fi
70 }
71
72 src_test() {
73         einfo "Testing regular mksh."
74         ./mksh test.sh -v || die
75
76         if use lksh; then
77                 einfo "Testing lksh, POSIX long-bit mksh."
78                 pushd "${S}"_lksh >/dev/null || die
79                 ./lksh test.sh -v || die
80                 popd >/dev/null || die
81         fi
82 }