summaryrefslogtreecommitdiff
path: root/strata/core/ncurses.morph
blob: 42acb481eebd1f3a2d8ceac684aca3fb5e45d039 (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
name: ncurses
kind: chunk
configure-commands:
- LDCONFIG=true ./configure --with-shared --without-debug --enable-widec
build-commands:
- make
install-commands:
- make  DESTDIR="$DESTDIR" install
post-install-commands:
- |
  # lfs recommends some alterations for software that looks for
  # libcurses instead of libncurses
  # it's more convenient to have this in a separate file than the
  # morph as less strings have to be escaped and comments are possible

  # some software expects to find libcurses in /lib
  mkdir -p "$DESTDIR/lib"
  mv "$DESTDIR"/"$PREFIX"/lib/libncursesw.so.5* "$DESTDIR"/lib
  ln -sf ../../lib/libncursesw.so.5 "$DESTDIR"/"$PREFIX"/lib/libncursesw.so

  # some linker tricks for libraries that look for non-wide character
  # versions of ncurses
  for lib in ncurses form panel menu; do
      # remove non-wide shared object
      rm -f "$DESTDIR/${PREFIX}/lib/lib${lib}.so"
      # use a linker script to find the wide character variant
      echo "INPUT(-l${lib}w)" >"$DESTDIR/${PREFIX}/lib/lib${lib}.so"
      # symlink the non-shared library
      ln -sf "lib${lib}w.a" "$DESTDIR/${PREFIX}/lib/lib${lib}.a"
  done
  ln -sf libncurses++w.a "$DESTDIR/${PREFIX}/lib/libncurses++.a"

  # redirect software that looks for libcurses
  rm -f "$DESTDIR/${PREFIX}/lib/libcursesw.so"
  echo "INPUT(-lncursesw)" >"$DESTDIR/${PREFIX}/lib/libcursesw.so"
  ln -sf libncurses.so "$DESTDIR/${PREFIX}/lib/libcurses.so"
  ln -sf libncursesw.a "$DESTDIR/${PREFIX}/lib/libcursesw.a"
  ln -sf libncurses.a "$DESTDIR/${PREFIX}/lib/libcurses.a"

  # install documentation
  mkdir -p "$DESTDIR/${PREFIX}/share/doc/ncurses"
  cp -R doc/* "$DESTDIR/${PREFIX}/share/doc/ncurses"

  # remove 'clear' and 'reset' executables, busybox provides them
  rm -f "$DESTDIR/${PREFIX}/bin/clear" "$DESTDIR/${PREFIX}/bin/reset"