Як створити сценарій налаштування?


79

Це може здатися дуже загальним запитанням, але тут справа йде.

У мене є вимога , щоб створити скрипт конфігурації для мого програми, в результаті цього Configure буде генеруються makefile(основні configure, make, make install). Моє питання полягає в тому, з чого я починаю будувати це? Чи є приклад, з якого я можу піти?



6
Ви маєте на увазі Autoconf ?
chrisaycock

Ось як я розпочав роботу з autotools -> autobook .
Шон Чін

можливо, зверніться до вступного відео dwheeler.com/autotools та книги freesoftwaremagazine.com/books/…
Jichao

Відповіді:


79

Для створення стандартного сценарію "налаштування" вам потрібен GNU autoconf. Можливо, вам знадобляться GNU automake та libtool.

Існує маса документації та інструкцій. Google щось на зразок "autoconf automake howto". Хороша документація знаходиться на офіційних сторінках керівництва:

Autoconf створить ваш сценарій налаштування, починаючи з файлу "configure.ac". Файл "Makefile.am" дасть інструкцію automake про те, як створити ваш файл файлів за допомогою рядка налаштування. Libtool потрібен для спрощення обробки бібліотек навколо вашого коду.

Ви можете почати створювати файл configure.ac вручну або скористатися помічником "автосканування", який допоможе вам створити щось напівавтоматичне для вас.

Потім, коли ви будете готові, цей зробить магію:

autoreconf -i


Документи GNU свідчать про те, що можуть бути інші інструменти налаштування сценаріїв: gnu.org/prep/standards/html_node/Makefile-Conventions.html , Чи існують такі інші інструменти (крім посібника, звичайно)?
Еван Бенн


4

Іноді програмний продукт постачається без сценарію налаштування. Шукайте сценарій autogen.sh. це, ймовірно, буде працювати:

aclocal || die "aclocal failed"
automake --add-missing --force-missing --copy --foreign || die "automake failed"
autoreconf || die "autoreconf failed"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.