automake 筆記
$ ls hello.c
hello.c
$ cat hello.c
#include stdio.h
int main (void)
{
printf ("hello\n");
return 0;
}
|
$ autoscan
$ ls
autoscan.log configure.scan hello.c
$ cp configure.scan configure.ac
$ vi configure.ac
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AM_INIT_AUTOMAKE(hello, 1.0)
AC_CONFIG_SRCDIR([hello.c])
AC_CONFIG_HEADERS([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_OUTPUT(Makefile)
|
$ ls
autoscan.log configure.ac configure.scan hello.c
$ aclocal
$ ls
aclocal.m4 autom4te.cache autoscan.log configure.ac configure.scan hello.c
$ autoheader
$ ls
aclocal.m4 autom4te.cache autoscan.log config.h.in configure.ac configure.scan hello.c
$ autoconf
$ ls
aclocal.m4 autoscan.log configure configure.scan
autom4te.cache config.h.in configure.ac hello.c
$ vi Makefile.am
bin_PROGRAMS=hello
hello_SOURCES=hello.c
|
$ touch NEWS README AUTHORS ChangeLog
$ automake --add-missing
$ ls
aclocal.m4 autoscan.log config.h.in configure.scan hello.c Makefile.am NEWS
AUTHORS ChangeLog configure COPYING INSTALL Makefile.in README
autom4te.cache compile configure.ac depcomp install-sh missing
$ ./configure
$ ls
aclocal.m4 compile configure hello.c Makefile.in
AUTHORS config.h configure.ac INSTALL missing
autom4te.cache config.h.in configure.scan install-sh NEWS
autoscan.log config.log COPYING Makefile README
ChangeLog config.status depcomp Makefile.am stamp-h1
$ make
make all-am
make[1]: Entering directory '/home/samlin/hello'
gcc -DHAVE_CONFIG_H -I. -g -O2 -MT hello.o -MD -MP -MF .deps/hello.Tpo -c -o hello.o hello.c
mv -f .deps/hello.Tpo .deps/hello.Po
gcc -g -O2 -o hello hello.o
make[1]: Leaving directory '/home/samlin/hello'
$ ls
aclocal.m4 ChangeLog config.log configure.scan hello.c Makefile NEWS
AUTHORS compile config.status COPYING hello.o Makefile.am README
autom4te.cache config.h configure depcomp INSTALL Makefile.in stamp-h1
autoscan.log config.h.in configure.ac hello install-sh missing
$ ./hello
hello