(automake-1.16.info)Complete


Next: true Up: Examples
Enter node , (file) or (file)node

4.1 A simple example, start to finish
=====================================

Let’s suppose you just finished writing ‘zardoz’, a program to make your
head float from vortex to vortex.  You’ve been using Autoconf to provide
a portability framework, but your ‘Makefile.in’s have been ad-hoc.  You
want to make them bulletproof, so you turn to Automake.

   The first step is to update your ‘configure.ac’ to include the
commands that ‘automake’ needs.  The way to do this is to add an
‘AM_INIT_AUTOMAKE’ call just after ‘AC_INIT’:

     AC_INIT([zardoz], [1.0])
     AM_INIT_AUTOMAKE
     ...

   Since your program doesn’t have any complicating factors (e.g., it
doesn’t use ‘gettext’, it doesn’t want to build a shared library),
you’re done with this part.  That was easy!

   Now you must regenerate ‘configure’.  But to do that, you’ll need to
tell ‘autoconf’ how to find the new macro you’ve used.  The easiest way
to do this is to use the ‘aclocal’ program to generate your ‘aclocal.m4’
for you.  But wait... maybe you already have an ‘aclocal.m4’, because
you had to write some hairy macros for your program.  The ‘aclocal’
program lets you put your own macros into ‘acinclude.m4’, so simply
rename and then run:

     mv aclocal.m4 acinclude.m4
     aclocal
     autoconf

   Now it is time to write your ‘Makefile.am’ for ‘zardoz’.  Since
‘zardoz’ is a user program, you want to install it where the rest of the
user programs go: ‘bindir’.  Additionally, ‘zardoz’ has some Texinfo
documentation.  Your ‘configure.ac’ script uses ‘AC_REPLACE_FUNCS’, so
you need to link against ‘$(LIBOBJS)’.  So here’s what you’d write:

     bin_PROGRAMS = zardoz
     zardoz_SOURCES = main.c head.c float.c vortex9.c gun.c
     zardoz_LDADD = $(LIBOBJS)

     info_TEXINFOS = zardoz.texi

   Now you can run ‘automake --add-missing’ to generate your
‘Makefile.in’ and grab any auxiliary files you might need, and you’re
done!


automatically generated by info2www version 1.2.2.9