Lx4U-book/docs/build-temp-system/ncurses.md

140 lines
3.8 KiB
Markdown
Raw Normal View History

2021-05-02 17:46:07 +08:00
<package-info :package="package" showsbu></package-info>
<script>
new Vue({
el: '#main',
data: { package: {} },
mounted: function () {
this.getPackage('ncurses');
},
methods: {
getPackage: function(name) {
getPackage(name)
.then(response => this.package = response);
},
}
})
</script>
2021-05-05 18:58:00 +08:00
## Настройка
2021-05-02 17:46:07 +08:00
2021-07-03 14:19:20 +08:00
Убедитесь, что `gawk` будет найден первым:
2021-05-02 17:46:07 +08:00
```bash
sed -i s/mawk// configure
```
Для установки `ncurses` требуется программа `tic`. Соберите её:
2021-05-02 17:46:07 +08:00
```bash
mkdir tic-build
cd tic-build
../configure
make -C include
make -C progs tic
cd ..
```
2021-05-02 17:46:07 +08:00
Запустите скрипт `configure`:
```bash
./configure --prefix=/usr \
--host=$LIN_TGT \
--build=$(./config.guess) \
2021-05-30 00:03:59 +08:00
--without-manpages \
--without-tests \
--without-cxx \
2021-05-02 17:46:07 +08:00
--with-shared \
--without-debug \
--without-ada \
--without-normal \
--enable-widec
```
2021-06-10 21:28:16 +08:00
### Значения параметров
2021-05-02 17:46:07 +08:00
`--without-manpages , --without-tests, --without-cxx` - Man-страницы, тесты и библиотека C++ не нужны для временной системы.
2021-05-02 17:46:07 +08:00
2021-07-20 15:37:42 +08:00
`--without-ada` - отключает сборку компонентов на языке `ada`, так как в собираемой системе отсутствуют необходимые для их запуска компоненты.
2021-05-02 17:46:07 +08:00
2021-07-20 15:37:42 +08:00
`--without-normal` - отключает установку большинства статических библиотек.
2021-05-02 17:46:07 +08:00
2021-07-20 15:37:42 +08:00
`--enable-widec` - включает установку библиотек с поддержкой многобайтовых символов.
2021-05-02 17:46:07 +08:00
2021-05-05 18:58:00 +08:00
## Сборка
2021-05-02 17:46:07 +08:00
```bash
make
```
## Установка
```bash
make DESTDIR=$LIN TIC_PATH=$(pwd)/tic-build/progs/tic install
echo "INPUT(-lncursesw)" > $LIN/usr/lib/libncurses.so
```
2021-07-20 06:07:52 +08:00
## При раздельной структуре каталогов
Переместите разделяемые библиотеки в `$LIN/lib`:
```bash
mv -v $LIN/usr/lib/libncursesw.so.6* $LIN/lib
```
Поскольку библиотеки были перемещены, одна символическая ссылка указывает на несуществующий файл. Исправьте это:
```bash
ln -sfv ../../lib/$(readlink $LIN/usr/lib/libncursesw.so) $LIN/usr/lib/libncursesw.so
```
2021-05-07 20:17:15 +08:00
## Для multilib
2021-05-02 17:46:07 +08:00
2021-05-05 18:58:00 +08:00
### Настройка
2021-05-02 17:46:07 +08:00
Соберите 32-битную версию ncurses:
2021-08-24 22:53:54 +08:00
Выполните:
2021-05-02 17:46:07 +08:00
```bash
make distclean
```
Чтобы очистить директорию от файлов предыдущей сборки.
2021-08-24 22:53:54 +08:00
Запустите скрипт `configure`:
2021-05-02 17:46:07 +08:00
```bash
2021-05-30 00:03:59 +08:00
CC="$LIN_TGT-gcc -m32" \
CXX="$LIN_TGT-g++ -m32" \
./configure --prefix=/usr \
--host=$LIN_TGT32 \
2021-05-02 17:46:07 +08:00
--build=$(./config.guess) \
2021-05-30 00:03:59 +08:00
--libdir=/usr/lib32 \
--without-manpages \
--without-tests \
--without-cxx \
--without-progs \
--with-shared \
--without-debug \
--without-ada \
--without-normal \
--enable-pc-files \
--enable-widec \
2021-05-02 17:46:07 +08:00
--with-pkg-config-libdir=/usr/lib32/pkgconfig
```
2021-05-05 18:58:00 +08:00
### Сборка
2021-05-02 17:46:07 +08:00
```bash
make
```
2021-05-05 18:58:00 +08:00
### Установка
2021-05-02 17:46:07 +08:00
```bash
make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/tic-build/progs/tic install
ln -s libncursesw.so DESTDIR/usr/lib32/libcursesw.so
cp -Rv DESTDIR/usr/lib32/* $LIN/usr/lib32
rm -rf DESTDIR
```