Вот минимальный пример того, что вам нужно для ситуации, которую вы описываете.
Вам нужен makefile.am
, содержащий имя бинарного файла для сборки, и исходные файлы, используемые для его сборки (вам не нужно перечислять файлы заголовков, они будут обнаружены автоматически):
bin_PROGRAMS = example
example_SOURCES = main.c header.c
И вам нужен configure.ac
. Здесь вы устанавливаете имя и номер версии программы, инициализируете Automake с аргументом foreign
, чтобы он не жаловался вам на отсутствующие файлы, которые требуются для проекта GNU, говорите ему, что вам нужен компилятор C, говорите ему собрать ваш Makefile
и, наконец, скажите ему вывести результаты предыдущей конфигурации.
AC_INIT([example], [1.0])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
Если ваша существующая программа имеет какие-либо зависимости от библиотек, вы можете запустить autoscan
для обнаружения возможных зависимостей. Он создает файл configure.scan
, содержащий шаблон, который можно использовать для создания вашего configure.ac
; но если ваша программа проста, вы можете пропустить этот шаг и использовать приведенный выше минимальный пример.
Теперь запустите autoreconf --install
, чтобы скопировать некоторые необходимые файлы, и соберите Makefile.in
и configure
из указанных выше файлов конфигурации. Затем запустите ./configure
, чтобы настроить скрипт, сгенерировав файл Makefile
. Наконец, запустите make
, чтобы собрать вашу программу.
После того, как вы выполните эти шаги, сгенерированный вами Makefile
обнаружит изменения в вашем makefile.am
и снова запустит шаги, поэтому с этого момента вы сможете просто запустить make
без повторного выполнения всех этих шагов.
См. Automake и Autoconf для получения дополнительной информации.
person
Brian Campbell
schedule
15.01.2010