All you should really know about Autoconf and Automake
So, here is the shortest possible tutorial on the autotools.
The problem with autotools is that it is used for complicated things, and people cut-and-paste complicated things even when they ought to be simple. 99% of people just need a way to access .pc files and generate juicy Makefiles; the portability part is taken care by glib, sdl and so on.
You can use then the following basic autotools setup, which is just 9 lines. You can start from here and add more stuff (including libtool).
AC_INIT([package], [version]) AM_INIT_AUTOMAKE([foreign subdir-objects]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_HEADERS([config.h]) # not even really needed AC_PROG_CC # or AC_PROG_CXX AC_CONFIG_FILES([Makefile]) AC_OUTPUT
bin_PROGRAMS = hello hello_SOURCES = hello.c
That's enough for:
$ autoreconf -fvi $ ./configure $ make
On top of this, for each package you need, you add:
PKG_CHECK_MODULES([cairo], [cairo]) PKG_CHECK_MODULES([fontconfig], [fontconfig])
AM_CFLAGS = $(cairo_CFLAGS) $(fontconfig_CFLAGS) LIBS += $(cairo_LIBS) $(fontconfig_LIBS)
respectively in configure.ac (after AC_PROG_CC) and Makefile.am.
Is that complicated?