Automake的标准工程组织

一、总体上的目录:
一般会有如下目录和文件,这些自己创建(见二)或用acmkdir自动生成:
1. 目录:
(1) 必选:
m4: 第三方或自己写的用于configure.in中的宏
doc: 各种文档
src: 源码顶层目录(里面怎么细分是自己的事)
config: 放置configure过程中的一些文件,使得顶层目录不那么多文件
(2) 可选:
include: 可选目录,你愿意的话,可以用configure将所有的头文件链接到这个目录下。一般不用。
lib: 可选目录,你愿意的话,可以将对系统调用的实现(针对有些平台上没有实现的调用),常用的小代码(你可能觉得太小,对每个工程都常用,不应该放src里做为库)放在这个目录下。
2. 文件:
如:README, AUTHORS, NEWS, ChangeLog, INSTALL, COPYING 有些是automake需要的,必须要存在,除非你用了automake --foreign 选项,就可以不用添加它们。 

二、一步步创建工程:
(这个用到我的例子,其说明见每一步,不单独说明例子了)

1. 创建必须目录:
mkdir src config doc m4

2. 创建configure.in 文件:
AC_INIT([kid],                            # 工程名
        [0.1],                            # 版本号
        [Yi Feng [email protected]],     # 名字和邮箱
        [kid])                            # make dist/distcheck的打包名
AC_CONFIG_AUX_DIR(config)                 # 表示将configure生成的一些文件,放在这里(使得上层整洁些)
AM_CONFIG_HEADER(config.h)                # 配置头文件名为config.h
AM_INIT_AUTOMAKE([dist-bzip2])            # 这里面当然很多参数,而[dist-bzip2]表示make dist/distcheck打包按bz2打包,默认是gz

AC_PROG_CC                                # 检测用什么C编译器
AC_PROG_CXX                               # 检测用什么C++编译器
AC_PROG_INSTALL                           # 生成安装脚本 install-sh
AC_PROG_RANLIB                     

你可能感兴趣的:(tools)