Changes between Version 1 and Version 2 of user-directories


Ignore:
Timestamp:
May 26, 2006 10:45:55 AM (14 years ago)
Author:
andreasw
Comment:

first version - need to continue

Legend:

Unmodified
Added
Removed
Modified
  • user-directories

    v1 v2  
    11= Understanding the Directory Structure =
    22
    3 The directory structure might differ for individual projects in COIN.  However, we recommend to project managers to follow the layout below.  The example used is the {{{Clp}}} project, which requires the {{{CoinUtils}}} project and some data files (to run the unit test program).  We assume here that the base directory has been called {{{Coin-Clp}}} by the user.
     3The directory structure might differ for individual projects in COIN.  However, we recommend to project managers to follow the layout below.  The example below uses is the {{{Clp}}} project, which requires the {{{CoinUtils}}} project and some data files (to run the unit test program).  We assume here that the base directory has been called {{{Coin-Clp}}} by the user.
     4
     5If you download the source code for a project (here {{{Clp}}}), you will find the following structure.
    46
    57{{{
    6 Coin-Clp ---- BuildTools
    7                   |
    8                   -------- headers
     8Coin-Clp --- BuildTools
     9 |            |--- headers
     10 |
     11 |---------- Data
     12 |            |--- Netlib
     13 |            ---- Samples
     14 |
     15 |---------- CoinUtils
     16 |            |--- src
     17 |            |--- inc
     18 |            |--- test
     19 |            |--- [doc]      ([ ] means currently missing)
     20 |            ---- [examples]
     21 |
     22 |----------- Clp
     23              |--- src
     24              |--- inc
     25              |--- test
     26              |--- [doc]
     27              ---- examples
    928}}}
     29
     30In the case directory of the package ({{{Coin-Clp}}}) resides the main configuration script and Makefile.  A user should only issue commands in this directory.  The scripts and Makefiles automatically recurse into the correct subdirectories.
     31
     32The {{{BuildTools}}} directory contains files and scripts that are only necessary for project maintainers.  In its subdirectories {{{headers}} are versions of the configuration header files with system dependent information (such as available of certain system header files).  On a UNIX-like system, where the configuration script automatically generates the configuration header files for the system it is run on, the files in this directory are not used.  However, if one uses other environments to build the COIN binaries (such as the MS Developer Studio), those header files are required.
     33
     34Some projects require data files, in order to run the unit test program, or the provided examples.  Those files reside in subdirectories of the {{{Data}}} directory.
     35
     36For each COIN project that is required to build the desired packages, you will find a subdirectory with its name in the {{{Coin-Clp}}} base directory.  In the main directory for each project (e.g., {{{Clp}}}) resides the configuration script for this project, as well as the main Makefile.  However, you should not run those configuration scripts from these subdirectories; use the configuration scripts from the base directory instead.  In the main directory for each project you find also package-specific inforation such as a README and AUTHORS file.
     37
     38If the project manager of a COIN project follows our suggest directory structure, you will find the following subdirectories in the project's main directory (e.g., in {{{Clp}}} or {{{CoinUtils}}} above):
     39
     40 * {{{src}}}: Here resides the source code for the package, possible distributed in further subdirectories, together with the Makefile (which is automatically called from the Makefiles below).  Note, if you are a user for a COIN library, you should not include the header files from this directories, but instead "install" the package properly and get the headers from the installed {{include}} directory.
     41
     42 * {{{inc}}}: If the system is using a configuration header file (which is automatically generated when you run the configuration script), it is put here.  Again, if you are a user for a COIN library, do not include this file from here, but from the installed {{{include}}} directory.
     43
     44 * {{{test}}}: We ask project maintainers to provide some test program(s) to be able to verify a successful compilation, so that a user can test that everything is working fine, before (s)he installs the libraries and other files.  The code and possibly some data files for this unit test are located here.
     45
     46 * {{{doc}}}: If documetation s provided for this COIN project, it should be found here.
     47
     48 * {{{examples}}}: A package might contain some source code examples, for example to demonstrate how a user of a library can hook up his/her own down to the library.  The source files and further information for this can be found here.
     49
     50
     51After you compiled the code successfully, you can "install" the package (and automatically all it's dependencies), using {{{make install}}} (see '''????''').  By default, the files are install in the