anchor.diff:      sha256 = "0x1mqpz1v071cfrw4grbw7z734cxnpry1qh2b6rsmcx6nkyd5gsw";
     };
   
  -  patches = (stdenv.lib.optional (stdenv.system != "i686-cygwin") ./dll.patch)
  -            ++ (stdenv.lib.optional stdenv.isDarwin ./GNUmakefile.patch);
  +  patches = with stdenv;
  +    lib.optional (system != "i686-cygwin") ./dll.patch
  +    ++ lib.optional isDarwin ./GNUmakefile.patch;
   
  -  buildInputs = [ unzip libtool ];
  +  buildInputs = [ unzip ];
   
  -  # Unpack the thing in a subdirectory.
  -  unpackPhase = ''
  -    echo "unpacking Crypto++ to \`${name}' from \`$PWD'..."
  -    mkdir "${name}" && (cd "${name}" && unzip "$src")
  -    sourceRoot="$PWD/${name}"
  -  '';
  +  sourceRoot = ".";
   
  -  cxxflags = if stdenv.isi686 then "-march=i686" else
  -             if stdenv.isx86_64 then "-march=nocona -fPIC" else
  -             "";
  +  configurePhase = let
  +    marchflags =
  +      if stdenv.isi686 then "-march=i686" else
  +      if stdenv.isx86_64 then "-march=nocona -mtune=generic" else
  +      "";
  +    in
  +    ''
  +      sed -i GNUmakefile \
  +        -e 's|-march=native|${marchflags} -fPIC|g' \
  +        -e 's|-mtune=native||g' \
  +        -e '/^CXXFLAGS =/s|-g ||'
  +    '';
   
  -  configurePhase = ''
  -    sed -i GNUmakefile \
  -      -e 's|-march=native|${cxxflags}|g' \
  -      -e 's|-mtune=native||g' \
  -      -e '/^CXXFLAGS =/s|-g -O2|-O3|'
  -  '';
  +  enableParallelBuilding = true;
   
  -  # I add what 'enableParallelBuilding' would add to the make call,
  -  # if we were using the generic build phase.
  -  buildPhase = ''
  -    make PREFIX="$out" all libcryptopp.so -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES
  -  '';
  -
  -  # TODO: Installing cryptotest.exe doesn't seem to be necessary. We run
  -  # that binary during this build anyway to verify everything works.
  -  installPhase = ''
  -    mkdir "$out"
  -    make install PREFIX="$out"
  -  '';
  +  makeFlags = "PREFIX=$(out)";
  +  buildFlags = "libcryptopp.so";
   
     doCheck = true;
     checkPhase = "LD_LIBRARY_PATH=`pwd` make test";
  +
  +  # prefer -fPIC and .so to .a; cryptotest.exe seems superfluous
  +  postInstall = ''rm "$out"/lib/*.a -r "$out/bin" '';
   
     meta = with stdenv.lib; {
       description = "Crypto++, a free C++ class library of cryptographic schemes";
  
positive.code:     maintainers = [ ];
    };
  }
  
negative.code: { fetchurl, stdenv, unzip }:
  
  stdenv.mkDerivation rec {
    name = "crypto++-5.6.2";
  