[html]<img src="https://sourceforge.net/p/app-emulation-sk-tests/code/ci/main/tree/src/images/autotools.gif?format=raw" width="100%" />[/html]
Почему люди используют autotools?
autotools поддерживают:
- подготовку ПО для установки в разные директории (PREFIX);
- корректную обработку зависимостей между .h-файлами.
- кросс-компиляцию;
- сборку вне директории с исходными текстами (out of tree builds);
они известны людям.
Конфигурация (поддержка PREFIX) -> Компиляция (выбор тулчейна) -> Установка (поддержка DESTDIR)
autoconf
   configure.ac (bash + m4 macros) -> ./configure
automake
   Makefile.am -> Makefile.in
autoheader
   -> config.h.in
aclocal
Нагенерированные файлы (configure, Makefile.in, Makefile) редактировать руками не надо!
./configure
  Makefile.in -> Makefile
  config.h.in -> config.h
  config.log
     опции, переменные окружения
Стандартные цели:
distclean, dist, clean, check, install-strip, install, installcheck, all, uninstall
prefix (/usr/local)
   execprefix ($prefix)
       bindir ($execprefix/bin)
       libdir ($execprefix/lib)
includedir ($prefix/include)
datarootdir ($prefix/share)
   data ($datarootdir)
   man ($datarootdir/man)
   info ($datarootdir/info)
sysconfdir ($prefix/etc)
--<option> для каждой директории
   например, ./configure --prefix=~/sys/
Стандартные переменные окружения:
CC, команда запускающая компилятор Си
CFLAGS, переменная со списком параметров командной строки компилятору Си
CXX, команда запускающая компилятор C++
CXXFLAGS, переменная со списком параметров командной строки компилятору C++
LDFLAGS, переменная со списком параметров командной строки утилите ld
и другие, см. ./configure --help
Три типа систем:
build, на какой платформе происходит сборка
host, на какой платформе программа будет работать
target, на какую платформу программа будет ориентироваться в работе (только для программ собираемого тулчейна)
 --build, --host, --target параметры для скрипта ./configure
значения для этих параметров это "тройки, описывающие платформу"
Отредактировано Лис (2023-03-12 19:55:52)
![Лис [М] Лис [М]](https://forumavatars.ru/img/avatars/0018/41/1a/53-1678416278.jpg)