среда, 30 мая 2007 г.

Возня с autoconf/automake

Параллельно с освоением Линукса я пытаюсь учить С++. В роли IDE у меня выступает Vim, обвешанный несколькими плагинами. Чтобы программы из вима было удобно собирать (командой :make), нужно создать Makefile. Руками писать его тупо, для этого обычно юзают autoconf&&automake&&etc. Гугл показал мне пару занимательных статей на эту тему, но ни одна из них не привела к желаемому результату. А к желаемому результату меня привели сразу две таких статьи, немного везения и метод научного тыка. Через неделю мне снова понадобилось создать мэйкфайл, и я уже с трудом вспомнил, как это делается. Поэтому решил описать этот процесс здесь, чтобы уж точно не забыть.
Итак, имеется простенькая программа в одном файле test.cpp

Для начала пишем
autoscan
И получаем файл configure.scan. Его переименовываем в configure.in и открываем в текстовом редакторе. Там меняем наш файл примерно так:

AC_PREREQ(2.60)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_CONFIG_SRCDIR([test.cpp])
AM_INIT_AUTOMAKE([test], [0.1])
AC_PROG_CXX
AC_C_CONST
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
После этого можно запускать
aclocal
а при её успешном выполнении
autoconf
Результатом её работы будет скрипт configure. Создадим несколько нужных файлов
touch install-sh missing NEWS README AUTHORS ChangeLog
vim Makefile.am
Там напишем
bin_PROGRAMS=test
test_SOURCES-test.cpp
Теперь можем со спокойной душой запускать automake:
automake -a -c
с этими ключами оно создаст все необходимые файлы (можно убедиться в этом :) )
Всё. теперь можно запускать ./configure, затем make.

Комментариев нет: