Links
configure.ac
- Written in m4sh (m4 + shell)
- Program initialization:
AC_INIT
macro—needs name, version, maintainer - Initialize automake:
AM_INIT_AUTOMAKE
- Make sure that C-compiler exists:
AC_PROG_CC
- Build
Makefile
fromMakefile.in
, replaces@PACKAGE_VERSION@
-type variables:AC_CONFIG_FILES([Makefile])
- Output the script:
AC_OUTPUT
AC_INIT([hello-world], [0.1], [tyler@tylercipriani.com])
# Initialize automake
AM_INIT_AUTOMAKE
# Ensure C-compiler exists
AC_PROG_CC
# Specify what files are to be created
AC_CONFIG_FILES([Makefile]) AC_OUTPUT
Makefile.am
- The
./configure
script (created byconfigure.ac
), expects to findMakefile.in
Makefile.in
is long and dumb (just like./configure
), so we make aMakefile.am
automake
generatesMakefile.in
foreign
AUTOMAKEOPTIONS tells that the layout is "non standard"
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = hello-world
hello-world_SOURCES = hello-world.c
Put it all together:
- create m4 environment:
aclocal
autoconf
does:configure.ac
→configure
automake --add-missing
does:Makefile.am
→Makefile.in
autoreconf --install
: autoreconf runs autoconf, autoheader, aclocal, automake, libtoolize, and autopoint
Add a comment (Comment Policy)