summaryrefslogtreecommitdiff
path: root/elements/core/ncurses.bst
diff options
context:
space:
mode:
Diffstat (limited to 'elements/core/ncurses.bst')
-rw-r--r--elements/core/ncurses.bst51
1 files changed, 51 insertions, 0 deletions
diff --git a/elements/core/ncurses.bst b/elements/core/ncurses.bst
new file mode 100644
index 00000000..3f8dd214
--- /dev/null
+++ b/elements/core/ncurses.bst
@@ -0,0 +1,51 @@
+kind: manual
+depends:
+- gnu-toolchain.bst
+sources:
+- kind: git
+ url: upstream:ncurses
+ track: ncurses-5.9-20150131
+ ref: f6d73a10a980bc78969c3af93665cbe7d06c3646
+config:
+ configure-commands:
+ - LDCONFIG=true ./configure --with-shared --without-debug --enable-widec
+ build-commands:
+ - make
+ install-commands:
+ - make DESTDIR="%{install-root}" install
+ - |
+ # 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 "%{install-root}/lib"
+ mv "%{install-root}"/"%{prefix}"/lib/libncursesw.so.5* "%{install-root}"/lib
+ ln -sf ../../lib/libncursesw.so.5 "%{install-root}"/"%{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 "%{install-root}/%{prefix}/lib/lib${lib}.so"
+ # use a linker script to find the wide character variant
+ echo "INPUT(-l${lib}w)" >"%{install-root}/%{prefix}/lib/lib${lib}.so"
+ # symlink the non-shared library
+ ln -sf "lib${lib}w.a" "%{install-root}/%{prefix}/lib/lib${lib}.a"
+ done
+ ln -sf libncurses++w.a "%{install-root}/%{prefix}/lib/libncurses++.a"
+
+ # redirect software that looks for libcurses
+ rm -f "%{install-root}/%{prefix}/lib/libcursesw.so"
+ echo "INPUT(-lncursesw)" >"%{install-root}/%{prefix}/lib/libcursesw.so"
+ ln -sf libncurses.so "%{install-root}/%{prefix}/lib/libcurses.so"
+ ln -sf libncursesw.a "%{install-root}/%{prefix}/lib/libcursesw.a"
+ ln -sf libncurses.a "%{install-root}/%{prefix}/lib/libcurses.a"
+
+ # install documentation
+ mkdir -p "%{install-root}/%{prefix}/share/doc/ncurses"
+ cp -R doc/* "%{install-root}/%{prefix}/share/doc/ncurses"
+
+ # remove 'clear' and 'reset' executables, busybox provides them
+ rm -f "%{install-root}/%{prefix}/bin/clear" "%{install-root}/%{prefix}/bin/reset"