一般格式

文件类型

书写格式

可执行文件

bin_PROGRAMES = foo

foo_SOURCES = xxxx.c

foo_LDADD =

foo_LDFLAGS =

foo_DEPENDENCIES =

静态库

lib_LIBRARIES = libfoo.a

foo_a_SOURCES =

foo_a_LDADD =

foo_a_LIBADD =

foo_a_LDFALGS =

头文件

include_HEADERS = foo.h

数据文件

data_DATA = data1 data2

对于可执行文件和静态库类型,如果只想编译,不想安装到系统中,可以用 noinst_PROGRAMS代替bin_PROGRAMSnoinst_LIBRARIES代替lib_LIBRARIES

全局变量

Makefile.am还提供了一些全局变量供所有的目标体使用 :

变量

含义

INCLUDES

比如链接时所需要的头文件

LDADD

比如链接时所需要的库文件

LDFLAGS

比如链接时所需要的库文件选项标志

EXTRA_DIST

源程序和一些默认的文件将自动打入 .tar.gz 包,其他文件若要进入 .tar.gz 包可以使用这种方法,如配置文件,数据文件等。

SUBDIRS

处理本目录前要递归处理哪些子目录

automake 安装路径

automake设置了默认的安装路径:

标准安装路径

默认安装路径为 :
$(prefix) = /usr/local

可以通过 ./configure --prefix= 的方法来覆盖。


其它的预定义目录还包括 :

bindir = $(prefix)/bin,
libdir =  $(prefix)/lib,
datadir = $(prefix)/share,
sysconfdir = $(prefix)/etc

等等。

定义一个新的安装路径

比如test, 可定义

testdir = $(prefix)/test,

然后 test_DATA =test1 test2,则 test1test2 会作为数据文件安装到 $(prefix)/test 目录下。