目录结构图示

flat - 图1

手动修改的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

效果

flat - 图2