manpagez: man pages & more
info automake
Home | html | info | man
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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!


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.