blob: d817cf6432385fe96253d98cb48ead9bdbb34ce4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
a :
let
fetchurl = a.fetchurl;
version = a.lib.attrByPath ["version"] "3.4.3" a;
buildInputs = with a; [
ncurses flex bison
];
in
rec {
src = fetchurl {
url = "mirror://sourceforge/nethack/nethack-343-src.tgz";
sha256 = "1r3ghqj82j0bar62z3b0lx9hhx33pj7p1ppxr2hg8bgfm79c6fdv";
};
inherit buildInputs;
configureFlags = [];
/* doConfigure should be removed if not needed */
phaseNames = ["preBuild" "doMakeInstall" "postInstall"];
preBuild = a.fullDepEntry (''
( cd sys/unix ; sh setup.sh )
sed -e 's@.*define HACKDIR.*@\#define HACKDIR "/tmp/nethack"@' -i include/config.h
sed -e '/define COMPRESS/d' -i include/config.h
sed -e '1i\#define COMPRESS "/usr/local/bin/gzip"' -i include/config.h
sed -e '1i\#define COMPRESS_EXTENSION ".gz"' -i include/config.h
sed -e '/extern char [*]tparm/d' -i win/tty/*.c
sed -e 's/-ltermlib/-lncurses/' -i src/Makefile
sed -e 's/^YACC *=.*/YACC = bison -y/' -i util/Makefile
sed -e 's/^LEX *=.*/LEX = flex/' -i util/Makefile
sed -e 's@GAMEDIR = @GAMEDIR = /tmp/nethack@' -i Makefile
sed -re 's@^(CH...).*@\1 = true@' -i Makefile
'') ["minInit" "doUnpack"];
postInstall = a.fullDepEntry (''
mkdir -p $out/bin
ln -s $out/games/nethack $out/bin/nethack
sed -i $out/bin/nethack -e '5aNEWHACKDIR="$HOME/.nethack"'
sed -i $out/bin/nethack -e '6amkdir -p "$NEWHACKDIR/save"'
sed -i $out/bin/nethack -e '7afor i in $(find "$NEWHACKDIR" -type l); do if ! test -e $(readlink "$i"); then rm "$i"; fi; done;'
sed -i $out/bin/nethack -e '8aln -s "$HACKDIR"/* "$NEWHACKDIR" &>/dev/null'
sed -i $out/bin/nethack -e '9atest -L "$NEWHACKDIR/record" && rm "$NEWHACKDIR"/record'
sed -i $out/bin/nethack -e '10aexport HACKDIR="$NEWHACKDIR"'
'') ["minInit" "defEnsureDir"];
makeFlags = [
"PREFIX=$out"
];
name = "nethack-" + version;
meta = {
description = "rogue-like game";
};
}
|