diff --git a/pkgs/development/tools/guile/g-wrap/default.nix b/pkgs/development/tools/guile/g-wrap/default.nix new file mode 100644 index 000000000000..01a1dbe72eb6 --- /dev/null +++ b/pkgs/development/tools/guile/g-wrap/default.nix @@ -0,0 +1,36 @@ +{ fetchurl, stdenv, guile, libffi, pkgconfig, glib +, guileLib }: + +stdenv.mkDerivation rec { + name = "g-wrap-1.9.11"; + src = fetchurl { + url = "mirror://savannah/g-wrap/${name}.tar.gz"; + sha256 = "1j8zchilsr0dziyr21az4x3xxyr4d3jc8nybag9rp6pjj8k49adn"; + }; + + # Note: Glib support is optional, but it's quite useful (e.g., it's + # used by Guile-GNOME). Guile-Library is needed by the test suite. + buildInputs = [ guile libffi pkgconfig glib guileLib ]; + + # GMP 4.2.2 uses GNU "extern inline". With GCC 4.2 in C99 mode, + # this yields warnings such as: + # + # gmp.h:1606: warning: C99 inline functions are not supported; using GNU89 + # + # Since G-Wrap builds in C99 mode and with `-Werror', we need to + # pass it `-fgnu89-inline'. + CFLAGS = "-fgnu89-inline"; + + doCheck = true; + + meta = { + description = "G-Wrap, a wrapper generator for Guile"; + longDescription = '' + G-Wrap is a tool (and Guile library) for generating function + wrappers for inter-language calls. It currently only supports + generating Guile wrappers for C functions. + ''; + homepage = http://www.nongnu.org/g-wrap/; + license = "LGPLv2+"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7774384b32c0..6346e259bd94 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2001,6 +2001,11 @@ let pkgs = rec { inherit fetchurl stdenv guile; }; + gwrap = import ../development/tools/guile/g-wrap { + inherit fetchurl stdenv guile libffi pkgconfig guileLib; + inherit (gtkLibs) glib; + }; + /* happy = import ../development/tools/parsing/happy { inherit fetchurl stdenv perl ghc;