You are viewing a plain text version of this content. The canonical link for it is here.
Posted to triplesoup-commits@incubator.apache.org by dr...@apache.org on 2007/04/30 17:20:20 UTC

svn commit: r533810 - in /incubator/triplesoup/code/trunk: ./ build/ include/ include/rdfstore/ perl/ perl/rdfstore/

Author: dreid
Date: Mon Apr 30 10:20:18 2007
New Revision: 533810

URL: http://svn.apache.org/viewvc?view=rev&rev=533810
Log:
This commits adds in the start of RDFStore. It attempts to simplify
and fully integrate the build system that RDFStore arrived with.

Basically, configure will generate the Makefile.PL we need and then run
perl Makefile.PL in the correct directory to get us to a point
where make should simply build things. That's the theory. The practise
is that it builds the makefile, but make will fail. I suspect this is
related to the DBMS issue, but as I'm not sure how that should be solved,
I'm committing this to make sure folks are aware of where I'm at and where
I've been heading :-)

Maybe someone more familiar with the code can look at it and correct
the inevitable errors :-)


Added:
    incubator/triplesoup/code/trunk/build/dbm.m4
    incubator/triplesoup/code/trunk/include/rdfstore/
    incubator/triplesoup/code/trunk/include/rdfstore/backend_bdb_store.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/backend_bdb_store.h
    incubator/triplesoup/code/trunk/include/rdfstore/backend_bdb_store_private.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/backend_bdb_store_private.h
    incubator/triplesoup/code/trunk/include/rdfstore/backend_caching_store.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/backend_caching_store.h
    incubator/triplesoup/code/trunk/include/rdfstore/backend_dbms_store.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/backend_dbms_store.h
    incubator/triplesoup/code/trunk/include/rdfstore/backend_dbms_store_private.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/backend_dbms_store_private.h
    incubator/triplesoup/code/trunk/include/rdfstore/backend_store.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/backend_store.h
    incubator/triplesoup/code/trunk/include/rdfstore/fraenkel_compress.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/fraenkel_compress.h
    incubator/triplesoup/code/trunk/include/rdfstore/my_compress.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/my_compress.h
    incubator/triplesoup/code/trunk/include/rdfstore/ppport.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/ppport.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_ap_sha1.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_ap_sha1.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_bits.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_bits.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_compress.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_compress.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_digest.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_digest.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_flat_store.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_flat_store.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_flat_store_private.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_flat_store_private.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_iterator.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_iterator.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_log.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_log.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_ms.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_ms.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_serializer.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_serializer.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_utf8.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_utf8.h
    incubator/triplesoup/code/trunk/include/rdfstore/rdfstore_xsd.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/rdfstore_xsd.h
    incubator/triplesoup/code/trunk/include/rdfstore/sflcomp.h
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/include/sflcomp.h
    incubator/triplesoup/code/trunk/perl/
    incubator/triplesoup/code/trunk/perl/rdfstore/   (with props)
    incubator/triplesoup/code/trunk/perl/rdfstore/Makefile.PL.in
    incubator/triplesoup/code/trunk/perl/rdfstore/RDFStore.pm
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/RDFStore.pm
    incubator/triplesoup/code/trunk/perl/rdfstore/RDFStore.xs
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/RDFStore.xs
    incubator/triplesoup/code/trunk/perl/rdfstore/backend_bdb_store.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/backend_bdb_store.c
    incubator/triplesoup/code/trunk/perl/rdfstore/backend_caching_store.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/backend_caching_store.c
    incubator/triplesoup/code/trunk/perl/rdfstore/backend_dbms_store.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/backend_dbms_store.c
    incubator/triplesoup/code/trunk/perl/rdfstore/fraenkel_compress.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/fraenkel_compress.c
    incubator/triplesoup/code/trunk/perl/rdfstore/my_compress.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/my_compress.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_ap_sha1.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_ap_sha1.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_bits.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_bits.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_compress.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_compress.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_digest.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_digest.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_flat_store.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_flat_store.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_iterator.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_iterator.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_kernel.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_kernel.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_log.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_log.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_serializer.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_serializer.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_utf8.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_utf8.c
    incubator/triplesoup/code/trunk/perl/rdfstore/rdfstore_xsd.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/rdfstore_xsd.c
    incubator/triplesoup/code/trunk/perl/rdfstore/sflcomp.c
      - copied unchanged from r531091, incubator/triplesoup/donations/TRIPLES-3-RDFStore/sflcomp.c
Modified:
    incubator/triplesoup/code/trunk/Makefile
    incubator/triplesoup/code/trunk/configure.ac
    incubator/triplesoup/code/trunk/include/config.h.in

Modified: incubator/triplesoup/code/trunk/Makefile
URL: http://svn.apache.org/viewvc/incubator/triplesoup/code/trunk/Makefile?view=diff&rev=533810&r1=533809&r2=533810
==============================================================================
--- incubator/triplesoup/code/trunk/Makefile (original)
+++ incubator/triplesoup/code/trunk/Makefile Mon Apr 30 10:20:18 2007
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-DIRS=libraries modules bin
+DIRS=libraries modules bin perl/rdfstore
 
 all:	
 	@for d in $(DIRS); do                                          \

