我可以管理Makefile.am,因为我习惯于管理Makefile吗?
通常我会创建相互调用的目标,以便构建项目。
但是在Makefile.am中我有一些神秘的libqqq_la_SOURCES = ...
,我不知道它到底在做什么。
在哪里编写应该为给定源使用的编译器?在哪里添加“从qqq.vala生成qqq.c”的步骤?
如何将Makefile.am编写为Makefile?
答案 0 :(得分:3)
1.11中的Automake确实有Vala支持。
configure.ac:
AM_PROG_VALAC
Makefile.am:
AM_VALAFLAGS = whateverelse whatever_SOURCES = xxx.vala
答案 1 :(得分:0)
Automake会自动将您在Makefile.am中指定的任何Make目标复制到生成的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文件。已建立的项目已经学到了很多可以学习的技巧。