GNU Build System - Autotools
About autotools you can find here http://en.wikipedia.org/wiki/GNU_build_system
Now let's learn it from an example
create a dir and some source file that you need to compile
mkdir autotools
cd autotools vi main.c
and in main.c ,we can write this into it
#include<sydio.h> #include"hello.h" int main() { printf("%s\n",ch); return 0; } //example
under ./autotools ,we can run autoscan,it will generate autoscan.log and configure.scan
autoscan
edit configure.scan and save it as configure.in
vi configure.scan #edit this file
and the final configure.in should be like this:
AC_PREREQ(2.57) AC_INIT(main,1.0) AM_INIT_AUTOMAKE(main,1.0) AC_CONFIG_SRCDIR([main.c]) AM_CONFIG_HEADER([config.h]) # 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]) AC_OUTPUT
AC_PREREQ references to the version of autoconf.
AM_INIT_AUTOMAKE must be include in this file,and "main" is the programs's name.
运行aclocal
aclocal
autoconf 生成autom4te.cache configure
autoconf
运行autoheader,生成config.h.in
autoheader
用vi编辑Makefile.am
vi Makefile.am
加入如下内容:
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=main
hello_SOURCES=main.c hello.h
运行automake
automake --add-missing
then we can use ./configure to generate Makefile, and use make to compile it, and use make install to install it into your system