BefatorNix/jdk/gnu-classpath.nix
2025-09-05 17:38:49 +02:00

46 lines
1.3 KiB
Nix

{stdenv, fetchgit, autoreconfHook, libtool, gnulib, gnu-classpath_98, jamvm_1_5_4, ecj, fastjar, texinfo}: stdenv.mkDerivation rec {
pname = "gnu-classpath";
version = "0.99";
src = fetchgit {
url = "https://git.savannah.gnu.org/git/classpath.git";
rev = "e7c13ee0cf2005206fbec0eca677f8cf66d5a103";
hash = "sha256-gQonVt3Ps6LDZV0tNmiRjqIbYaaQwYjpUogu9Y7nLIo=";
deepClone = true;
};
patches = [./gnu-classpath.patch];
nativeBuildInputs = [autoreconfHook gnu-classpath_98 jamvm_1_5_4 ecj fastjar texinfo];
env = {
ACLOCAL_PATH="${libtool}/share/aclocal:${gnulib}/m4";
};
configureFlags = ["--disable-gtk-peer" "--disable-gconf-peer" "--disable-plugin" "--disable-gjdoc" "--with-ecj-jar=${ecj}/bin/ecj.jar"];
postPatch = ''
echo "@Override wird gedesed..."
find . -name "*.java" -exec sed -i 's/@Override\s*//g' {} +
'';
postInstall = ''
mkdir -p $out/jre/lib
ln -s $out/share/classpath/tools.zip $out/lib/tools.jar
ln -s $out/share/classpath/glibj.zip $out/jre/lib/rt.jar
cat << 'EOF' > $out/bin/javac
#!/bin/bash
exec ${ecj}/bin/ecj "$@"
EOF
sed -i "s|\$out|$out|g" $out/bin/javac
chmod +x $out/bin/javac
cat << 'EOF' > $out/bin/java
#!/bin/bash
exec jamvm "$@"
EOF
chmod +x $out/bin/java
'';
}