AC_PREREQ([2.69])
AC_INIT([sample-test], [1.0], [qigaohua@xxx.com])
AM_INIT_AUTOMAKE(sample-test, 1.0)
AC_CONFIG_SRCDIR([test_example/sample.c])
AC_CONFIG_HEADERS([config.h])
AC_PROG_CC
AC_PROG_RANLIB
AC_CONFIG_FILES([Makefile
test_example/Makefile
test_src/Makefile
test_src/moudle1/Makefile
test_src/moudle2/Makefile
test_src/moudle3/Makefile])
AC_OUTPUT
3、执行aclocal、autoconf、autoheader、touch NEWS README AUTHORS ChangeLog、automake --add-missing
4、执行./configure生成Makefile
5、make
6 、OK
代码详情主目录下有俩个目录test_example和test_src。test_src 下有3个目录,分别对应三个功能模块。模块3依赖于模块1和模块2。现在需把三个模块分别编译成三个静态库。test_example是一些例子,sample.c 依赖于模块3实现的应用实例。生成Makefile1、先创建各个目录下的Makefile.am主目录 Makefile.am:# 在这里列举子目录时,如果目录之间存在依赖关系时,那么一定要在这里使用先后关系体现出来(被依赖的写在前面)# 读者可以尝试打乱
关于Autotools
我们前面的章节中已经讲到了Makefile的使用(点击进入查看文章)。我们知道在Linux下面如果编译一个比较大型的项目,我们可以通过Makefile的方式来完成。
但是,我们又蛋疼了,Makefile拥有复杂的语法结构,甚至让人难以领会,当我们项目非常大的时候,维护Makefile会成为一件非常头疼的事情。于是我们就有了autotools工具,专门用来生成Makef...
Makefile.am是AutoTool编译时读取相关编译参数的配置文件,文件区分大小写,从顶层目录到子工程生成二进制文件的路径上的目录都要存在,如果中间目录不存在该文件,其下的子目录不会被编译。
中间目录的Makefile.am至少包含
SUBDIRS
最终生成可执行文件文件的
《嵌入式Linux C语言应用程序设计》 作者:华清远见嵌入式培训中心
<br>第二章、嵌入式Linux ... 嵌入式Linux下的工程管理器make
■ 如何使用autotools来生成Makefile
■ 嵌入式Linux下的综合编辑器Emacs
0. 基础
先阅读GNU Autotools (autoconf, automake, libtool, etc.) 自动化编译 (1) 简单示例并成功执行、理解所说内容。
1. 先提供一个脚本。拷贝所有内容保存为文件atdir.sh并添加可执行权限,然后执行。注意,最好不要以根用户身份执行它。
#!/bin/sh
echo "Autotools for autotools