# The autoconf/automake stuff

As the Gambas package is maintained by the `automake` tool, you have to define a `Makefile.am` file that explains how to compile the component, and what to install.

To get information about `automake` , you can browse the info manual on your Linux box, or buy a book as I did. I bought GNU AUTOCONF, AUTOMAKE, and LIBTOOL , New Riders Publishing , written by the authors of these GNU tools. This book, even not complete, helped me a lot to use the powerful but obscure GNU tools.

Here is, for example, a modified `Makefile.am` file that comes from the `gb.db` component sources :

      ## If the component directory has subdirectories, put them here
      SUBDIRS = ...
      ## The component description file has to be distributed
      EXTRA_DIST = *.component

      ## This is necessary to have gambas.h and other useful include files in the path
      INCLUDES = -I$(top_srcdir)/src/share

      ## The component file name
      lib_LTLIBRARIES = lib.gb.db.la

      ## Put there the shared library you need to link with the component.
      lib_gb_la_LIBADD = ...

      ## The source files and header files of the component
      lib_gb_db_la_SOURCES = \
       gb.db.h main.h main.c \
       CDatabase.h CDatabase.c \
       CTable.h CTable.c \
       CResult.h CResult.c

      ## Tells automake how to install the component description file
      install-exec-local:
              @cp -f *.component $(libdir)

      ## Of course, you can put every specific rule you need to compile your component