Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1700403
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类: LINUX

2007-11-12 15:55:01

by pascal4123


1. autoscan:  生成系统配置草案 configure.ac
    autoscan搜索指定目录树(缺省是当前目录)里的源代码,生成configure.scan,需人工改名为configure.ac(或configure.in, 这是老版的约定);
    在configure.ac中,宏AM_INIT_AUTOMAKE(FULL-PACKAGE-NAME, VERSION)必须要有的;
    如果需要自己生成库并链接到程序中,还需要定义宏AC_PROG_RANLIB
    如果用到libtool,或要生成la动态链接库,需要定义宏AC_PROG_LIBTOOL!并且要让automake能找到ltmain.sh
    其他的宏的意义:
        AC_PREREQ 声明本文件要求的autoconf版本;
        AC_INIT 用来定义软件的名称和版本等信息;
        AC_CONFIG_SRCDIR 用来侦测所指定的源码文件是否存在,来确定源码目录的有效性。这个参数一般不需要修改。
        AC_CONFIG_HEADER 用于生成config.h文件,以便autoheader使用。

   在configure.ac中, #作为comment的开头符

2. aclocal:  基于configure.ac生成aclocal.m4(包含了automake所需的宏).
    开始时aclocal扫描所有的*.m4,然后是configure.ac,把搜索到的宏放到aclocal.m4中,这个文件也可以放用户自定义的宏.
    ##作为说明的开头符

3. autoconf:  基于configure.ac生成configure脚本. 

4. autoheader: 产生config.h.in

5. automake:  基于makefile.am生成makefile.in
    注意用 automake --add-missing   安装 install-sh, missing, depcomp
    AUTOMAKE_OPTIONS 软件检查等级(有3级 foreign, gnu, gnits;gnu是默认设置)。在执行automake时,它会检查目录下是否存在标准GNU软件包中应具备的各种文件,例如AUTHORS、ChangeLog、NEWS等文件。我们将其设置成foreign时,automake会改用一般软件包的标准来检查。只适用于等层目录中的Makefile.am。
    INCLUDES指定了在编译阶段(与连接阶段相对)中传递给C编译器的标志。
    bin_PROGRAMS列出了要编译的程序xxx。
    xxx_SOURCES列出了要编译和连接的文件,这些文件是依赖生成xxx程序的。在这个变量中的所有文件都被自动包含在发布包中。只有在`_SOURCES'中列出的头文件才会被包含在发布版本中,否则都将被忽略。除了.h, .c,.cpp等c/c++源文件之外,Lex(`.l')和yacc (`.y')文件也可被列出。
    xxx_LDADD列出其它需要链接到xxx程序中的目标文件和库。
    xxx_LDFLAGS传递给链接器的选项。不同于xxx_LDADD的地方是不能自动计算依赖关系.

6. configure:  生成系统配置文件. 把config.h.in变成config.h, 在模版文件makefile.in中插入/改写配置相关信息,生成makefile。生成本次安装配置信息文件config.status.

7. make:  构建系统

8. make install: 安装系统

    通常安装到/usr/local/bin, /usr/local/man. 也可以在configure参数中指定安装到其他目录 '--prefix=PREFIX'. 要安装到系统目录,必须有root权限.
    makefile.am中的变量EXTRA_DIST列出了需要包含在发布软件包(压缩的tar文件)中的文件,最重要的文件(如作为2进制文件或库的源文件的文件)会自动包含进来.
    顶层的makefile.am中的变量ACLOCAL_AMFLAGS告诉aclocal到哪找到*.m4文件
   
9. make uninstall: 删除已安装的文件






阅读(691) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~