Lx4U-book/docs/build-system/ncurses.md
2021-05-14 17:27:24 +03:00

4.1 KiB
Raw Permalink Blame History

Настройка

./configure --prefix=/usr           \
            --mandir=/usr/share/man \
            --with-shared           \
            --without-debug         \
            --without-normal        \
            --enable-pc-files       \
            --enable-widec          \
            --with-pkg-config-libdir=/usr/lib/pkgconfig

Объяснение параметров configure

--without-normal - Отключает установку большинства статических библиотек.

--enable-pc-files - Включает установку файлов для pkg-config.

--enable-widec - Включает сборку библиотек с широкими (многобайтовыми) символами. Они совместимы с обычными библиотеками ncurses при сборке из исходного кода, но не совместимы бинарно.

Сборка

make

Установка

make install

Многие пакеты при компоновке ищут библиотеки без широких символов. Для компоновки с библиотеками содержащими широкие символы выполните:

for lib in ncurses form panel menu ; do
    rm -vf                    /usr/lib/lib${lib}.so
    echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
    ln -sfv ${lib}w.pc        /usr/lib/pkgconfig/${lib}.pc
done

Для сборки старых программ использующих -lcurses выполните:

rm -vf                     /usr/lib/libcursesw.so
echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
ln -sfv libncurses.so      /usr/lib/libcurses.so

Удалите ненужную статическую библиотеку:

rm -fv /usr/lib/libncurses++w.a

Для multilib

Очистка

make distclean

Настройка

CC="gcc -m32" CXX="g++ -m32" \
./configure --prefix=/usr           \
            --host=i686-pc-linux-gnu \
            --libdir=/usr/lib32     \
            --mandir=/usr/share/man \
            --with-shared           \
            --without-debug         \
            --without-normal        \
            --enable-pc-files       \
            --enable-widec          \
            --with-pkg-config-libdir=/usr/lib32/pkgconfig

Сборка

make

Установка

make DESTDIR=$PWD/DESTDIR install
mkdir -p DESTDIR/usr/lib32/pkgconfig
for lib in ncurses form panel menu ; do
    rm -vf                    DESTDIR/usr/lib32/lib${lib}.so
    echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so
    ln -svf ${lib}w.pc        DESTDIR/usr/lib32/pkgconfig/$lib.pc
done
rm -vf                     DESTDIR/usr/lib32/libcursesw.so
echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so
ln -sfv libncurses.so      DESTDIR/usr/lib32/libcurses.so
rm -fv DESTDIR/usr/lib32/libncurses++w.a
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR

Установленные файлы

Программы: captoinfo (ссылка на tic), clear, infocmp, infotocap (ссылка на tic), ncursesw6-config, reset (ссылка на tset), tabs, tic, toe, tput и tset

Библиотеки: libcursesw.so (ссылка на libncursesw.so), libformw.so, libmenuw.so, libncursesw.so, libpanelw.so и их версии без широких символов

Директории: /usr/share/tabset /usr/share/terminfo