目录结构图示
手动修改的2个文件
对于 flat 结构而言,主要的工作量是创建 Makefile.am 文件,该文件由 宏、变量组成;
对于flat结构而言,我们主要是修改2个文件即可:
configure.ac
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT(main, 1.0, www.softool.cn)
AC_CONFIG_SRCDIR(main.c)
#如果需要这里的头文件,则需要执行 autoheader
AC_CONFIG_HEADERS([config.h])
#一般情况 AM_INIT_AUTOMAKE 后面也有2个参数:包的名字,版本号 这里我就不写了,会自动生成。
AM_INIT_AUTOMAKE
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
#形式一: AC_CONFIG_FILES([Makefile]) 会把 Makefile 自动传递给 AC_OUTPUT
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
#形式二: 把上面2行注释,然后写为
#AC_OUTPUT([Makefile])
Makefile.am
## 最宽松的检查
AUTOMAKE_OPTIONS=foreign
## 定义生成的目标文件名
bin_PROGRAMS=main
## 定义目标文件名依赖的源文件
main_SOURCES=main.c hello.c hello.h
执行演示
整个命令的执行过程
autoscan
mv configure.scan configure.ac
#编辑 configure.ac
aclocal
autoconf
autoheader
#编辑 Makefile.am
automake --add-missing
./configure
make