Changes between Version 15 and Version 16 of pm-autotools


Ignore:
Timestamp:
Jun 2, 2006 2:56:52 PM (14 years ago)
Author:
andreasw
Comment:

intermediate save

Legend:

Unmodified
Added
Removed
Modified
  • pm-autotools

    v15 v16  
    2121 * '''Basic structure of the {{{configure.ac}}} file''':  The {{{configure.ac}}} files have a certain structure.  Even if you used autoconf before, you should read about [wiki:pm-structure-config the basic structure of COIN configure.ac files], since we are using a number of custom defined autoconf macros.
    2222
    23 In COIN, we decide between two types of {{{configure.ac}}} files:
     23In COIN, we distinguish between two types of {{{configure.ac}}} files:
    2424
    2525 * '''Base directory configure.ac files''': Many packages in COIN have a simple {{{configure}}} script in the base directory of a package (the directory {{{Coin-Clp}}} in the example for the [wiki:user-directories directory structure], which is the {{{trunk}}} directory in the repository).  This configure script usually only verifies which components are available in the subdirectories, and generates the main Makefile.  [wiki:pm-base-config Here we discuss the package base directory configure.ac file].
    2626
    27  * '''Project directory configure.ac files''': In the project subdirectories (such as the {{{CoinUtils}}} and {{{Clp}}} subdirectories in [wiki:user-directories directory structure example]) are the real configuration files.  This is where the tests for each package are performed.  The {{{configure.ac}}} files here can be more involved.  [wiki:pm-project-config Here we discuss the project main directory configure.ac file].
     27 * '''Project directory configure.ac files''': In the project subdirectories (such as the {{{CoinUtils}}} and {{{Clp}}} subdirectories in [wiki:user-directories directory structure example]) are the real configuration files.  This is where the tests for each separate project are performed.  The {{{configure.ac}}} files here can be more involved.  [wiki:pm-project-config Here we discuss the project main directory configure.ac file].
    2828
    2929== The Makefile.am Files ==
     
    3535 * '''Base directory Makefile.am''':   Even though this generates the only Makefile a user will usually work with, it is very simple.  It mainly defines, into which subdirectories {{{make}}} should recurse, and it typically defines additional targets, such as {{{tests}}} which runs {{{make test}}} in all subdirectories that have tests.  [wiki:pm-base-make The Makefile.am for the package base directory is discussed here].
    3636
    37  * '''Project main directory Makefile.am''':  In each projects main directory (the subdirectories under the base directory, such as {{{Cpl}}} and {{{CoinUtils}}} in the [wiki:user-directories directory structure example], is the Makefile that takes care of project specific things, such defining how {{{make test}}} is run.  It also knows, into which source code directories {{{make}}} should recurse in order to build everything that the project has to provide.  [wiki:pm-project-make The main Makefile.am for a project is discussed here].
     37 * '''Project main directory Makefile.am''':  In each project's main directory (the subdirectories under the base directory, such as {{{Cpl}}} and {{{CoinUtils}}} in the [wiki:user-directories directory structure example]), is the Makefile that takes care of project specific things, such defining how {{{make test}}} is run.  It also knows, into which source code directories {{{make}}} should recurse in order to build everything that the project has to provide.  [wiki:pm-project-make The main Makefile.am for a project is discussed here].
    3838
    3939 * '''Source code directory Makefile.am files''': This is where the real stuff happens.  Here one specifies what is to be built, what source files are required for this, where (and whether) the compiled files are to be installed.  [wiki:pm-source-make The Makefile.am files for the source code directories are discussed here].
     
    4141 * '''Unit Test Makefile.am files''':  Since those also compile a program, they are similar to source directory {{{Makefile.am}}} files, but usually simpler.  [wiki:pm-test-make The Makefile.am files for the test code directories are discussed here].
    4242
    43  * '''Example Makefile.in files''':  COIN projects that generate a library, should contain some example code that demonstrates how the library can be used.  Here, we also recommend a provide ''simple'' Makefile to the user, that is adapted to the user's system and can be easily modified for the user's own application.  Since the Makefiles generated by {{{automake}}} are very complicated, we prefer to provide the template file {{{Makefile.in}}} directly instead one that is produced by {{{automake}}}.  If you want to provide such a Makefile for your example program, have a look at another existing COIN project and adapt it.
     43 * '''Example Makefile.in files''':  COIN projects that generate a library, should contain some example code that demonstrates how the library can be used.  Here, we also recommend to provide ''simple'' Makefile to the user, that is adapted to the user's system and can be easily modified for the user's own application.  Since the Makefiles generated by {{{automake}}} are very complicated, we prefer to provide the template file {{{Makefile.in}}} directly instead one that is produced by {{{automake}}}.  If you want to provide such a Makefile for your example program, have a look at another existing COIN project and adapt it.
    4444
    4545== Running the Autotools ==