Lx4U-book/docs/build-system/m4.md

81 lines
2.2 KiB
Markdown
Raw Normal View History

2021-05-09 02:08:26 +08:00
<package-info :package="package" showsbu2></package-info>
<script>
new Vue({
el: '#main',
data: { package: {} },
mounted: function () {
this.getPackage('m4');
},
methods: {
getPackage: function(name) {
getPackage(name)
.then(response => this.package = response);
},
}
})
</script>
Для начала, исправьте некоторые ошибки и внесите несколько изменений, необходимых для glibc-2.28:
```bash
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
```
## Подготовка к компиляции
```
./configure --prefix=/usr
```
## Сборка
```
make
```
## Тестирование
```
make check
```
## Установка
```
make install
```
## Для multilib
### Очистка
2021-05-09 02:10:40 +08:00
```bash
make distclean
```
### Настройка
```bash
CC="gcc -m32" ./configure \
--prefix=/usr \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu
```
### Сборка
```bash
make
```
### Установка
```bash
make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
2021-05-09 02:08:26 +08:00
rm -rf DESTDIR
```
## Установленные программы:
`m4`
### Краткое описание
Копирует указанные файлы, раскрывая содержащиеся в них макросы. Они являются встроенными или определяемыми пользователем и могут принимать любое количество аргументов. Также m4 имеет встроенные функции для включения именованных файлов, выполнения команд Unix, выполнения целочисленной арифметики и т.д. m4 используется либо как интерфейс для компилятора, либо как макрос. процессор сам по себе