diff options
Diffstat (limited to 'pkgs/development/tools/misc/gdb/default.nix')
-rw-r--r-- | pkgs/development/tools/misc/gdb/default.nix | 54 |
1 files changed, 38 insertions, 16 deletions
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix index 37d41d42fcee7..b2ce5aa629748 100644 --- a/pkgs/development/tools/misc/gdb/default.nix +++ b/pkgs/development/tools/misc/gdb/default.nix @@ -1,35 +1,57 @@ -{ fetchurl, stdenv, ncurses, readline, gmp, mpfr, expat, texinfo -, dejagnu, python, target ? null }: +{ fetchurl, fetchgit, stdenv, ncurses, readline, gmp, mpfr, expat, texinfo +, dejagnu, python, target ? null + +# Set it to true to fetch the latest release/branchpoint from git. +, bleedingEdgeVersion ? false + +# needed for the git version +, flex, bison }: let - basename = "gdb-7.2"; + basename = + if bleedingEdgeVersion + then "gdb-7.3.20110726" + else "gdb-7.3"; in + stdenv.mkDerivation rec { name = basename + stdenv.lib.optionalString (target != null) ("-" + target.config); - src = fetchurl { - url = "mirror://gnu/gdb/${basename}.tar.bz2"; - sha256 = "1w0h6hya0bl46xddd57mdzwmffplwglhnh9x9hv46ll4mf44ni5z"; - }; + src = + if bleedingEdgeVersion + then fetchgit { + url = "git://sourceware.org/git/gdb.git"; + rev = "refs/tags/gdb_7_3-2011-07-26-release"; + } + else fetchurl { + url = "mirror://gnu/gdb/${basename}.tar.bz2"; + # md5 is provided by the annoucement page + # http://www.gnu.org/s/gdb/download/ANNOUNCEMENT + md5 = "485022b8df7ba2221f217e128f479fe7"; + }; # I think python is not a native input, but I leave it # here while I will not need it cross building - buildNativeInputs = [ texinfo python ]; + buildNativeInputs = [ texinfo python ] + ++ stdenv.lib.optionals bleedingEdgeVersion [ flex bison ]; + buildInputs = [ ncurses readline gmp mpfr expat ] ++ stdenv.lib.optional doCheck dejagnu; - configureFlags = + configureFlags = with stdenv.lib; '' --with-gmp=${gmp} --with-mpfr=${mpfr} --with-system-readline - --with-expat --with-libexpat-prefix=${expat} --with-python - '' + stdenv.lib.optionalString (target != null) - " --target=${target.config}"; + --with-expat --with-libexpat-prefix=${expat} + '' + + optionalString (target != null) " --target=${target.config}" + + optionalString (elem stdenv.system platforms.cygwin) " --without-python" + ; crossAttrs = { # Do not add --with-python here to avoid cross building it. configureFlags = '' --with-gmp=${gmp.hostDrv} --with-mpfr=${mpfr.hostDrv} --with-system-readline - --with-expat --with-libexpat-prefix=${expat.hostDrv} + --with-expat --with-libexpat-prefix=${expat.hostDrv} --without-python '' + stdenv.lib.optionalString (target != null) " --target=${target.config}"; }; @@ -42,7 +64,7 @@ stdenv.mkDerivation rec { # TODO: Investigate & fix the test failures. doCheck = false; - meta = { + meta = with stdenv.lib; { description = "GDB, the GNU Project debugger"; longDescription = '' @@ -55,7 +77,7 @@ stdenv.mkDerivation rec { license = "GPLv3+"; - platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.cygwin; - maintainers = [ stdenv.lib.maintainers.ludo ]; + platforms = with platforms; linux ++ cygwin; + maintainers = with maintainers; [ ludo pierron ]; }; } |