Added documentation

This commit is contained in:
Ruben Laguna 2015-02-06 20:18:20 +01:00
parent 2bc328f237
commit c61d9afb3a
2 changed files with 45 additions and 17 deletions

View File

@ -13,5 +13,5 @@ testsuite_CFLAGS = $(DEPS_CFLAGS) # DEPS_* are filled by PKG_CHECK_MODULES
testsuite_LDADD = $(DEPS_LIBS) # in configure.ac
testsuite_SOURCES = tests/test.c
TESTS = testsuite
TESTS = testsuite # https://www.gnu.org/software/automake/manual/html_node/Scripts_002dbased-Testsuites.html#Scripts_002dbased-Testsuites

58
README
View File

@ -1,11 +1,53 @@
# autotools-template
Template for an autotools (autoconf, automake) project
Introduction
============
Setting up an `Autotools` build system can be daunting. So I decided to
create a template with the basics to use as the basis for my projects.
It may be surprising to the novice that there is no `./configure` but
`./configure` is a generated file that it's shipped with the
distribution of your software (the tarball that you get `make dist`).
As such the `./configure` doesn't belong in the source control
repository. Running `autoreconf -f` will generate `./configure` and a
bunch of other files.
To build from scrath you need to perform:
autoreconf -i # Only needed if configure.ac or Makefile.am changes
./configure # generates Makefiles and config.h
make # build
make check # run the tests
I'm not an autotools expert by any means. So take my advice with a grain
of salt.
There are two input files:
* `configure.ac`: The `./configure` script will be generated from
from it. Here is were you check for libraries,
headers, etc.
* `Makefile.am`: This file will be transformed into `Makefile.in` that
`./configure` will use to generate the `Makefile`.
What to do after cloning the repository
=======================================
configure.ac
------------
Edit configure.ac to change the FULL-PACKAGE-NAME, VERSION and
BUG-REPORT-ADDRESS fields to match your project.
Edit src/Makefile.am to configure the "products" or executables.
Makefile.am
-----------
Edit src/Makefile.am to say which "products" (executables, binaries)
will be generated and what are the source files for each one.
bin_PROGRAMS = executable1 executable2
executable1_SOURCES = sourcefile1.c sourcefile2.c
executable1_CFLAGS =
@ -13,20 +55,6 @@ executable2_SOURCES = sourcefile3.c sourcefile4.c
executable2_CFLAGS =
./autogen.sh will generate ./configure and the Makefile.in files
from the configure.ac, Makefile.am and src/Makefile.am files
./configure will generate config.h and Makefile and src/Makefile
Run:
./autogen.sh && ./configure && make
to test the whole setup.
You need to run ./autogen.sh && ./configure after modifying *.ac or *.am files
Reference material
==================