| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 9999 | 7 | 0 |
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit cmake git-r3
DESCRIPTION="Elkhound is a GLR parser generator"
HOMEPAGE="http://scottmcpeak.com/elkhound"
EGIT_REPO_URI="https://github.com/WeiDUorg/elkhound.git"
LICENSE="BSD"
SLOT="0"
IUSE="doc"
# The source contains explicit calls to bison, so we can't depend
# on virtual/yacc anymore.
DEPEND="
sys-devel/bison
sys-devel/flex
doc? ( >=media-gfx/graphviz-2.38.0-r1[svg]
)"
RDEPEND=">=dev-lang/ocaml-4.04.2-r1[ocamlopt]"
S="${WORKDIR}/${P}/src"
src_prepare() {
sed -e 's|CMAKE_C_FLAGS \"-g3|CMAKE_C_FLAGS \"\${CMAKE_C_FLAGS}|' \
-e 's|CMAKE_CXX_FLAGS \"-g3|CMAKE_CXX_FLAGS \"\${CMAKE_CXX_FLAGS}|' \
-i CMakeLists.txt || die
cmake_src_prepare
}
src_install() {
# elkhound Makefile has no install target
dobin "${BUILD_DIR}"/elkhound/elkhound
dobin "${BUILD_DIR}"/ast/astgen
dolib.a "${BUILD_DIR}"/smbase/libsmbase.a
dolib.a "${BUILD_DIR}"/ast/libast.a
dolib.a "${BUILD_DIR}"/elkhound/libelkhound.a
# Note: Header files are just all installed. The original code does not
# clearly making a difference between internal and exported header files.
SMBASE_HEADERS=( array.h astlist.h autofile.h bflatten.h bit2d.h bitarray.h
breaker.h ckheap.h crc.h cycles.h datablok.h exc.h flatten.h gprintf.h
growbuf.h hashline.h hashtbl.h macros.h mysig.h nonport.h objlist.h
objpool.h objstack.h ohashtbl.h okhasharr.h okhashtbl.h owner.h point.h
ptrmap.h sm_flexlexer.h sobjlist.h sobjset.h sobjstack.h srcloc.h str.h
strdict.h strhash.h stringset.h strobjdict.h strsobjdict.h strtokp.h
strutil.h svdict.h syserr.h taillist.h test.h trace.h trdelete.h typ.h
vdtllist.h voidlist.h vptrmap.h xassert.h xobjlist.h )
insinto /usr/include/smbase
for i in ${SMBASE_HEADERS[@]}; do
doins "${S}"/smbase/${i}
done
AST_HEADERS=( agrampar.h ast.ast.h ast.hand.h asthelp.h ccsstr.h embedded.h
fakelist.h fileloc.h gramlex.h locstr.h reporterr.h strtable.h xmlhelp.h )
insinto /usr/include/ast
for i in ${AST_HEADERS[@]}; do
doins "${S}"/ast/${i}
done
ELKHOUND_HEADERS=( asockind.h cyctimer.h emitcode.h flatutil.h genml.h glr.h
glrconfig.h gramanl.h grammar.h grampar.h lexerint.h mlsstr.h ownerspec.h
parsetables.h ptreeact.h ptreenode.h rcptr.h ssxnode.h trivbison.h trivlex.h
useract.h util.h )
insinto /usr/include/elkhound
for i in ${ELKHOUND_HEADERS[@]}; do
doins "${S}"/elkhound/${i}
done
local HTML_DOCS_SMBASE=( index.html trace.html )
local HTML_DOCS_AST=( index.html manual.html )
local HTML_DOCS_ELKHOUND=( algorithm.html faq.html index.html manual.html tutorial.html )
local DOCS_SMBASE=( string.txt )
local DOCS_AST=( readme.txt )
local DOCS_ELKHOUND=( grammar.txt parsgen.txt readme.txt )
einstalldocs
if use doc; then
docinto /usr/share/doc/${PF}/smbase
for i in ${DOCS_SMBASE[@]}; do
doins "${S}"/smbase/${i}
done
docinto /usr/share/doc/${PF}/ast
for i in ${DOCS_AST[@]}; do
doins "${S}"/ast/${i}
done
docinto /usr/share/doc/${PF}/elkhound
for i in ${DOCS_ELKHOUND[@]}; do
doins "${S}"/elkhound/${i}
done
docinto /usr/share/doc/${PF}/smbase/html
for i in ${HTML_DOCS_SMBASE[@]}; do
doins "${S}"/smbase/${i}
done
docinto /usr/share/doc/${PF}/ast/html
for i in ${HTML_DOCS_AST[@]}; do
doins "${S}"/ast/${i}
done
docinto /usr/share/doc/${PF}/elkhound/html
for i in ${HTML_DOCS_ELKHOUND[@]}; do
doins "${S}"/elkhound/${i}
done
fi
}
sys-devel/bison sys-devel/flex doc? ( >=media-gfx/graphviz-2.38.0-r1[svg] )
>=dev-lang/ocaml-4.04.2-r1[ocamlopt]