configure in(3) 5.检查某些头文件是否存在 6.检查 Typedefs and structures 7.检查 Functions 8.指定在哪些目录输出 Makefile Seems troublesome, mmm? Dont worry autoscan will do most of the work for you
configure.in(3) 5. 检查某些头文件是否存在。 6. 检查Typedefs and structures 。 7. 检查Functions 。 8. 指定在哪些目录输出Makefile 。 Seems troublesome, mmm? Don’t worry, autoscan will do most of the work for you
Makefile. am(1) 一种比 Makefile更高层次的规则。只指定要生 成什么目标,它由什么源文件生成,要安装到 什么目录。 Just simple and stupid! e 可执行文件 bin programs= foo foo sources= fool. c fool h foo2.c Yoo DEPENDENCIES Pah x a foo ladd= foo 3. o-lm foc foo ldflags=-L<lib
Makefile.am(1) • 一种比Makefile更高层次的规则。只指定要生 成什么目标,它由什么源文件生成,要安装到 什么目录。 • Just simple and stupid! ☺ • 可执行文件: bin_PROGRAMS = foo foo_SOURCES = foo1.c foo1.h foo2.c foo_LDADD = foo3.o -lm foo4.a foo_LDFLAGS = -L<lib_path> foo_DEPENDENCIES =
Makefile. am(2) 对静态库: lib libraries= libfoo. a foo a sources= foo a ladd= foo a LIBadd foo a ldflags= 只在make时做静态连接用,不安装的库: noinst lIbraries= libfoo. a 对头文件: include HEAdErs=fooh 对数据文件: data data= datal data2
Makefile.am(2) • 对静态库: lib_LIBRARIES = libfoo.a foo_a_SOURCES = foo_a_LDADD = foo_a_LIBADD = foo_a_LDFLAGS = 只在make时做静态连接用,不安装的库: noinst_LIBRARIES = libfoo.a …… • 对头文件:include_HEADERS = foo.h • 对数据文件:data_DATA = data1 data2
Makefile. am( 3) 全局变量(对所有目标都适用) INCLUDES=-Idirl -/dir2 ldflags=-L/dirl -L/dir2 LDADD= foo. o foo. a -lfoo EXTRA DIST= filel file2源程序和一些默认的文件自动打 入 tar. gz包,其它文件若要进入 tar. gz'包可以用这种办法,比如配置文件, 数据文件等等。 SUBDIRS= dirl dir2在处理本目录之前要递归处理哪些子目录
Makefile.am(3) • 全局变量 (对所有目标都适用 ) INCLUDES = -I/dir1 -I/dir2 LDFLAGS = -L/dir1 -L/dir2 LDADD = foo.o foo.a -lfoo EXTRA_DIST = file1 file2 源程序和一些默认的文件自动打 入.tar.gz包,其它文件若要进入.tar.gz包可以用这种办法,比如配置文件, 数据文件等等 。 SUBDIRS = dir1 dir2 在处理本目录之前要递归处理哪些子目录
Makefile. am(4) 标准安装路径 s( prefix)=/usr/oeal是所有安装目录的默认前缀,可以通 过/ configure- prefix=< new_ prefix>的方法覆盖。 其它的预定义目录如: bindir=s( prefix)bin, libdir= prefix)/lib, datadir=S(prefix)/share, sysconfdir prefix)/etc 想定义一个新的安装路径?比如 Iconfig,可定义 confdir= S(prefix )/config, 7 Ficonf DATA=file1 file2 则fe,he2会作为数据文件安装到 s(prefix)/cong目录
Makefile.am(4) • 标准安装路径 $(prefix) = /usr/local 是所有安装目录的默认前缀,可以通 过./configure --prefix=<new_prefix>的方法覆盖。 其它的预定义目录如:bindir = $(prefix)/bin, libdir = $(prefix)/lib, datadir = $(prefix)/share, sysconfdir = $(prefix)/etc, … • 想定义一个新的安装路径?比如config, 可定义 confdir = $(prefix)/config, 然后conf_DATA = file1 file2, 则file1, file2会作为数据文件安装到$(prefix)/config目录 下