Changes between Version 2 and Version 3 of pm-base-config


Ignore:
Timestamp:
May 31, 2006 4:11:06 PM (14 years ago)
Author:
andreasw
Comment:

fini

Legend:

Unmodified
Added
Removed
Modified
  • pm-base-config

    v2 v3  
    11= The Base Directory configure.ac File =
    22
    3 The purpose of the configuration script is to test what COIN subdirectories are present and should be compiled, and then initiate the configuration in those subdirectories.
     3The purpose of the configuration script in a package's base directory ({{{Coin-Clp}}} in the [wiki:user-directories example]) is to test what COIN project subdirectories are present and should be compiled, and then initiate the configuration in those subdirectories.
    44
    5 In the following we show the typical content of the {{{configure.ac}}} file for this directory and add comments explaining what it means and how it is adapted for a different project.
     5The beginning and the end of the file follow the [wiki:pm-structure-config basic structure] of {{{configure.ac}}} files.  The body for a base directory {{{configure.ac}}} file then looks like this:
    66
    77{{{
    8 # Copyright (C) 2006 International Business Machines.
    9 # All Rights Reserved.
    10 # This file is distributed under the Common Public License.
     8.
     9.
     10.
    1111
    12 ## $Id: configure.ac,v 1.1.2.1 2006/04/19 23:25:12 andreasw Exp $
     12#############################################################################
     13#     We only need automake to generate Makefiles for the distribution      #
     14#############################################################################
    1315
    14 # Author:  Andreas Waechter            IBM    2006-04-13
     16# Initialize automake
     17AC_COIN_INIT_AUTOMAKE
     18
     19#############################################################################
     20#                  Check which subprojects are there                        #
     21#############################################################################
     22
     23AC_COIN_MAIN_SUBDIRS(CoinUtils)
     24AC_COIN_MAIN_SUBDIRS(Data/Netlib)
     25AC_COIN_MAIN_SUBDIRS(Data/Sample)
     26AC_COIN_MAIN_SUBDIRS(Data/miplib3)
     27AC_COIN_MAIN_SUBDIRS(Clp)
     28AC_COIN_MAIN_SUBDIRS(Vol)
     29AC_COIN_MAIN_SUBDIRS(Osi)
     30AC_COIN_MAIN_SUBDIRS(Cgl)
     31AC_COIN_MAIN_SUBDIRS(Cbc)
     32
     33.
     34.
     35.
    1536}}}
    1637
    17 Everything in a line followed by a "{{{#}}}" is a comment.  Comments are usually copied into the generated {{{configure}}} script, unless the line starts with at least two "{{{#}}}".  Note the ${{{$Id...}}}$ stringl; this is a straing that is adapted by subversion and
     38 * The '''AC_COIN_INIT_AUTOMAKE''' macro initializes everything that is required to use Automake in connection with this {{{configure.ac}}} file.  Since no compilation is done at this basic level, we don't need to check for any compiler or other things.
     39
     40 * The '''AC_COIN_MAIN_SUBDIRS''' tell us the names of subdirectories with other COIN projects that should be compiled for this package.  In each subdirectory should also be a {{{configure.ac}}} file.  The final configure and Makefiles will recurse into those directories ''in the specified order'', i.e., if there are interdependencies, e.g., between libraries, '''make sure that you list the project subdirectories in the right order.'''  If during the run of {{{configure}}} by the user a subdirectory is not found, the configuration and make for that subdirectory is skipped.
     41
     42 Note that we also specify subdirectories for {{{Data}}}; those subdirectories contain data files required for running the unit tests or example programs.