SWIG 1.3.40, with Guile support.

svn path=/nixpkgs/trunk/; revision=17343
This commit is contained in:
Ludovic Courtès 2009-09-21 20:56:53 +00:00
parent 0dd49cdce3
commit 7b2932cd9b
3 changed files with 48 additions and 16 deletions

View File

@ -1,3 +0,0 @@
buildInputs="$perl $python $jdk"
source $stdenv/setup
genericBuild

View File

@ -1,22 +1,55 @@
{ perlSupport, pythonSupport, javaSupport
, stdenv, fetchurl, perl ? null, python ? null, jdk ? null}:
{ perlSupport, pythonSupport, javaSupport, guileSupport
, stdenv, fetchurl, boost, perl ? null, python ? null, jdk ? null
, guile ? null }:
assert perlSupport -> perl != null;
assert pythonSupport -> python != null;
assert guileSupport -> guile != null;
assert javaSupport -> jdk != null;
stdenv.mkDerivation {
name = "swig-1.3.39";
stdenv.mkDerivation rec {
name = "swig-1.3.40";
builder = ./builder.sh;
src = fetchurl {
url = mirror://sourceforge/swig/swig-1.3.39.tar.gz;
sha256 = "1p0i5c52y8d7wvn5h3qf62q5ic7kgbj2vc5dm8zy07ygff9msbdv";
url = "mirror://sourceforge/swig/${name}.tar.gz";
sha256 = "02dc8g8wy75nd2is1974rl24c6mdl0ai1vszs1xpg9nd7dlv6i8r";
};
inherit perlSupport pythonSupport javaSupport;
buildInputs = [ boost ] # Boost is used in the test suite
++ stdenv.lib.optional perlSupport perl
++ stdenv.lib.optional pythonSupport python
++ stdenv.lib.optional guileSupport guile
++ stdenv.lib.optional javaSupport jdk;
perl = if perlSupport then perl else null;
python = if pythonSupport then python else null;
jdk = if javaSupport then jdk else null;
/* The test suite fails this way:
building python_cpp
python: tpp.c:63: __pthread_tpp_change_priority: Assertion `new_prio == -1 || (new_prio >= __sched_fifo_min_prio && new_prio <= __sched_fifo_max_prio)' failed.
/bin/sh: line 1: 32101 Aborted env LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH PYTHONPATH=.:$PYTHONPATH python ./li_boost_shared_ptr_runme.py
make[1]: *** [li_boost_shared_ptr.cpptest] Error 134
This may be an uninitialized mutex or mutexattr or something.
*/
doCheck = false;
meta = {
description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages";
longDescription = ''
SWIG is an interface compiler that connects programs written in C and
C++ with languages such as Perl, Python, Ruby, Scheme, and Tcl. It
works by taking the declarations found in C/C++ header files and using
them to generate the wrapper code that scripting languages need to
access the underlying C/C++ code. In addition, SWIG provides a variety
of customization features that let you tailor the wrapping process to
suit your application.
'';
homepage = http://swig.org/;
# Licensing is a mess: http://www.swig.org/Release/LICENSE .
license = "BSD-style";
maintainers = [ stdenv.lib.maintainers.ludo ];
};
}

View File

@ -2768,9 +2768,10 @@ let
};
swig = import ../development/tools/misc/swig {
inherit fetchurl stdenv perl python;
inherit fetchurl stdenv boost perl python guile;
perlSupport = true;
pythonSupport = true;
guileSupport = true;
javaSupport = false;
};
@ -2779,9 +2780,10 @@ let
};
swigWithJava = lowPrio (appendToName "with-java" (import ../development/tools/misc/swig {
inherit fetchurl stdenv jdk;
inherit fetchurl stdenv boost jdk;
perlSupport = false;
pythonSupport = false;
guileSupport = false;
javaSupport = true;
}));