{ fetchurl, stdenv, ncurses, readline, gmp, mpfr, expat, texinfo , dejagnu, python, target ? null }: let basename = "gdb-7.2"; in stdenv.mkDerivation rec { name = basename + stdenv.lib.optionalString (target != null) ("-" + target.config); src = fetchurl { url = "mirror://gnu/gdb/${basename}.tar.bz2"; sha256 = "1w0h6hya0bl46xddd57mdzwmffplwglhnh9x9hv46ll4mf44ni5z"; }; # I think python is not a native input, but I leave it # here while I will not need it cross building buildNativeInputs = [ texinfo python ]; buildInputs = [ ncurses readline gmp mpfr expat ] ++ stdenv.lib.optional doCheck dejagnu; configureFlags = '' --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}"; 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} '' + stdenv.lib.optionalString (target != null) " --target=${target.config}"; }; postInstall = '' # Remove Info files already provided by Binutils and other packages. rm -v $out/share/info/{standards,configure,bfd}.info ''; # TODO: Investigate & fix the test failures. doCheck = false; meta = { description = "GDB, the GNU Project debugger"; longDescription = '' GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed. ''; homepage = http://www.gnu.org/software/gdb/; license = "GPLv3+"; platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.cygwin; maintainers = [ stdenv.lib.maintainers.ludo ]; }; }