summarylogtreecommitdiffstats
path: root/PKGBUILD.36
blob: 4b4439516740f482dd9e18ae425174bb6806d783 (plain)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# Maintainer: Alexander F Rødseth <xyproto@archlinux.org>
# Contributor: Jamie <dyscoria@googlemail.com>

pkgname=nethack-x11
pkgver=3.6.0
pkgrel=1
pkgdesc='Single-player roguelike dungeon exploration game'
arch=('x86_64' 'i686')
url='http://nethack.org/'
license=('custom')
depends=('libxaw')
makedepends=('setconf' 'gendesk' 'addinclude') #xorg-server-devel
conflicts=('nethack')
backup=('etc/nethackrc')
source=("http://downloads.sourceforge.net/nethack/nethack-${pkgver//./}-src.tgz"
        'nethack-x11.png::http://bugs.gentoo.org/attachment.cgi?id=86458')
sha256sums=('1ade698d8458b8d87a4721444cb73f178c74ed1b6fde537c12000f8edf2cb18a'
            'e1e0b059c617af04ee88bed4b03b73c02f022663e001c5485fe9900ca2d76295')

prepare() {
  cd "nethack-$pkgver"

  gendesk -n -f --pkgname "$pkgname" --pkgdesc "$pkgdesc" --exec nethack \
    --name 'Nethack (X11)' --genericname Nethack

  sh sys/unix/setup.sh

  echo '' > Makefile.top
  #echo 'GAMEUID=root' > Makefile.top
  #echo 'GAMEGRP=root' >> Makefile.top
  echo 'GAMEDIR=$(PREFIX)/share/$(GAME)' >> Makefile.top
  echo 'SHELLDIR=$(PREFIX)/bin' >> Makefile.top
  echo 'VARDIR=$(PREFIX)/var/games/nethack' >> Makefile.top
  cat Makefile >> Makefile.top
  mv -f Makefile.top Makefile

  sed 's/# VARDATND =/VARDATND =/' -i Makefile
  setconf Makefile VARDATND "x11tiles NetHack.ad pet_mark.xbm" # pilemark.xpm rip.xpm

  cd include
  sed 's:/* #define X11_GRAPHICS:#define X11_GRAPHICS:' -i unixconf.h
  sed 's:bin/compress:bin/gzip:' -i unixconf.h
  sed 's:".Z":".gz":' -i unixconf.h
  sed 's:/* #define DLB:#define DLB:' -i unixconf.h
  sed 's:games/lib/nethackdir:/share/nethack:' -i unixconf.h
  sed 's:/* #define LINUX:#define LINUX:' -i unixconf.h
  sed 's:/* #define TIMED_DELAY:#define TIMED_DELAY:' -i unixconf.h

  sed 's#if !defined(NOTTYGRAPHICS)#ifdef UNIX#' -i config.h
  sed 's#define TTY_GRAPHICS#define X11_GRAPHICS#' -i config.h
  #sed 's#DEFAULT_WINDOW_SYS "tty"#DEFAULT_WINDOW_SYS "X11"#g' -i config.h
  sed 's|#define X11_GRAPHICS||' -i config.h

  #addinclude -n global.h '#define DEFAULT_WINDOW_SYS "X11"'

  cd ..

  #setconf Makefile WINSRC '$(WINTTYSRC) $(WINX11SRC)'
  #setconf Makefile WINOBJ '$(WINTTYOBJ) $(WINX11OBJ)'
  #setconf Makefile WINTTYLIB '-lncurses'
  #setconf Makefile WINLIB '$(WINTTYLIB) $(WINX11LIB)'

  setconf Makefile WINSRC '$(WINX11SRC)'
  setconf Makefile WINOBJ '$(WINX11OBJ)'
  setconf Makefile WINLIB '$(WINX11LIB)'

  setconf src/Makefile WINSRC '$(WINX11SRC)'
  setconf src/Makefile WINOBJ '$(WINX11OBJ)'

  # Bison and Flex > Yacc and Lex
  setconf -a Makefile YACC 'bison -y'
  setconf -a Makefile LEX 'flex'

  # Create /etc/nethackrc with OPTIONS=windowtype:X11
  setconf -a nethackrc OPTIONS 'windowtype:X11'

  # Add two new lines to nethack.sh
  sed -i \
    's|export HACKDIR|NETHACKOPTIONS=\nexport NETHACKOPTIONS\nexport HACKDIR|' \
    sys/unix/nethack.sh

  # Set HACKDIR
  setconf sys/unix/nethack.sh HACKDIR '/usr/share/nethack'

  # Set NETHACKOPTIONS
  setconf sys/unix/nethack.sh NETHACKOPTIONS '@/etc/nethackrc'

  # Change Nethack.ad settings
  sed 's/variable/fixed/' -i win/X11/NetHack.ad
  sed 's/nh10/fixed/' -i win/X11/NetHack.ad
  sed 's/!NetHack.tile_file/NetHack.tile_file/' -i win/X11/NetHack.ad

  # Fix tty color detection
  #echo '#undef TEXTCOLOR' > sys/share/unixtty.new
  #cat sys/share/unixtty.c >> sys/share/unixtty.new
  #mv -f sys/share/unixtty.new sys/share/unixtty.c

  # Fix tty color detection
  #echo '#undef COMPRESS' > src/files.new
  #echo '#undef ZLIB_COMP' >> src/files.new
  #echo '#undef TTY_GRAPHICS' >> src/files.new
  #cat src/files.c >> src/files.new
  #mv -f src/files.new src/files.c
  #addinclude src/files.c stdio
  #echo 'int more() { printf("NOT IMPLEMENTED: more()\n"); return 0; }' >> src/files.c
}

build() {
  cd "nethack-$pkgver/src"

  export CC="gcc"
  export CFLAGS='-I../include -O2 -fomit-frame-pointer -DDEFAULT_WINDOW_SYS=\"X11\" -DX11_GRAPHICS'
  export LFLAGS="-L/usr/lib -L/usr/lib/X11 -Xlinker -soname=_APP_"
  export LINK="gcc"

  # MAXIMUM HACK-FORCE, ENGAGED!
  sh -c "make -k || true" || true
  sh -c "gcc -o nethack $CFLAGS -Wl,--unresolved-symbols=ignore-all *.o || true"
  cd ..
  sh -c "make -k || true" || true
  cd src
  sh -c "gcc -o nethack $CFLAGS -Wl,--unresolved-symbols=ignore-all *.o || true"
}

package() {
  cd "nethack-$pkgver"

  mkdir -p "$pkgdir/var/games/nethack"
  echo -e "install:\n\ttrue" > src/Makefile
  export CFLAGS="-I../include -O2 -fomit-frame-pointer"
  setconf Makefile VARDIR "$pkgdir/var/games/nethack"
  make -k PREFIX=$pkgdir/usr install
  install -Dm644 nethackrc "$pkgdir/etc/nethackrc"
  install -Dm644 dat/license \
    "$pkgdir/usr/share/licenses/$pkgname/license"
  install -Dm644 win/X11/nethack.rc \
    "$pkgdir/usr/share/doc/$pkgname/nethackrc"
  install -Dm644 "$pkgname.desktop" \
    "$pkgdir/usr/share/applications/$pkgname.desktop"
  install -Dm644 "../$pkgname.png" \
    "$pkgdir/usr/share/pixmaps/$pkgname.png"
}

# vim:set ts=2 sw=2 et: