summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-tcltk/tdom')
-rw-r--r--dev-tcltk/tdom/Manifest1
-rw-r--r--dev-tcltk/tdom/files/tdom-0.8.2-expat.patch83
-rw-r--r--dev-tcltk/tdom/files/tdom-0.8.2-soname.patch26
-rw-r--r--dev-tcltk/tdom/files/tdom-0.8.2-tnc.patch73
-rw-r--r--dev-tcltk/tdom/files/tdom-0.8.2.patch52
-rw-r--r--dev-tcltk/tdom/files/tdom-0.8.3-expat.patch84
-rw-r--r--dev-tcltk/tdom/files/tdom-0.8.3-soname.patch26
-rw-r--r--dev-tcltk/tdom/files/tdom-0.8.3-tcl8.6.patch21
-rw-r--r--dev-tcltk/tdom/metadata.xml12
-rw-r--r--dev-tcltk/tdom/tdom-0.8.3-r4.ebuild88
10 files changed, 466 insertions, 0 deletions
diff --git a/dev-tcltk/tdom/Manifest b/dev-tcltk/tdom/Manifest
new file mode 100644
index 000000000000..b9823c6ac7ac
--- /dev/null
+++ b/dev-tcltk/tdom/Manifest
@@ -0,0 +1 @@
+DIST tDOM-0.8.3.tgz 990367 SHA256 496d5950907dd70db61bc20c55a05a5521363ce3c076e2fdd97270181bc720b9 SHA512 aa5352bc9b67c45d115e52dbf2cf153a3db89f851b51c1cd574af69b02c466f643df0b5448f7d105245246d20a92f80605f16bd927cd7925c1f2007827f2dc20 WHIRLPOOL cec84152b636c3ea13a6daaa9681fe28c36a3e358e28382a439ee855206566b08c1f7427ca733cfbb806f2fdb1e2e10c96c8410005fe56e84f17e873168697ee
diff --git a/dev-tcltk/tdom/files/tdom-0.8.2-expat.patch b/dev-tcltk/tdom/files/tdom-0.8.2-expat.patch
new file mode 100644
index 000000000000..cdcbb1006f4d
--- /dev/null
+++ b/dev-tcltk/tdom/files/tdom-0.8.2-expat.patch
@@ -0,0 +1,83 @@
+Source: http://download.opensuse.org/repositories/openSUSE:/11.0/standard/src/tdom-0.8.2-50.1.src.rpm
+Index: Makefile.in
+================================================================================
+--- configure.in
++++ configure.in
+@@ -72,6 +72,7 @@
+ #--------------------------------------------------------------------
+
+ TDOM_PATH_AOLSERVER
++TDOM_PATH_EXPAT
+
+ #-----------------------------------------------------------------------
+ # __CHANGE__
+@@ -83,10 +84,7 @@
+ # and PKG_TCL_SOURCES.
+ #-----------------------------------------------------------------------
+
+-TEA_ADD_SOURCES([expat/xmlrole.c \
+- expat/xmltok.c \
+- expat/xmlparse.c \
+- generic/xmlsimple.c \
++TEA_ADD_SOURCES([generic/xmlsimple.c \
+ generic/utf8conv.c \
+ generic/dom.c \
+ generic/domalloc.c \
+@@ -100,7 +98,7 @@
+ generic/tclexpat.c \
+ generic/tdomStubInit.c])
+ TEA_ADD_HEADERS([generic/tdom.h])
+-TEA_ADD_INCLUDES([-I${srcdir}/generic -I${srcdir}/expat ${AOL_INCLUDES}])
++TEA_ADD_INCLUDES([-I${srcdir}/generic ${AOL_INCLUDES}])
+ TEA_ADD_LIBS([${AOL_LIBS}])
+ TEA_ADD_CFLAGS([])
+ TEA_ADD_STUB_SOURCES([generic/tdomStubLib.c])
+--- tdom.m4
++++ tdom.m4
+@@ -215,6 +215,46 @@
+ fi
+ ])
+
++
++AC_DEFUN(TDOM_PATH_EXPAT, [
++ AC_MSG_CHECKING([for expat])
++ AC_ARG_WITH(expat,
++ AC_HELP_STRING([--with-expat],
++ [directory with expat installation]), , [with_expat=no])
++
++ AC_CACHE_VAL(ac_cv_c_expat,[
++ case $with_expat in
++ no) ;;
++ yes)
++ for f in /usr/local /usr; do
++ if test -f "$f/include/expat.h" ; then
++ ac_cv_c_expat=`(cd $f; pwd)`
++ break
++ fi
++ done
++ ;;
++ *)
++ if test -f "$with_expat/include/expat.h"; then
++ ac_cv_c_expat=`(cd $with_expat; pwd)`
++ else
++ AC_MSG_ERROR([${with_expat} directory doesn't contain expat.h])
++ fi
++ esac
++ ])
++ if test x"${ac_cv_c_expat}" = x ; then
++ AC_MSG_RESULT([using local copy])
++ TEA_ADD_SOURCES([expat/xmlrole.c \
++ expat/xmltok.c \
++ expat/xmlparse.c])
++ TEA_ADD_INCLUDES([-I${srcdir}/expat])
++ else
++ AC_MSG_RESULT([${ac_cv_c_expat}])
++ TEA_ADD_INCLUDES(${ac_cv_c_expat}/include)
++ TEA_ADD_LIBS([-lexpat])
++ fi
++])
++
++
+ #------------------------------------------------------------------------
+ # TDOM_PATH_CONFIG --
+ #
diff --git a/dev-tcltk/tdom/files/tdom-0.8.2-soname.patch b/dev-tcltk/tdom/files/tdom-0.8.2-soname.patch
new file mode 100644
index 000000000000..3f0bc7e62a9d
--- /dev/null
+++ b/dev-tcltk/tdom/files/tdom-0.8.2-soname.patch
@@ -0,0 +1,26 @@
+diff --git a/Makefile.in b/Makefile.in
+index d995328..5c17e11 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -108,7 +108,7 @@ CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
+ CFLAGS_WARNING = @CFLAGS_WARNING@
+ CLEANFILES = @CLEANFILES@
+ EXEEXT = @EXEEXT@
+-LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@
++LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@ -Wl,-soname,libdom$(PACKAGE_VERSION).so
+ MAKE_LIB = @MAKE_LIB@
+ MAKE_SHARED_LIB = @MAKE_SHARED_LIB@
+ MAKE_STATIC_LIB = @MAKE_STATIC_LIB@
+diff --git a/extensions/tnc/Makefile.in b/extensions/tnc/Makefile.in
+index f8a332c..01e0ef0 100644
+--- a/extensions/tnc/Makefile.in
++++ b/extensions/tnc/Makefile.in
+@@ -98,7 +98,7 @@ CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
+ CFLAGS_WARNING = @CFLAGS_WARNING@
+ CLEANFILES = @CLEANFILES@
+ EXEEXT = @EXEEXT@
+-LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@
++LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@ -Wl,-soname,libtnc$(PACKAGE_VERSION).so
+ MAKE_LIB = @MAKE_LIB@
+ MAKE_SHARED_LIB = @MAKE_SHARED_LIB@
+ MAKE_STATIC_LIB = @MAKE_STATIC_LIB@
diff --git a/dev-tcltk/tdom/files/tdom-0.8.2-tnc.patch b/dev-tcltk/tdom/files/tdom-0.8.2-tnc.patch
new file mode 100644
index 000000000000..7fa200b9ee33
--- /dev/null
+++ b/dev-tcltk/tdom/files/tdom-0.8.2-tnc.patch
@@ -0,0 +1,73 @@
+Source: http://download.opensuse.org/repositories/openSUSE:/11.0/standard/src/tdom-0.8.2-50.1.src.rpm
+--- extensions/tnc/Makefile.in
++++ extensions/tnc/Makefile.in
+@@ -355,29 +355,30 @@
+ #========================================================================
+
+ install-lib-binaries: binaries
+- @mkdir -p $(DESTDIR)$(pkglibdir)
++ @mkdir -p $(DESTDIR)$(libdir)
+ @list='$(lib_BINARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+- echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p"; \
+- $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p; \
++ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p"; \
++ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p; \
+ stub=`echo $$p|sed -e "s/.*\(stub\).*/\1/"`; \
+ if test "x$$stub" = "xstub"; then \
+- echo " $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p"; \
+- $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p; \
++ echo " $(RANLIB_STUB) $(DESTDIR)$(libdir)/$$p"; \
++ $(RANLIB_STUB) $(DESTDIR)$(libdir)/$$p; \
+ else \
+- echo " $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p"; \
+- $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p; \
++ echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
++ $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
+ fi; \
+ ext=`echo $$p|sed -e "s/.*\.//"`; \
+ if test "x$$ext" = "xdll"; then \
+ lib=`basename $$p|sed -e 's/.[^.]*$$//'`.lib; \
+ if test -f $$lib; then \
+- echo " $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib"; \
+- $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib; \
++ echo " $(INSTALL_DATA) $$lib $(DESTDIR)$(libdir)/$$lib"; \
++ $(INSTALL_DATA) $$lib $(DESTDIR)$(libdir)/$$lib; \
+ fi; \
+ fi; \
+ fi; \
+ done
++ @mkdir -p $(DESTDIR)$(pkglibdir)
+ @list='$(PKG_TCL_SOURCES)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ destp=`basename $$p`; \
+--- extensions/tnc/configure.in
++++ extensions/tnc/configure.in
+@@ -89,7 +89,7 @@
+ if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes" ; then
+ TEA_ADD_LIBS([\"`${CYGPATH} ${TDOM_STUB_LIB_PATH}`\"])
+ else
+- TEA_ADD_LIBS([${TDOM_STUB_LIB_SPEC}])
++ TEA_ADD_LIBS([${TDOM_BUILD_STUB_LIB_SPEC}])
+ fi
+
+ #--------------------------------------------------------------------
+--- extensions/tnc/pkgIndex.tcl.in
++++ extensions/tnc/pkgIndex.tcl.in
+@@ -2,4 +2,4 @@
+
+ package ifneeded tnc @PACKAGE_VERSION@ \
+ "package require tdom; \
+- [list load [file join $dir @PKG_LIB_FILE@] tnc]"
++ [list load @PKG_LIB_FILE@ tnc]"
+--- extensions/tnc/Makefile.in
++++ extensions/tnc/Makefile.in
+@@ -160,7 +160,7 @@ DEFS = @DEFS@ $(PKG_CFLAGS)
+ CONFIG_CLEAN_FILES = Makefile
+
+ CPPFLAGS = @CPPFLAGS@
+-LIBS = @PKG_LIBS@ @LIBS@
++LIBS = @PKG_LIBS@ @LIBS@ -L../../unix/
+ AR = @AR@
+ CFLAGS = @CFLAGS@
+ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
diff --git a/dev-tcltk/tdom/files/tdom-0.8.2.patch b/dev-tcltk/tdom/files/tdom-0.8.2.patch
new file mode 100644
index 000000000000..73af7c60e141
--- /dev/null
+++ b/dev-tcltk/tdom/files/tdom-0.8.2.patch
@@ -0,0 +1,52 @@
+Source: http://download.opensuse.org/repositories/openSUSE:/11.0/standard/src/tdom-0.8.2-50.1.src.rpm
+--- Makefile.in
++++ Makefile.in
+@@ -307,7 +307,7 @@
+
+ pkgIndex.tcl-hand:
+ @(echo 'package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION)\
+- "load [list [file join $$dir $(PKG_LIB_FILE)]];\
++ "load $(PKG_LIB_FILE);\
+ source [list [file join $$dir tdom.tcl]]"'\
+ ) > pkgIndex.tcl
+
+@@ -385,29 +385,30 @@
+ #========================================================================
+
+ install-lib-binaries: binaries
+- @mkdir -p $(DESTDIR)$(pkglibdir)
++ @mkdir -p $(DESTDIR)$(libdir)
+ @list='$(lib_BINARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+- echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p"; \
+- $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p; \
++ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p"; \
++ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p; \
+ stub=`echo $$p|sed -e "s/.*\(stub\).*/\1/"`; \
+ if test "x$$stub" = "xstub"; then \
+- echo " $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p"; \
+- $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p; \
++ echo " $(RANLIB_STUB) $(DESTDIR)$(libdir)/$$p"; \
++ $(RANLIB_STUB) $(DESTDIR)$(libdir)/$$p; \
+ else \
+- echo " $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p"; \
+- $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p; \
++ echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
++ $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
+ fi; \
+ ext=`echo $$p|sed -e "s/.*\.//"`; \
+ if test "x$$ext" = "xdll"; then \
+ lib=`basename $$p|sed -e 's/.[^.]*$$//'`.lib; \
+ if test -f $$lib; then \
+- echo " $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib"; \
+- $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib; \
++ echo " $(INSTALL_DATA) $$lib $(DESTDIR)$(libdir)/$$lib"; \
++ $(INSTALL_DATA) $$lib $(DESTDIR)$(libdir)/$$lib; \
+ fi; \
+ fi; \
+ fi; \
+ done
++ @mkdir -p $(DESTDIR)$(pkglibdir)
+ @list='$(PKG_TCL_SOURCES)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ destp=`basename $$p`; \
diff --git a/dev-tcltk/tdom/files/tdom-0.8.3-expat.patch b/dev-tcltk/tdom/files/tdom-0.8.3-expat.patch
new file mode 100644
index 000000000000..818850bd8eee
--- /dev/null
+++ b/dev-tcltk/tdom/files/tdom-0.8.3-expat.patch
@@ -0,0 +1,84 @@
+diff --git a/configure.in b/configure.in
+index 8e634f2..d9999cf 100644
+--- a/configure.in
++++ b/configure.in
+@@ -72,6 +72,7 @@ AC_CHECK_FUNCS(memmove bcopy)
+ #--------------------------------------------------------------------
+
+ TDOM_PATH_AOLSERVER
++TDOM_PATH_EXPAT
+
+ #-----------------------------------------------------------------------
+ # __CHANGE__
+@@ -83,10 +84,7 @@ TDOM_PATH_AOLSERVER
+ # and PKG_TCL_SOURCES.
+ #-----------------------------------------------------------------------
+
+-TEA_ADD_SOURCES([expat/xmlrole.c \
+- expat/xmltok.c \
+- expat/xmlparse.c \
+- generic/xmlsimple.c \
++TEA_ADD_SOURCES([generic/xmlsimple.c \
+ generic/utf8conv.c \
+ generic/dom.c \
+ generic/domhtml.c \
+@@ -99,7 +97,7 @@ TEA_ADD_SOURCES([expat/xmlrole.c \
+ generic/tclexpat.c \
+ generic/tdomStubInit.c])
+ TEA_ADD_HEADERS([generic/tdom.h])
+-TEA_ADD_INCLUDES([-I${srcdir}/generic -I${srcdir}/expat ${AOL_INCLUDES}])
++TEA_ADD_INCLUDES([-I${srcdir}/generic ${AOL_INCLUDES}])
+ TEA_ADD_LIBS([${AOL_LIBS}])
+ TEA_ADD_CFLAGS([])
+ TEA_ADD_STUB_SOURCES([generic/tdomStubLib.c])
+diff --git a/tdom.m4 b/tdom.m4
+index f5ecd98..fcab883 100644
+--- a/tdom.m4
++++ b/tdom.m4
+@@ -216,6 +216,46 @@ AC_DEFUN(TDOM_PATH_AOLSERVER, [
+ fi
+ ])
+
++
++AC_DEFUN(TDOM_PATH_EXPAT, [
++ AC_MSG_CHECKING([for expat])
++ AC_ARG_WITH(expat,
++ AC_HELP_STRING([--with-expat],
++ [directory with expat installation]), , [with_expat=no])
++
++ AC_CACHE_VAL(ac_cv_c_expat,[
++ case $with_expat in
++ no) ;;
++ yes)
++ for f in /usr/local /usr; do
++ if test -f "$f/include/expat.h" ; then
++ ac_cv_c_expat=`(cd $f; pwd)`
++ break
++ fi
++ done
++ ;;
++ *)
++ if test -f "$with_expat/include/expat.h"; then
++ ac_cv_c_expat=`(cd $with_expat; pwd)`
++ else
++ AC_MSG_ERROR([${with_expat} directory doesn't contain expat.h])
++ fi
++ esac
++ ])
++ if test x"${ac_cv_c_expat}" = x ; then
++ AC_MSG_RESULT([using local copy])
++ TEA_ADD_SOURCES([expat/xmlrole.c \
++ expat/xmltok.c \
++ expat/xmlparse.c])
++ TEA_ADD_INCLUDES([-I${srcdir}/expat])
++ else
++ AC_MSG_RESULT([${ac_cv_c_expat}])
++ TEA_ADD_INCLUDES(${ac_cv_c_expat}/include)
++ TEA_ADD_LIBS([-lexpat])
++ fi
++])
++
++
+ #------------------------------------------------------------------------
+ # TDOM_PATH_CONFIG --
+ #
diff --git a/dev-tcltk/tdom/files/tdom-0.8.3-soname.patch b/dev-tcltk/tdom/files/tdom-0.8.3-soname.patch
new file mode 100644
index 000000000000..f742f6e7f5a1
--- /dev/null
+++ b/dev-tcltk/tdom/files/tdom-0.8.3-soname.patch
@@ -0,0 +1,26 @@
+diff --git a/Makefile.in b/Makefile.in
+index d995328..5c17e11 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -108,7 +108,7 @@ CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
+ CFLAGS_WARNING = @CFLAGS_WARNING@
+ CLEANFILES = @CLEANFILES@
+ EXEEXT = @EXEEXT@
+-LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@
++LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@ -Wl,-soname,libtdom$(PACKAGE_VERSION).so
+ MAKE_LIB = @MAKE_LIB@
+ MAKE_SHARED_LIB = @MAKE_SHARED_LIB@
+ MAKE_STATIC_LIB = @MAKE_STATIC_LIB@
+diff --git a/extensions/tnc/Makefile.in b/extensions/tnc/Makefile.in
+index f8a332c..01e0ef0 100644
+--- a/extensions/tnc/Makefile.in
++++ b/extensions/tnc/Makefile.in
+@@ -98,7 +98,7 @@ CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
+ CFLAGS_WARNING = @CFLAGS_WARNING@
+ CLEANFILES = @CLEANFILES@
+ EXEEXT = @EXEEXT@
+-LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@
++LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@ -Wl,-soname,libtnc$(PACKAGE_VERSION).so
+ MAKE_LIB = @MAKE_LIB@
+ MAKE_SHARED_LIB = @MAKE_SHARED_LIB@
+ MAKE_STATIC_LIB = @MAKE_STATIC_LIB@
diff --git a/dev-tcltk/tdom/files/tdom-0.8.3-tcl8.6.patch b/dev-tcltk/tdom/files/tdom-0.8.3-tcl8.6.patch
new file mode 100644
index 000000000000..5a805931ca31
--- /dev/null
+++ b/dev-tcltk/tdom/files/tdom-0.8.3-tcl8.6.patch
@@ -0,0 +1,21 @@
+ generic/tcldom.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/generic/tcldom.c b/generic/tcldom.c
+index 91d98c9..0f024b3 100644
+--- a/generic/tcldom.c
++++ b/generic/tcldom.c
+@@ -5933,8 +5933,13 @@ int tcldom_EvalLocked (
+ ret = Tcl_EvalObj(interp, objv[2]);
+ if (ret == TCL_ERROR) {
+ char msg[64 + TCL_INTEGER_SPACE];
++ #if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf(msg, "\n (\"%s %s\" body line %d)", Tcl_GetString(objv[0]),
+ Tcl_GetString(objv[1]), interp->errorLine);
++ #else
++ sprintf(msg, "\n (\"%s %s\" body line %d)", Tcl_GetString(objv[0]),
++ Tcl_GetString(objv[1]), Tcl_GetErrorLine(interp));
++ #endif
+ Tcl_AddErrorInfo(interp, msg);
+ }
+
diff --git a/dev-tcltk/tdom/metadata.xml b/dev-tcltk/tdom/metadata.xml
new file mode 100644
index 000000000000..15cec3cf4c63
--- /dev/null
+++ b/dev-tcltk/tdom/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tcltk</herd>
+ <longdescription>
+tDOM combines high performance XML data processing with easy and
+powerful Tcl scripting functionality. tDOM should be one of the fastest
+ways to manipulate XML with a scripting language and uses very few
+memory: for example, the DOM tree of the XML recommendation in XML
+(160K) needs only about 450K of memory.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-tcltk/tdom/tdom-0.8.3-r4.ebuild b/dev-tcltk/tdom/tdom-0.8.3-r4.ebuild
new file mode 100644
index 000000000000..3ba43ee8a0e2
--- /dev/null
+++ b/dev-tcltk/tdom/tdom-0.8.3-r4.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools eutils flag-o-matic multilib toolchain-funcs
+
+MY_P="tDOM-${PV}"
+
+DESCRIPTION="A XML/DOM/XPath/XSLT Implementation for Tcl"
+HOMEPAGE="http://tdom.github.com/"
+#SRC_URI="http://cloud.github.com/downloads/tDOM/${PN}/${MY_P}.tgz"
+SRC_URI="mirror://github/tDOM/${PN}/${MY_P}.tgz"
+
+LICENSE="MPL-1.1"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ~ppc x86 ~amd64-linux ~x86-linux"
+IUSE="static-libs threads"
+
+DEPEND="
+ dev-lang/tcl:0=
+ dev-libs/expat"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/"${PN}-0.8.2.patch
+ "${FILESDIR}/"${P}-soname.patch
+ "${FILESDIR}/"${P}-expat.patch
+ "${FILESDIR}/"${PN}-0.8.2-tnc.patch
+ "${FILESDIR}/"${P}-tcl8.6.patch
+ )
+
+src_prepare() {
+ tc-export AR
+ append-libs -lm
+ sed \
+ -e 's:-O2::g' \
+ -e 's:-pipe::g' \
+ -e 's:-fomit-frame-pointer::g' \
+ -e '/SHLIB_LD_LIBS/s:\"$: ${TCL_LIB_FLAG}":g' \
+ -i {.,extensions/tnc}/configure tclconfig/tcl.m4 || die
+ epatch "${PATCHES[@]}"
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable threads)
+ --enable-shared
+ --disable-tdomalloc
+ --with-expat
+ --with-tcl="${EPREFIX}"/usr/$(get_libdir)
+ )
+
+ cd "${S}"/unix && ECONF_SOURCE=".." econf ${myeconfargs}
+ cd "${S}"/extensions/tdomhtml && econf ${myeconfargs}
+ cd "${S}"/extensions/tnc && econf ${myeconfargs}
+}
+
+src_compile() {
+ local dir
+
+ for dir in "${S}"/unix "${S}"/extensions/tnc; do
+ pushd ${dir} > /dev/null
+ emake
+ popd > /dev/null
+ done
+}
+
+src_install() {
+ local dir
+
+ dodoc CHANGES ChangeLog README*
+
+ for dir in "${S}"/unix "${S}"/extensions/tdomhtml "${S}"/extensions/tnc; do
+ pushd ${dir} > /dev/null
+ emake DESTDIR="${D}" install
+ popd > /dev/null
+ done
+
+ if ! use static-libs; then
+ einfo "Removing static libs ..."
+ rm -f "${ED}"/usr/$(get_libdir)/*.{a,la} || die
+ fi
+}