diff options
Diffstat (limited to 'elements/core/ncurses.bst')
-rw-r--r-- | elements/core/ncurses.bst | 51 |
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" |