Как повлиять на порядок целей, добавить дополнительные шаги и т.д. для Makefile.am? - PullRequest
1 голос
/ 17 декабря 2010

Могу ли я управлять Makefile.am, как я привык управлять Makefile?

Обычно я создаю цели, которые вызывают друг друга для создания проекта.

Но в Makefile.am у меня есть какой-то загадочный libqqq_la_SOURCES = ..., который я не знаю, что именно он делает.

Где написать, какой компилятор должен использовать для данного источника? Куда добавить шаг, который «qqq.c генерируется из qqq.vala»?

Как написать Makefile.am как просто Makefile?

Ответы [ 2 ]

3 голосов
/ 20 декабря 2010

Automake в 1.11 поддерживает Vala.

configure.ac:

AM_PROG_VALAC

Makefile.am:

AM_VALAFLAGS = whateverelse
whatever_SOURCES = xxx.vala
0 голосов
/ 17 декабря 2010

Automake автоматически скопирует любые цели Make, указанные вами в Makefile.am, в сгенерированный Makefile.Таким образом, вы можете создавать любые нестандартные, сложные вещи, просто включив их в файл .am.

Однако вы не должны делать это для всего - что лишает преимущества, которое дает Automake.пытаюсь предоставить вам.Если вы укажете

bin_PROGRAMS=foo
AM_CFLAGS=$(DEPS_CFLAGS)
foo_SOURCES=file1.cpp file2.cpp
foo_LDADD=$(DEPS_LIBS)

, вы все равно создадите стандартную цель Make.Я рекомендую вам научиться использовать макросы Automake для большинства стандартных вещей - в этом случае он будет более переносимым.

Лучший способ изучить богатый набор функций Autotools - это не читать руководство - это слишкомсложный и неорганизованный.Я предлагаю просто взять существующий проект GNU с открытым исходным кодом, который по стилю сборки (зависимости, платформы и т. Д.) Похож на ваш, и изучить его файлы Autoconf и Automake.Созданные проекты научились многим трюкам, которые вы можете выучить.

...