# Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils flag-o-matic multilib toolchain-funcs PATCH_URI="http://www.teaser.fr/~amajorel/xwadtools/patches" PATCH_LIST="${PATCH_URI}/lswad-1.9.diff ${PATCH_URI}/wadflat-1.4.diff ${PATCH_URI}/wadlc-2004-01-29.diff ${PATCH_URI}/wadsprit-1.5.diff ${PATCH_URI}/wadsprit-1.6.diff" DESCRIPTION="Great collection of WAD editing utilities" HOMEPAGE="http://www.teaser.fr/~amajorel/doom/unix_doom_editing.html" SRC_URI="http://www.gamers.org/pub/idgames/source/${P}.tar.gz ${PATCH_LIST}" LICENSE="as-is GPL-2" SLOT="0" KEYWORDS="-* ~amd64 ~x86" IUSE="tk X" RESTRICT="nomirror" DEPEND="X? ( x11-libs/xforms) " RDEPEND="${DEPEND} amd64? ( app-emulation/emul-linux-x86-compat ) tk? ( dev-lang/tk sys-apps/groff )" S="${WORKDIR}/${PN}" # List of programs handles smootly PRG_LIST="mkwad lswad mktran wadps wadwhat qmus2mid wadtxls bsp idbsp wadlc \ wadldc wadgc wadext wadtex wadflat wadsprit wadpat wadcat raw2ppm \ raw2sfx warm slige pal2c mkxppal mkgipal mkpopal mkqmap swantbls \ deutex listacs dm2au trigcalc" NO64_LIST="deutex slige wadps" #in_list(${item},${list}) { # local u # # for u in ${list} ; do # if ${u}=${item}; then # return 1 # fi # done # # return 0 #} pkg_setup() { if use X && use amd64; then ewarn "USE 'X' enabled, but on AMD64 system" ewarn "'xew' won't be compiled and installed" fi } src_unpack() { unpack ${A} || die "unpack failed" cd ${S} epatch "${DISTDIR}/lswad-1.9.diff" || die "epatch failed" epatch "${DISTDIR}/wadflat-1.4.diff" || die "epatch failed" epatch "${DISTDIR}/wadsprit-1.5.diff" || die "epatch failed" epatch "${DISTDIR}/wadsprit-1.6.diff" || die "epatch failed" epatch "${DISTDIR}/wadlc-2004-01-29.diff" || die "epatch failed" # Little fix to dmpsmu Makefile to prevent next "make clean" error sed -i \ -e 's:^CFLAGS:CCFLAGS:' \ -e 's:$(CC) $(CFLAGS):$(CC) $(CCFLAGS):' \ dmpsmu/source/Makefile || die "sed Makefile failed" if use tk; then # Various fixes to tkwadcad sed -i \ -e 's:wish8.0:wish:' \ -e 's:/usr/local/lib/tkwadcad:/usr/lib/tkwadcad:' \ tkwadcad/tkwadcad || die "sed tkwadcad failed" sed -i \ -e 's:gpic:pic:' \ tkwadcad/manual/Makefile \ || die "sed Makefile failed" fi # Remove unneeded references to xwadtools man page sed -i \ -e '/acc/d' \ doc/xwadtools.6 \ || die "sed man failed" if ! use X ; then sed -i \ -e '/xew/d' \ doc/xwadtools.6 \ || die "sed man failed" fi if ! use tk ; then sed -i \ -e '/tkwadcad/d' \ doc/xwadtools.6 \ || die "sed man failed" fi } src_compile() { # Clean'em all :) make -f Makefile.lin clean || die "emake clean failed" append-flags "-DUNIX" #use amd64 && multilib_toolchain_setup x86 local x for x in lib ${PRG_LIST} idmultigen reject dmpsmu/source do # if in_list(${x},${NO64_LIST}); then # use amd64 && multilib_toolchain_setup x86 # fi emake \ CC="$(tc-getCC)" \ CPP="$(tc-getCXX)" \ CFLAGS="${CFLAGS}" \ CPPFLAGS="${CXXFLAGS}" \ -C ${x} || die "emake ${x} failed" done # Build xew, if USE "X" is enabled and on x86 system #if use X && ! use amd64; then if use X ; then emake \ CC="$(tc-getCC)" \ CFLAGS="${CFLAGS}" \ -C xew xforms || die "emake xew failed" fi # build tkwadcad manual, if use "tk" is enabled if use tk; then make -C tkwadcad/manual allclean || die "make clean failed" make -C tkwadcad/manual || die "make failed" fi } src_install() { local x # Install a big part of programs with related man pages for x in ${PRG_LIST} do dobin ${x}/${x} || die "dobin ${x} failed" doman ${x}/${x}.6 || die "doman ${x}.6 failed" done # Next files must be handled in a different way :P dobin idmultigen/idmultigen || die "dobin idmultigen failed" dobin reject/wreject || die "dobin wreject failed" doman reject/wreject.6 || die "doman wreject.6 failed" dobin idbsp/waddwd || die "dobin waddwd failed" doman idbsp/waddwd.6 || die "doman waddwd failed" dobin dmpsmu/source/{dmpsmu,dmpsmap} || die "dobin dmpsm[u|ap] failed" doman dmpsmu/{dmpsmu,dmpsmap}.6 || die "doman dmpsm[u|ap] failed" dobin deutex/deusf || die "dobin deusf failed" doman doc/${PN}.6 || die "doman ${PN} failed" # Install various docs dodoc CREDITS Change.Log HINTS INSTALL README || die "dodoc failed" dodoc doc/*.txt || die "dodoc failed" dodoc bsp/{bsp,visplane}.txt || die "dodoc failed" dodoc slige/slige.txt || die "dodoc failed" dodoc wadwhat/wadwhat.txt || die "dodoc failed" newdoc dm2au/README dm2au newdoc idbsp/README idbsp-waddwd || die "newdoc failed" newdoc qmus2mid/README qmus2mid || die "newdoc failed" newdoc reject/REJECT.txt wreject || die "newdoc failed" newdoc warm/WARM16.TXT warm || die "newdoc failed" docinto deutex dodoc deutex/{CHANGES,INSTALL,LICENSE,README,TODO,dtexman6.txt} \ || die "dodoc failed" docinto dmpsmu dodoc dmpsmu/{Changes.Log,README,dmpsmu26.txt} || die "dodoc failed" docinto idmultigen dodoc idmultigen/{README,multigen.txt} || die "dodoc failed" docinto wadtxls dodoc wadtxls/{Changes.Log,README,dmtxls11.txt} || die "dodoc failed" # Install USE-related programs #if use X && ! use amd64; then if use X ; then dobin xew/xew || die "dobin xew failed" doman xew/xew.6 || die "doman xew.6 failed" insinto "/usr/lib/xew" doins xew/{doom_g0,doom_g1,heretic,eheretic,hexeng1,hexeng3,strifeg1}.pcx \ || die "doins failed" docinto xew dodoc xew/{README,unix.txt} || die "dodoc xew failed" fi if use tk; then cd "${S}/tkwadcad" dobin tkwadcad || die "dobin failed" insinto "/usr/lib/tkwadcad" doins engines.lst || die "doins failed" doins -r doom doom2 hexen lib scripts xdoom xdoomplus \ || die "doins failed" doman tkwadcad.6 || die "doman failed" docinto tkwadcad dodoc "INSTALL" "README" "manual/tkwadcad.ps" || die "dodoc failed" fi }