首页 > 学院 > 开发设计 > 正文

automake中Makefile.am学习

2019-11-06 08:10:01
字体:
来源:转载
供稿:网友

http://www.cnblogs.com/zmlctt/p/4161547.html http://blog.csdn.net/dengzhilong_cpp/article/details/7486791 创建一个 Makefile.am.这一步是创建Makefile很重要的一步,automake要用的脚本配置文件是Makefile.am,用户需要自己创建相应的文件。之后,automake工具转换成Makefile.in。 这个Makefile.am的内容如下:

------------------------------------------------AUTOMAKE_OPTIONS=foreignbin_PROGRAMS=mainmain_SOURCES=main.c------------------------------------------------

其中的AUTOMAKE_OPTIONS为设置automake的选项。由于GNU(在第1章中已经有所介绍)对自己发布的软件有严格的规范,比如 必须附 带许可证声明文件COPYING等,否则automake执行时会报错。automake提供了三种软件等级:foreign、gnu和gnits,让用 户选择采用,默认等级为gnu。在本例使用foreign等级,它只检测必须的文件。

bin_PROGRAMS定义要产生的执行文件名。如果要产生多个执行文件,每个文件名用空格隔开。

main_SOURCES定义“main”这个执行程序所需要的原始文件。如果”main”这个程序是由多个原始文件所产生的,则必须把它所用到的 所有原 始文件都列出来,并用空格隔开。例如:若目标体“main”需要“main.c”、“sunq.c”、“main.h”三个依赖文件,则定义 main_SOURCES=main.c sunq.c main.h。要注意的是,如果要定义多个执行文件,则对每个执行程序都要定义相应的file_SOURCES。

lib_LTLIBRARIES = libaudiobox.lalibaudiobox_la_SOURCES = audio_streamops.c / audio_rpc.c / audio_chn.clibaudiobox_la_CFLAGS = -I$(top_srcdir)/include / -g -Wall -Werror/ $(LIBFR_CFLAGS) $(LIBEVENT_CFLAGS) / $(LIBALSA_CFLAGS)libaudiobox_la_LDFLAGS = $(LIBFR_LIBS) $(LIBEVENT_LIBS) / $(LIBALSA_LIBS)bin_PROGRAMS = audiobox #定义要产生的执行文件名。如果要产生多个执行文件,每个文件名用空格隔开audiobox_CPPFLAGS = -I$(top_srcdir)/include / -g -Wall -Werror/ $(LIBFR_CFLAGS) $(LIBEVENT_CFLAGS) / $(LIBALSA_CFLAGS)audiobox_LDFLAGS = -pthread -lrt -lasound / $(LIBFR_LIBS) $(LIBEVENT_LIBS) / $(LIBALSA_LIBS)audiobox_SOURCES = / audiobox.c / audiobox_hal.c / audiobox_listener.c / audiobox_ctl.c / audiobox_service.c / audio_rpc.c / audiobox_softvol.c#main_SOURCES定义“main”这个执行程序所需要的原始文件。如果”main”这个程序是由多个原始文件所产生的,则必须把它所用到的所有原 始文件都列出来,并用空格隔开。例如:若目标体“main”需要“main.c”、“sunq.c”、“main.h”三个依赖文件,则定义 main_SOURCES=main.c sunq.c main.h。要注意的是,如果要定义多个执行文件,则对每个执行程序都要定义相应的file_SOURCES。AUTOMAKE_OPTIONS=foreign #automake提供了三种软件等级:foreign、gnu和gnits,让用 户选择采用,默认等级为gnu。在本例使用foreign等级,它只检测必须的文件。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表