diff --git a/README.md b/README.md
index c15ff59..49f9baf 100644
--- a/README.md
+++ b/README.md
@@ -209,3 +209,57 @@ VPATH(virtual search path): 这是一种方式，允许在src路径外进行conf

 若路径下有config.h.in文件生成时，说明autoreconf执行了autoheader; install-sh是由automake拷贝过来的。
+
+
+
+AC_PREREQ 是唯一在AC_INIT宏前使用的宏，确保安装的autoconf工具足够新。
+AC_INIT接受5个变量，package, version, 三个可选的：[bug-report]，[tarname], [url] (autoscan 只生成3个)
+automake根据tarname执行make dist时打包，名字为tarname-version.tar.gz
+bug-report对应着autoconfig的变量：@PACKAGE_BUGEPORT@，这个变量也会添加到config.h.in文件中。
+version可以时数字也可以是alpha之类的
+@PACKAGE_BUGEPORT@
+@PACKAGE_VERION@
+@PACKAGE_TARNAME@
+@PACKAGE_STRING@
+@PACKAGE_URL@
+
+
+
+configure.ac主要提供四个内容：
+1、Initialization
+2、Check request processing
+3、File instantiation request processing
+4、Generation of the configure script
+
+File instantiation request processing: 有四个这样的宏
+AC_CONFIG_FILES
+AC_CONFIG_HEADERS
+AC_CONFIG_COMMANDS
+AC_CONFIG_LINKS
+它们接受一个tag或文件列表,configure将从包含autoconf变量的模板中生成这些文件
+原型为:
+AC_CONFIG_XXXS(tag..., [commands], [init-cmds])
+tag这个参数有个OUT[:INLIST]形式，其中INLIST有个IN0[:IN1:...:INn]形式，因此在我的configure.ac文件中，
+AC_CONFIG_HEADERS([config.h]) == AC_CONFIG_HEADERS([config.h:config.h.in])，意思是config.status所包含的shell代码，将根据config.h.in生成config.h文件，可以提供一个列表作为输入，形式如下:
+AC_CONFIG_HEADERS([config.h]:cfg0:cfg1:cfg2)
+这时，config.status会根据顺序，生成config.h文件。
+
+AC_CONFIG_COMMANDS比较特殊，它不生成文件；它运行二进制的shell代码，autoconf工具根据主要用它接受并执行命令行参数，eg：
+./config.status config.h
+config.status命令行根据configure.ac中的AC_CONFIG_HEADERS宏重新生成config,h，并且只重新生成config.h
+可以执行./config.status --help获得更多信息
+
+AC_CONFIG_COMMANDS后面两个参数，第二个参数用于执行二进制shell指令，第三个参数初始化顶层的config.status和configure.ac, configure提供的变量。重要的是要记住所有初始化的宏共享一个config.status的命名空间，同时第一个参数tag就行当于名字了。eg：
+AC_INIT([test], [1.0])
+AC_CONFIG_COMMANDS([abc],
+                   [echo "Testing $mypkgname"],
+                   [mypkgname=$PACKAGE_NAME])
+AC_OUTPUT
+
+
+总结下初始化宏：
+1、config.status根据.in文件生成所有的文件；
+2、configure执行所有的平台检查，然后执行config.status;
+3、当执行不加任何参数执行config.status时，它根据上次检查的结果生成文件；
+4、可以根据tag执行config.status去生成文件，或执行命令；
+5、config.status可能没有根据configure.ac中的tag生成文件，原因是它根据上次检查的结果处理了变量。