Added: incubator/triplesoup/code/trunk/build/dbm.m4
URL: http://svn.apache.org/viewvc/incubator/triplesoup/code/trunk/build/dbm.m4?view=auto&rev=533810
==============================================================================
--- incubator/triplesoup/code/trunk/build/dbm.m4 (added)
+++ incubator/triplesoup/code/trunk/build/dbm.m4 Mon Apr 30 10:20:18 2007
@@ -0,0 +1,585 @@
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl Copyright 2007 The Apache Software Foundation or its licensors, 
+dnl as applicable.
+dnl
+dnl Licensed under the Apache License, Version 2.0 (the "License");
+dnl you may not use this file except in compliance with the License.
+dnl You may obtain a copy of the License at
+dnl
+dnl     http://www.apache.org/licenses/LICENSE-2.0
+dnl
+dnl Unless required by applicable law or agreed to in writing, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+
+dnl The standard places we expect to find Berkeley DB installed.
+dnl The original version of this code didn't have the same requirement.
+std_dirs="/usr /usr/local /boot/home/config"
+
+dnl   TS_LIB_BERKELEY_DB(major, minor, patch, places, headers, libnames)
+dnl
+dnl   Search for a useable version of Berkeley DB in a number of
+dnl   common places.  The installed DB must be no older than the
+dnl   version given by MAJOR, MINOR, and PATCH.  All of these
+dnl   arguments are allowed to be '-1', indicating we don't care.
+dnl   PLACES is a list of places to search for a Berkeley DB
+dnl   installation.  HEADERS is a list of headers to try.  LIBNAMES
+dnl   is a list of names of the library to attempt to link against,
+dnl   typically 'db' and 'db4'.
+dnl
+dnl   If we find a useable version, set CPPFLAGS and LIBS as
+dnl   appropriate, and set the shell variable `ts_have_db' to
+dnl   `1', and ts_db_lib to the matching lib name, and ts_db_header
+dnl   to the header to use.  Otherwise, set `ts_have_db' to `0'.
+dnl
+dnl   This macro also checks for the `--with-berkeley-db=PATH' flag;
+dnl   if given, the macro will use the PATH specified, and the
+dnl   configuration script will die if it can't find the library.  If
+dnl   the user gives the `--without-berkeley-db' flag, the entire
+dnl   search is skipped.
+dnl
+dnl   We cache the results of individual searches under particular
+dnl   prefixes, not the overall result of whether we found Berkeley
+dnl   DB.  That way, the user can re-run the configure script with
+dnl   different --with-berkeley-db switch values, without interference
+dnl   from the cache.
+
+
+AC_DEFUN([TS_CHECK_BERKELEY_DB], [
+  bdb_version=$1
+  if test "$2" != "-1"; then
+    bdb_version="$bdb_version.$2"
+    if test "$3" != "-1"; then
+      bdb_version="$bdb_version.$3"
+    fi
+  fi
+  bdb_places=$4
+  bdb_default_search_headers=$5
+  bdb_default_search_lib_names=$6
+
+  ts_have_db=0
+
+  # Save the original values of the flags we tweak.
+  ts_check_lib_save_libs="$LIBS"
+  ts_check_lib_save_ldflags="$LDFLAGS"
+  ts_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$ts_check_lib_save_ldflags"
+    CPPFLAGS="$ts_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "$std_dirs" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place && test -d $bdb_place/lib &&
+           test -d $bdb_place/include; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          AC_MSG_CHECKING([for Berkeley DB $bdb_version in $bdb_place])
+          AC_MSG_RESULT([directory not found])
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    AC_MSG_CHECKING([for Berkeley DB $bdb_version in $description])
+    AC_MSG_RESULT()
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+        changequote(,)
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+        changequote([,])
+        unset $cache_id
+        AC_CHECK_HEADER([$bdb_header], [
+          if test "$1" = "3" -o "$1" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+            changequote(,)
+            cache_id="`echo ts_cv_check_berkeley_db_$1_$2_$3_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+            changequote([,])
+
+            AC_MSG_CHECKING([for -l$bdb_libname])
+            dnl We can't use AC_CACHE_CHECK here, because that won't print out
+            dnl the value of the computed cache variable properly.
+            AC_CACHE_VAL($cache_id,
+              [
+                TS_TRY_BERKELEY_DB($1, $2, $3, $bdb_header, $bdb_libname)
+                eval "$cache_id=$ts_try_berkeley_db"
+              ])
+            result="`eval echo '$'$cache_id`"
+            AC_MSG_RESULT($result)
+          elif test "$1" = "1"; then
+            AC_CHECK_LIB($bdb_libname,
+              dbopen,
+              [result=yes],
+              [result=no]
+            )
+          elif test "$1" = "2"; then
+            AC_CHECK_LIB($bdb_libname,
+              db_open,
+              [result=yes],
+              [result=no]
+            )
+          fi
+        ], [result="no"])
+        
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$ts_check_lib_save_ldflags"
+  CPPFLAGS="$ts_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    ts_have_db=0
+    ;;
+  "$std_dirs")
+    ts_db_dir=$found
+    ts_db_header=$bdb_header
+    ts_db_lib=$bdb_libname
+    ts_have_db=1
+    ;;
+  *":"*)
+    ts_bdb_dir=$found
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+    ts_db_header=$bdb_header
+    ts_db_lib=$bdb_libname
+    ts_have_db=1
+    ;;
+  *)
+    ts_db_dir=$found
+    ts_db_header=$bdb_header
+    ts_db_lib=$bdb_libname
+    ts_have_db=1
+    ;;
+  esac
+])
+
+
+dnl   TS_TRY_BERKELEY_DB(major, minor, patch, header, libname)
+dnl
+dnl   A subroutine of TS_CHECK_BERKELEY_DB.
+dnl
+dnl   Check that a new-enough version of Berkeley DB is installed.
+dnl   "New enough" means no older than the version given by MAJOR,
+dnl   MINOR, and PATCH.  The result of the test is not cached; no
+dnl   messages are printed.  Use HEADER as the header file to include.
+dnl   Use LIBNAME as the library to link against.
+dnl   (e.g. LIBNAME should usually be "db" or "db4".)
+dnl
+dnl   Set the shell variable `ts_try_berkeley_db' to `yes' if we found
+dnl   an appropriate version installed, or `no' otherwise.
+dnl
+dnl   This macro uses the Berkeley DB library function `db_version' to
+dnl   find the version.  If the library installed doesn't have this
+dnl   function, then this macro assumes it is too old.
+
+dnl   NOTE: This is pretty messed up.  It seems that the FreeBSD port of
+dnl   Berkeley DB 4 puts the header file in /usr/local/include/db4, but the
+dnl   database library in /usr/local/lib, as libdb4.[a|so].  There is no
+dnl   /usr/local/include/db.h.  So if you check for /usr/local first, you'll
+dnl   get the old header file from /usr/include, and the new library from
+dnl   /usr/local/lib.  Disaster.  Thus this test compares the version constants
+dnl   in the db.h header with the ones returned by db_version().
+
+
+AC_DEFUN([TS_TRY_BERKELEY_DB],
+  [
+    ts_try_berkeley_db_save_libs="$LIBS"
+
+    ts_check_berkeley_db_major=$1
+    ts_check_berkeley_db_minor=$2
+    ts_check_berkeley_db_patch=$3
+    ts_try_berkeley_db_header=$4
+    ts_try_berkeley_db_libname=$5
+
+    LIBS="$LIBS -l$ts_try_berkeley_db_libname"
+    AC_TRY_RUN(
+      [
+#include <stdio.h>
+#include <$ts_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($ts_check_berkeley_db_major != -1) {
+    if (major < $ts_check_berkeley_db_major)
+      exit (1);
+    if (major > $ts_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($ts_check_berkeley_db_minor != -1) {
+    if (minor < $ts_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $ts_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($ts_check_berkeley_db_patch == -1
+      || patch >= $ts_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+      ],
+      [ts_try_berkeley_db=yes],
+      [ts_try_berkeley_db=no],
+      [ts_try_berkeley_db=yes]
+    )
+
+    LIBS="$ts_try_berkeley_db_save_libs"
+  ]
+)
+
+
+dnl
+dnl TS_CHECK_DB1: is DB1 present?
+dnl
+dnl if present: sets ts_db_header, ts_db_lib, and ts_db_version
+dnl
+AC_DEFUN([TS_CHECK_DB1], [
+  places=$1
+  if test -z "$places"; then
+    places="$std_dirs"
+  fi
+  TS_CHECK_BERKELEY_DB(1, 0, 0,
+    "$places",
+    "db1/db.h db.h",
+    "db1"
+  )
+  if test "$ts_have_db" = "1"; then
+    ts_db_version=1
+  fi
+])
+
+
+dnl
+dnl TS_CHECK_DB185: is DB1.85 present?
+dnl
+dnl if present: sets ts_db_header, ts_db_lib, and ts_db_version
+dnl
+dnl NB: BerkelyDB v2 and above can be compiled in 1.85 mode
+dnl which has a libdb not libdb1 or libdb185
+AC_DEFUN([TS_CHECK_DB185], [
+  places=$1
+  if test -z "$places"; then
+    places="$std_dirs"
+  fi
+  TS_CHECK_BERKELEY_DB(1, -1, -1,
+    "$places",
+    "db_185.h",
+    "db"
+  )
+  if test "$ts_have_db" = "1"; then
+    ts_db_version=185
+  fi
+])
+
+
+dnl
+dnl TS_CHECK_DB2: is DB2 present?
+dnl
+dnl if present: sets ts_db_header, ts_db_lib, and ts_db_version
+dnl
+AC_DEFUN([TS_CHECK_DB2], [
+  places=$1
+  if test -z "$places"; then
+    places="$std_dirs"
+  fi
+  TS_CHECK_BERKELEY_DB(2, -1, -1,
+    "$places",
+    "db2/db.h db.h",
+    "db2 db"
+  )
+  if test "$ts_have_db" = "1"; then
+    ts_db_version=2
+  fi
+])
+
+
+dnl
+dnl TS_CHECK_DB3: is DB3 present?
+dnl
+dnl if present: sets ts_db_header, ts_db_lib, and ts_db_version
+dnl
+AC_DEFUN([TS_CHECK_DB3], [
+  places=$1
+  if test -z "$places"; then
+    places="$std_dirs"
+  fi
+  TS_CHECK_BERKELEY_DB(3, -1, -1,
+    "$places",
+    "db3/db.h db.h",
+    "db3 db"
+  )
+  if test "$ts_have_db" = "1"; then
+    ts_db_version=3
+  fi
+])
+
+
+dnl
+dnl TS_CHECK_DB4: is DB4 present?
+dnl
+dnl if present: sets ts_db_header, ts_db_lib, and ts_db_version
+dnl
+AC_DEFUN([TS_CHECK_DB4], [
+  places=$1
+  if test -z "$places"; then
+    places="$std_dirs /usr/local/BerkeleyDB.4.0"
+  fi
+  TS_CHECK_BERKELEY_DB("4", "0", "-1",
+    "$places",
+    "db4/db.h db.h",
+    "db-4.0 db4 db"
+  )
+  if test "$ts_have_db" = "1"; then
+    ts_db_version=4
+  fi
+])
+
+
+dnl
+dnl TS_CHECK_DB41: is DB4.1 present?
+dnl
+dnl if present: sets ts_db_header, ts_db_lib, and ts_db_version
+dnl
+AC_DEFUN([TS_CHECK_DB41], [
+  places=$1
+  if test -z "$places"; then
+    places="$std_dirs /usr/local/BerkeleyDB.4.1 /boot/home/config"
+  fi
+  TS_CHECK_BERKELEY_DB("4", "1", "-1",
+    "$places",
+    "db41/db.h db4/db.h db.h",
+    "db-4.1 db41 db4 db"
+  )
+  if test "$ts_have_db" = "1"; then
+    ts_db_version=4
+  fi
+])
+
+
+dnl
+dnl TS_CHECK_DB42: is DB4.2 present?
+dnl
+dnl if present: sets ts_db_header, ts_db_lib, and ts_db_version
+dnl
+AC_DEFUN([TS_CHECK_DB42], [
+  places=$1
+  if test -z "$places"; then
+    places="$std_dirs /usr/local/BerkeleyDB.4.2"
+  fi
+  TS_CHECK_BERKELEY_DB("4", "2", "-1",
+    "$places",
+    "db42/db.h db4/db.h db.h",
+    "db-4.2 db42 db4 db"
+  )
+  if test "$ts_have_db" = "1"; then
+    ts_db_version=4
+  fi
+])
+dnl
+dnl TS_CHECK_DB43: is DB4.3 present?
+dnl
+dnl if present: sets ts_db_header, ts_db_lib, and ts_db_version
+dnl
+AC_DEFUN([TS_CHECK_DB43], [
+  places=$1
+  if test -z "$places"; then
+    places="$std_dirs /usr/local/BerkeleyDB.4.3"
+  fi
+  TS_CHECK_BERKELEY_DB("4", "3", "-1",
+    "$places",
+    "db43/db.h db4/db.h db.h",
+    "db-4.3 db4-4.3 db43 db4 db"
+  )
+  if test "$ts_have_db" = "1"; then
+    ts_db_version=4
+  fi
+])
+dnl
+dnl TS_CHECK_DB44: is DB4.4 present?
+dnl
+dnl if present: sets ts_db_header, ts_db_lib, and ts_db_version
+dnl
+AC_DEFUN([TS_CHECK_DB44], [
+  places=$1
+  if test -z "$places"; then
+    places="$std_dirs /usr/local/BerkeleyDB.4.4"
+  fi
+  TS_CHECK_BERKELEY_DB("4", "4", "-1",
+    "$places",
+    "db44/db.h db4/db.h db.h",
+    "db-4.4 db4-4.4 db44 db4 db"
+  )
+  if test "$ts_have_db" = "1"; then
+    ts_db_version=4
+  fi
+])
+dnl
+dnl TS_CHECK_DB45: is DB4.5 present?
+dnl
+dnl if present: sets ts_db_header, ts_db_lib, and ts_db_version
+dnl
+AC_DEFUN([TS_CHECK_DB45], [
+  places=$1
+  if test -z "$places"; then
+    places="$std_dirs /usr/local/BerkeleyDB.4.5"
+  fi
+  TS_CHECK_BERKELEY_DB("4", "5", "-1",
+    "$places",
+    "db45/db.h db4/db.h db.h",
+    "db-4.5 db4-4.5 db45 db4 db"
+  )
+  if test "$ts_have_db" = "1"; then
+    ts_db_version=4
+  fi
+])
+
+dnl
+dnl TS_CHECK_DB_ALL: Try all Berkeley DB versions
+dnl
+AC_DEFUN([TS_CHECK_DB_ALL], [
+  all_places=$1
+ 
+  TS_CHECK_DB45("$all_places")
+  if test "$ts_db_version" != "4"; then
+    TS_CHECK_DB44("$all_places")
+    if test "$ts_db_version" != "4"; then
+      TS_CHECK_DB43("$all_places")
+      if test "$ts_db_version" != "4"; then
+        TS_CHECK_DB42("$all_places")
+        if test "$ts_db_version" != "4"; then
+          TS_CHECK_DB41("$all_places")
+          if test "$ts_db_version" != "4"; then
+            TS_CHECK_DB4("$all_places")
+            if test "$ts_db_version" != "4"; then
+              TS_CHECK_DB3("$all_places")
+              if test "$ts_db_version" != "3"; then
+                TS_CHECK_DB2("$all_places")
+                if test "$ts_db_version" != "2"; then
+                  TS_CHECK_DB1("$all_places")
+                  if test "$ts_db_version" != "1"; then
+                    TS_CHECK_DB185("$all_places")
+                  fi
+                fi
+              fi
+            fi
+          fi
+        fi
+      fi
+    fi
+  fi
+  AC_MSG_CHECKING(for Berkeley DB)
+  if test "$ts_have_db" = "1"; then
+    AC_MSG_RESULT(found db$ts_db_version)
+  else
+    AC_MSG_RESULT(not found)
+  fi
+])
+
+
+dnl
+dnl TS_FIND_BERKELEY_DB: find the highest version of Berkeley DB available
+dnl                       on the system. This is needed for RDFStore.
+dnl
+AC_DEFUN([TS_FIND_BERKELEY_DB], [
+  ts_have_db=0
+  user_places=''
+
+  ts_db_header=db.h
+  ts_db_version=0
+  ts_db_dir=''
+
+  if test -n "$ts_db_xtra_libs"; then
+    saveddbxtralibs="$LIBS"
+    LIBS="$ts_db_xtra_libs $LIBS"
+  fi
+
+  AC_MSG_RESULT(Looking for Berkeley DB...)
+
+  dnl We're going to try to find the highest version of Berkeley DB supported.
+  AC_ARG_WITH([berkeley-db],
+      [  --with-berkeley-db=PATH Find the Berkeley DB header and library in
+                          `PATH/include' and `PATH/lib'.  If PATH is 
+                          of the form `HEADER:LIB', then search
+                          for header files in HEADER, and the library 
+                          in LIB.  If you omit the `=PATH' part completely, 
+                          the configure script will search for Berkeley DB
+                          in a number of standard places.] ,
+      [
+        user_places="$withval"
+      ])
+
+  if test -n "$user_places"; then
+    TS_CHECK_DB_ALL()
+  else
+    TS_CHECK_DB_ALL($user_places)
+  fi
+
+  if test "$ts_have_db" = "0"; then
+    AC_ERROR(Berkeley DB not found.)
+  fi
+
+  if test -n "$ts_db_xtra_libs"; then
+    LIBS="$saveddbxtralibs"
+  fi
+
+  dnl Yes, it'd be nice if we could collate the output in an order
+  dnl so that the AC_MSG_CHECKING would be output before the actual
+  dnl checks, but it isn't happening now.
+  AC_MSG_CHECKING(Berkeley DB version)
+  AC_MSG_RESULT($ts_db_version)
+
+  AC_SUBST(ts_db_dir)
+  AC_SUBST(ts_db_lib)
+  AC_SUBST(ts_db_version)
+])
+

Modified: incubator/triplesoup/code/trunk/configure.ac
URL: http://svn.apache.org/viewvc/incubator/triplesoup/code/trunk/configure.ac?view=diff&rev=533810&r1=533809&r2=533810
==============================================================================
--- incubator/triplesoup/code/trunk/configure.ac (original)
+++ incubator/triplesoup/code/trunk/configure.ac Mon Apr 30 10:20:18 2007
@@ -25,6 +25,7 @@
 # dnl include our homebrew scripts
 sinclude(build/apache2.m4)
 sinclude(build/redland.m4)
+sinclude(build/dbm.m4)
 
 srcdir=`pwd`
 topdir=`pwd`
@@ -33,6 +34,7 @@
 A_EXT=a
 ARFLAGS="-ar"
 CFLAGS="-Wall -O2"
+OBJ_EXT=o
 PICFLAGS="-fPIC -DPIC"
 SO_EXT=so
 SO_FLAGS=-shared
@@ -62,6 +64,7 @@
 
 TS_CHECK_APACHE2
 TS_CHECK_REDLAND
+TS_FIND_BERKELEY_DB
 
 AC_SUBST(topdir)
 AC_SUBST(A_EXT)
@@ -69,6 +72,7 @@
 AC_SUBST(ARFLAGS)
 AC_SUBST(CFLAGS)
 AC_SUBST(LDFLAGS)
+AC_SUBST(OBJ_EXT)
 AC_SUBST(PICFLAGS)
 AC_SUBST(REDLAND)
 AC_SUBST(SO_EXT)
@@ -77,6 +81,10 @@
 AC_CONFIG_FILES([bin/b/Makefile
 		 build/rules.mk
                  libraries/b/Makefile
-		 modules/sparql/Makefile])
+		 modules/sparql/Makefile
+		 perl/rdfstore/Makefile.PL])
 
 AC_OUTPUT
+
+(cd perl/rdfstore && perl Makefile.PL)
+

Modified: incubator/triplesoup/code/trunk/include/config.h.in
URL: http://svn.apache.org/viewvc/incubator/triplesoup/code/trunk/include/config.h.in?view=diff&rev=533810&r1=533809&r2=533810
==============================================================================
--- incubator/triplesoup/code/trunk/include/config.h.in (original)
+++ incubator/triplesoup/code/trunk/include/config.h.in Mon Apr 30 10:20:18 2007
@@ -1,5 +1,32 @@
 /* include/config.h.in.  Generated from configure.ac by autoheader.  */
 
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
 /* Define to the address where bug reports for this package should be sent. */
 #undef PACKAGE_BUGREPORT
 
@@ -14,3 +41,6 @@
 
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS

Propchange: incubator/triplesoup/code/trunk/perl/rdfstore/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Apr 30 10:20:18 2007
@@ -0,0 +1,6 @@
+blib
+Makefile.PL
+Makefile
+*.xsc
+*.bs
+pm_to_blib

Added: incubator/triplesoup/code/trunk/perl/rdfstore/Makefile.PL.in
URL: http://svn.apache.org/viewvc/incubator/triplesoup/code/trunk/perl/rdfstore/Makefile.PL.in?view=auto&rev=533810
==============================================================================
--- incubator/triplesoup/code/trunk/perl/rdfstore/Makefile.PL.in (added)
+++ incubator/triplesoup/code/trunk/perl/rdfstore/Makefile.PL.in Mon Apr 30 10:20:18 2007
@@ -0,0 +1,185 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+use strict;
+use ExtUtils::MakeMaker 5.16 qw(WriteMakefile prompt);
+use Config;
+
+die "RDFStore needs Perl 5.004_05 or better. This is $]\n" 
+    if $] <= 5.00404;
+
+$| = 1;
+
+# check required modules
+my %missing_modules=();
+print "Checking for URI..............";
+eval {
+        require URI;
+        URI->VERSION(1.09);
+	};
+if ($@) {
+    print " missing - The URI module is required\n";
+    $missing_modules{'URI'}=1;
+} else {
+    print " ok\n";
+	};
+
+print "Checking for DBI..............";
+eval {
+        require DBI;
+	};
+if ($@) {
+    print " missing - You need the DBI module to run RDQL/Squish queries; without it only API based triple-match will be possible\n";
+    $missing_modules{'DBI'}=1;
+} else {
+    print " ok\n";
+	};
+
+# Some of this configurations are coming from the DB_File Makefile.PL extension written by Paul Marquess <Pa...@btinternet.com>
+print "Checking for XML::Parser......";
+eval {
+	require XML::Parser;
+	require XML::Parser::Expat;
+	XML::Parser->VERSION(2.00);
+	};
+if ($@) {
+    print " missing - XML::Parser module version 2 or higher is required\n";
+    $missing_modules{'XML::Parser'}=1;
+} else {
+    	print " ok\n\n";
+	warn qq|WARNING:
+
+	You have installed a recent version of the XML::Parser (>2.29) with built in expat XML parser support. 
+	If you are going to use RDFStore inside the Apache Web server using mod_perl, bear in mind that there 
+	is a symbol conflict between XML::Parser and apache when built with expat. To properly use the RDFStore 
+	parsing modules you need to rebuilt apache disabling expat (use --disable-rule=EXPAT while building your
+	apache-1.3.xx + mod_perl)
+
+|
+		if($XML::Parser::VERSION gt '2.29');
+	};
+
+if(     (exists $missing_modules{'XML::Parser'}) ||
+        (exists $missing_modules{'DBI'}) ||
+        (exists $missing_modules{'URI'}) ) {
+        print "\nSorry, can not build RDFStore :(\nPlease installed the missing modules above and try again.\n\n";
+        exit;
+	};
+
+
+my $PLATFORM = " -DRDFSTORE_PLATFORM_" . uc($^O);
+my ($LIB_DIR,$INC_DIR,$DB_NAME,$LIBS,$COMPAT185,$DB,$DBMS_INSTDIR);
+my %options = map { $_, 1 } qw( INCLUDE LIB DBNAME DBMS_INSTDIR RDFSTORE_WORD_STEMMING RDFSTORE_MAXRECORDS );
+
+# complete the compilation parameters (precedence to %ENV settings)
+$INC_DIR = $ENV{'RDFSTORE_BDB_INCLUDE'}
+	if(defined $ENV{'RDFSTORE_BDB_INCLUDE'} and -e $ENV{'RDFSTORE_BDB_INCLUDE'} and -d _ );
+$INC_DIR = $options{'INCLUDE'}
+	if(exists $options{'INCLUDE'} and -e $options{'INCLUDE'} and -d _ );
+$LIB_DIR = $ENV{'RDFSTORE_BDB_LIB'}
+	if(defined $ENV{'RDFSTORE_BDB_LIB'} and -e $ENV{'RDFSTORE_BDB_LIB'} and -d _ );
+$LIB_DIR = $options{'LIB'}
+	if(exists $options{'LIB'} and -e $options{'LIB'} and -d _ );
+$DB_NAME = $options{'DBNAME'}
+	if(exists $options{'DBNAME'} and $options{'DBNAME'} ne '1');
+$COMPAT185 = "-DCOMPAT185 -DDB_LIBRARY_COMPATIBILITY_API"
+       	if (	(defined $ENV{'RDFSTORE_BDB_COMPAT185'}) &&
+		($ENV{'RDFSTORE_BDB_COMPAT185'} =~ /^\s*(on|true|1)\s*$/i) );
+if(exists $options{'DBMS_INSTDIR'} and -e $options{'DBMS_INSTDIR'} and -d _ ) {
+	$DBMS_INSTDIR = $options{'DBMS_INSTDIR'};
+} else {
+	$DBMS_INSTDIR = '/RDFStore';
+	};
+
+#other specific options either from enviornment or arch_conf.in
+my ($RDFSTORE_WORD_STEMMING,$RDFSTORE_MAXRECORDS);
+$RDFSTORE_WORD_STEMMING = $ENV{'RDFSTORE_WORD_STEMMING'}
+	if(defined $ENV{'RDFSTORE_WORD_STEMMING'});
+$RDFSTORE_WORD_STEMMING = $options{'RDFSTORE_WORD_STEMMING'}
+	if(exists $options{'RDFSTORE_WORD_STEMMING'});
+
+my $RDFSTORE_DEFAULT_MAXRECORDS=2097152;
+my $RDFSTORE_MIN_MAXRECORDS=128;
+my $RDFSTORE_MAX_MAXRECORDS=60000000; # 60M triples
+$RDFSTORE_MAXRECORDS = (	$ENV{'RDFSTORE_MAXRECORDS'} >= $RDFSTORE_MIN_MAXRECORDS and 
+				$ENV{'RDFSTORE_MAXRECORDS'} <= $RDFSTORE_MAX_MAXRECORDS ) ? 
+				$ENV{'RDFSTORE_MAXRECORDS'} :
+				$RDFSTORE_DEFAULT_MAXRECORDS
+	if(defined $ENV{'RDFSTORE_MAXRECORDS'});
+$RDFSTORE_MAXRECORDS = (	$options{'RDFSTORE_MAXRECORDS'} >= $RDFSTORE_MIN_MAXRECORDS and 
+				$options{'RDFSTORE_MAXRECORDS'} <= $RDFSTORE_MAX_MAXRECORDS ) ? 
+				$options{'RDFSTORE_MAXRECORDS'} :
+				$RDFSTORE_DEFAULT_MAXRECORDS
+	if(exists $options{'RDFSTORE_MAXRECORDS'});
+
+
+my $debug = ($ENV{RDFSTORE_DEBUG} =~ m/1|yes|on|enable/) ? '-DRDFSTORE_DEBUG' : '';
+my $debug_malloc = ($ENV{RDFSTORE_DEBUG_MALLOC} =~ m/1|yes|on|enable/) ? '-DRDFSTORE_DEBUG_MALLOC' : '';
+my $dbms_debug = ($ENV{RDFSTORE_DBMS_DEBUG} =~ m/1|yes|on|enable/) ? '-DRDFSTORE_DBMS_DEBUG' : '';
+my $dbms_debug_malloc = ($ENV{RDFSTORE_DBMS_DEBUG_MALLOC} =~ m/1|yes|on|enable/) ? '-DRDFSTORE_DBMS_DEBUG_MALLOC' : '';
+my $flat_store_debug = ($ENV{RDFSTORE_FLAT_STORE_DEBUG} =~ m/1|yes|on|enable/) ? '-DRDFSTORE_FLAT_STORE_DEBUG' : '';
+my $profile = ($ENV{RDFSTORE_PROFILE} =~ m/1|yes|on|enable/) ? 1 : 0;
+
+my $RDFSTORE_OPTIONS = ' -DRDFSTORE_WORD_STEMMING='.$RDFSTORE_WORD_STEMMING
+	if(defined $RDFSTORE_WORD_STEMMING);
+$RDFSTORE_OPTIONS .= ' -DRDFSTORE_MAXRECORDS='.$RDFSTORE_MAXRECORDS
+	if(defined $RDFSTORE_MAXRECORDS);
+
+#print ARCH_CONF "\n# add the include directory of your BDB installation is if not found to the bottom line\n";
+#print ARCH_CONF ($INC_DIR) ? 'INCLUDES += -I'.$INC_DIR : '#INCLUDES += -I/usr/local/BerkeleyDB-4.0.14/include';
+#print ARCH_CONF "\n\n# add the library directory of your BDB installation is if not found to the bottom line\n";
+#print ARCH_CONF 'LIBS_DIR  = -L../libdbms ' . ( ($LIB_DIR) ? ' -L'.$LIB_DIR : ' # -L/usr/local/BerkeleyDB-4.0.14/lib' ) . "\n";
+#print ARCH_CONF ( ($LIB_DIR) ? 'BDB_LD_LIBS_DIR  = '.$LIB_DIR : '#BDB_LD_LIBS_DIR = /usr/local/BerkeleyDB-4.0.14/lib' ) . "\n";
+
+#if($^O eq 'darwin') {
+#	print ARCH_CONF "UID=root\n";
+#	print ARCH_CONF "GID=wheel\n";
+#} else {
+#	print ARCH_CONF "UID=bin\n";
+#	print ARCH_CONF "GID=bin\n";
+#}
+
+#print ARCH_CONF "\n\n# uncomment the following line to use BDB 1.85 compatibility code\n";
+#print ARCH_CONF ($COMPAT185) ? 'DEFINES  += "'.$COMPAT185.'"' : '#DEFINES += " -DCOMPAT185 -DDB_LIBRARY_COMPATIBILITY_API "';
+#print ARCH_CONF "\n";
+
+#if($^O eq 'solaris') {
+#	print ARCH_CONF <<EOT;
+
+# for SOLARIS
+#LIBS += -lsocket -lnsl
+
+#EOT
+#	};
+
+WriteMakefile(
+	#DIR	=> [ 'RDFNode' ],
+    	NAME      => 'RDFStore',
+	VERSION_FROM => '@top_srcdir@/perl/rdfstore/RDFStore.pm',
+	INC             => '-I@ts_db_dir@/include -I@top_srcdir@/include/rdfstore -I.',
+	LIBS            => [ '-L@ts_db_dir@/lib -l@ts_db_lib@' ], 
+	XSPROTOARG      => '-noprototypes',
+	OPTIMIZE        => '-g',
+        PMLIBDIRS       => [ '@top_srcdir@/perl/rdfstore' ],
+	DEFINE          => " $PLATFORM -D_NOT_CORE -DSTATIC_BUFF -DSTATIC_CS_BUFF -DSTATIC_SC_BUFF -DDB@ts_db_version@_INCLUDE",
+        LDFROM    => q[RDFStore.@OBJ_EXT@ rdfstore_log.@OBJ_EXT@ rdfstore_compress.@OBJ_EXT@ rdfstore_flat_store.@OBJ_EXT@ rdfstore_iterator.@OBJ_EXT@ rdfstore_serializer.@OBJ_EXT@ rdfstore_kernel.@OBJ_EXT@ rdfstore_ap_sha1.@OBJ_EXT@ rdfstore_digest.@OBJ_EXT@ rdfstore_bits.@OBJ_EXT@ rdfstore_utf8.@OBJ_EXT@ rdfstore_xsd.@OBJ_EXT@ sflcomp.@OBJ_EXT@ my_compress.@OBJ_EXT@ fraenkel_compress.@OBJ_EXT@ backend_bdb_store.@OBJ_EXT@ backend_dbms_store.@OBJ_EXT@ backend_caching_store.@OBJ_EXT@],
+        OBJECT    => q[RDFStore.@OBJ_EXT@ rdfstore_log.@OBJ_EXT@ rdfstore_compress.@OBJ_EXT@ rdfstore_flat_store.@OBJ_EXT@ rdfstore_iterator.@OBJ_EXT@ rdfstore_serializer.@OBJ_EXT@ rdfstore_kernel.@OBJ_EXT@ rdfstore_ap_sha1.@OBJ_EXT@ rdfstore_digest.@OBJ_EXT@ rdfstore_bits.@OBJ_EXT@ rdfstore_utf8.@OBJ_EXT@ rdfstore_xsd.@OBJ_EXT@ my_compress.@OBJ_EXT@ sflcomp.@OBJ_EXT@ fraenkel_compress.@OBJ_EXT@ backend_bdb_store.@OBJ_EXT@ backend_dbms_store.@OBJ_EXT@ backend_caching_store.@OBJ_EXT@ ],
+    	'clean'     => { FILES => "y.tab.o lex.yy.o *.db" },
+	EXE_FILES    => [ "utils/rdf.pl", "utils/rdfquery.pl", "utils/rdfdump.pl" ],
+	($] ge '5.005') ? (
+                               'AUTHOR' => 'Alberto Reggiori <ar...@webweaving.org>, Dirk-Willem van Gulik <di...@webweaving.org>',
+                               'ABSTRACT' => 'Perl/C RDF storage and API',
+                           ) : ()
+);