198 lines
4.6 KiB
Bash
198 lines
4.6 KiB
Bash
# Copyright 1999-2017 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=2
|
|
|
|
inherit eutils multilib
|
|
|
|
PATCHSET_VER="3"
|
|
MY_P=mercury-srcdist-${PV}
|
|
|
|
DESCRIPTION="Additional libraries and tools that are not part of the Mercury standard library"
|
|
HOMEPAGE="http://www.mercurylang.org/index.html"
|
|
SRC_URI="http://dl.mercurylang.org/release/${MY_P}.tar.gz
|
|
mirror://gentoo/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
|
|
|
|
LICENSE="GPL-2 LGPL-2"
|
|
SLOT="0"
|
|
KEYWORDS="amd64 x86"
|
|
|
|
IUSE="X cairo examples glut iodbc ncurses odbc opengl ssl tcl tk xml"
|
|
|
|
RDEPEND="~dev-lang/mercury-${PV}
|
|
cairo? ( >=x11-libs/cairo-1.10.0 )
|
|
glut? ( media-libs/freeglut )
|
|
odbc? ( dev-db/unixODBC )
|
|
iodbc? ( !odbc? ( dev-db/libiodbc ) )
|
|
ncurses? ( sys-libs/ncurses )
|
|
opengl? (
|
|
virtual/opengl
|
|
virtual/glu
|
|
)
|
|
tcl? ( tk? (
|
|
dev-lang/tcl:0
|
|
dev-lang/tk:0
|
|
x11-libs/libX11
|
|
x11-libs/libXmu
|
|
)
|
|
)"
|
|
|
|
DEPEND="${RDEPEND}"
|
|
|
|
S="${WORKDIR}"/${MY_P}/extras
|
|
|
|
src_prepare() {
|
|
cd "${WORKDIR}"
|
|
|
|
EPATCH_FORCE=yes
|
|
EPATCH_SUFFIX=patch
|
|
epatch "${WORKDIR}"/${PV}
|
|
|
|
if use odbc; then
|
|
epatch "${WORKDIR}"/${PV}-odbc/${P}-odbc.patch
|
|
elif use iodbc; then
|
|
epatch "${WORKDIR}"/${PV}-odbc/${P}-iodbc.patch
|
|
fi
|
|
|
|
cd "${S}"
|
|
sed -i -e "s:references:references solver_types/library:" \
|
|
-e "s:windows_installer_generator::" \
|
|
Mmakefile || die "sed default packages failed"
|
|
|
|
if use cairo; then
|
|
sed -i -e "s:lex[ \t]*\\\\:graphics/mercury_cairo lex \\\\:" Mmakefile \
|
|
|| die "sed cairo failed"
|
|
fi
|
|
|
|
if use glut; then
|
|
sed -i -e "s:lex[ \t]*\\\\:graphics/mercury_glut lex \\\\:" Mmakefile \
|
|
|| die "sed glut failed"
|
|
fi
|
|
|
|
if use opengl; then
|
|
sed -i -e "s:lex[ \t]*\\\\:graphics/mercury_opengl lex \\\\:" Mmakefile \
|
|
|| die "sed opengl failed"
|
|
fi
|
|
|
|
if use tcl && use tk; then
|
|
sed -i -e "s:lex[ \t]*\\\\:graphics/mercury_tcltk lex \\\\:" Mmakefile \
|
|
|| die "sed tcltk failed"
|
|
fi
|
|
|
|
if use odbc || use iodbc; then
|
|
sed -i -e "s:moose:moose odbc:" Mmakefile \
|
|
|| die "sed odbc failed"
|
|
fi
|
|
|
|
if use ncurses; then
|
|
sed -i -e "s:complex_numbers:complex_numbers curs curses:" Mmakefile \
|
|
|| die "sed ncurses failed"
|
|
fi
|
|
|
|
if ! use xml; then
|
|
sed -i -e "s:xml::" Mmakefile \
|
|
|| die "sed xml failed"
|
|
fi
|
|
|
|
sed -i -e "s:@libdir@:$(get_libdir):" \
|
|
dynamic_linking/Mmakefile \
|
|
|| die "sed libdir failed"
|
|
|
|
# disable broken packages
|
|
sed -i -e "s:references::" Mmakefile \
|
|
|| die "sed broken packages failed"
|
|
}
|
|
|
|
src_compile() {
|
|
# Mercury dependency generation must be run single-threaded
|
|
mmake \
|
|
-j1 depend || die "mmake depend failed"
|
|
|
|
# Compiling Mercury submodules is not thread-safe
|
|
mmake -j1 \
|
|
EXTRA_MLFLAGS=--no-strip \
|
|
EXTRA_LDFLAGS="${LDFLAGS}" \
|
|
EXTRA_LD_LIBFLAGS="${LDFLAGS}" \
|
|
|| die "mmake failed"
|
|
}
|
|
|
|
src_install() {
|
|
# Compiling Mercury submodules is not thread-safe
|
|
mmake -j1 \
|
|
EXTRA_LD_LIBFLAGS="${LDFLAGS}" \
|
|
INSTALL_PREFIX="${D}"/usr \
|
|
install || die "mmake install failed"
|
|
|
|
find "${D}"/usr/$(get_libdir)/mercury -type l | xargs rm
|
|
|
|
cd "${S}"
|
|
if use examples; then
|
|
insinto /usr/share/doc/${PF}/samples/base64
|
|
doins base64/*.m || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/complex_numbers
|
|
doins complex_numbers/samples/* || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/dynamic_linking
|
|
doins dynamic_linking/hello.m || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/error
|
|
doins error/* || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/fixed
|
|
doins fixed/*.m || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/gator
|
|
doins -r gator/* || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/lex
|
|
doins lex/samples/* || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/log4m
|
|
doins log4m/*.m || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/monte
|
|
doins monte/*.m || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/moose
|
|
doins moose/samples/* || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/net
|
|
doins net/*.m || die
|
|
|
|
if use ncurses; then
|
|
insinto /usr/share/doc/${PF}/samples/curs
|
|
doins curs/samples/* || die
|
|
|
|
insinto /usr/share/doc/${PF}/samples/curses
|
|
doins curses/sample/* || die
|
|
fi
|
|
|
|
if use X; then
|
|
insinto /usr/share/doc/${PF}/samples/graphics
|
|
doins graphics/easyx/samples/*.m || die
|
|
fi
|
|
|
|
if use glut && use opengl; then
|
|
insinto /usr/share/doc/${PF}/samples/graphics
|
|
doins graphics/samples/calc/* || die
|
|
doins graphics/samples/gears/* || die
|
|
doins graphics/samples/maze/* || die
|
|
doins graphics/samples/pent/* || die
|
|
fi
|
|
|
|
if use opengl && use tcl && use tk; then
|
|
insinto /usr/share/doc/${PF}/samples/graphics
|
|
doins graphics/samples/pent/*.m || die
|
|
fi
|
|
|
|
if use ssl; then
|
|
insinto /usr/share/doc/${PF}/samples/mopenssl
|
|
doins mopenssl/*.m || die
|
|
fi
|
|
|
|
ecvs_clean
|
|
fi
|
|
|
|
dodoc README || die
|
|
}
|