Automake

文件类型 书写格式
可执行文件

bin_PROGRAMS = foo
foo_SOURCES = XXX.c
foo_LDADD =
foo_LDFLAGS =

静态库

noinst_LIBRARIES = libfoo.a
libfoo_a_SOURCES = foo.c
libfoo_a_LDADD =
libfoo_a_LIBADD =

动态库

lib_LTLIBRARIES = libfoo.la
libfoo_la_SOURCES = foo.c
libfoo_la_LDADD =
libfoo_la_LIBADD =

变量篇

安装
    注:在Makefile.am文件中添加如下行。
头文件安装
include_HEADERS = foo.h bar/bar.h
      将会安装
$(includedir)/foo.h 和$(includedir)/bar.h.
nobase_include_HEADERS = foo.h bar/bar.h

    将会安装$(includedir)/foo.h 和$(includedir)/bar/bar.h.
otherincludedir = $(includedir)/my

otherinclude_HEADERS = foo.h

    将会安装$(includedir)/my/foo.h

任意文件安装
myprivate_datadir = /usr/share
myprivate_data_DATA = myshare/share.c

BUILT_SOURCES =
          a.c 
          b.c 
          b.h

在Makefile.am中有如上的内容.
有时候,一个可以被称作“源文件”的文件(例如一个C`.h'文件) 实际上是从其它文件中派生出来的。这类文件应该被罗列在变量 BUILT_SOURCES中。
在缺省状态下,不会编译已创建的源文件。你必须在一些其它的`_SOURCES'变量中明确地给出它们, 以便对其进行编译。

需要说明的是,在某些情况下,BUILT_SOURCES将以令人惊讶的方式工作。 为了获得已创建的源文件以进行自动依赖性跟踪,`Makefile'必须依赖于 $(BUILT_SOURCES)。这导致这些源文件可能在某些可笑的时候被重新创建。

参考:http://www.gnu.org/software/automake/manual/html_node/Sources.html

原文地址:https://www.cnblogs.com/cfox/p/3166821.html