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

posted @ 2012-12-24 16:12  Ray.floyd  阅读(380)  评论(0编辑  收藏  举报