Не могу запустить Makefile.am, что мне делать? - PullRequest
18 голосов
/ 17 ноября 2010

Я получил проект C для компиляции и запуска в Linux. Это очень большой проект со многими подкаталогами. Внутри родительского каталога находятся файлы Makefile.am и Makefile.in.

Я попытался запустить make -f Makefile.am и получил следующую ошибку:

make: Nothing to be done for `Makefile.am'.

Что это значит? Как мне выполнить мою задачу?

Ответы [ 4 ]

20 голосов
/ 17 ноября 2010

Эти файлы используются с Autotools suite. Файлы Makefile.am компилируются в файлы Makefile с использованием automake .

Посмотрите, есть ли в каталоге сценарий configure. Если есть, то наберите:

./configure

Если нет, то выполните:

autoreconf

в каталоге, в котором должен быть создан сценарий configure (для этого вам потребуется установить пакет Autotools).

После этого у вас должен быть скрипт configure, который вы можете запустить.

После завершения настройки у вас должен быть нормальный Makefile в каталоге, и вы сможете запустить

make
9 голосов
/ 22 ноября 2010

Что было оставлено:

  • Makefile.am преобразуется в Makefile.in с помощью automake.
  • Makefile.in преобразуется в Makefile с помощью команды configure.

Ни один из них (Makefile. {Am, in}) не должен использоваться с make -f.

Если tarball уже поставляется с configure, просто запустите его и выполните make. Если это не так, запустите ./autogen.sh или bootstrap (*). Если этого не существует, используйте autoreconf.

(*) autogen / bootstrap: удобный сценарий, добавленный разработчиками, который должен просто вызвать autoreconf. К сожалению, есть некоторые люди, которые отказываются от autoreconf и без необходимости вызывают все команды низкого уровня.

3 голосов
/ 17 ноября 2010

В дополнение к тому, что уже было сказано: Найдите скрипт с именем configure в каталоге проекта.Если это так, сборка проекта будет:

. / Configure

make

и, при необходимости, для установки:

sudo make install

или su -c "make install"

Даже если нет сценария configure .может быть один autogen.sh .Запустите этот сценарий, чтобы сгенерировать сценарий настройки, и выполните указанные выше действия.

1 голос
/ 17 ноября 2010

Makefile.am, вероятно, будет использоваться с automake .

try:

automake

Вы также можете просто попробовать

make -f Makefile.in

Так как это продукт запуска automake

...