Changes between Initial Version and Version 1 of pm-switch


Ignore:
Timestamp:
Oct 26, 2010 4:53:18 PM (11 years ago)
Author:
tkr
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • pm-switch

    v1 v1  
     1= Brief Tutorial on Switching to the New Buildtools =
     2
     3This tutorial attempts to explain how to make the switch to the new stable version of the build tools. It is necessarily incomplete and
     4
     5== What Needs to be Edited ==
     6
     7For the purposes of illustration, we shall assume that the project to be switched is Xxx. The project has been checked out with externals in the directory {{{Root/}}} with project source code residing in the directory {{{Root/Xxx}}}. To make the switch, the following files need to be edited:
     8 * {{{Root/configure.ac}}}
     9 * {{{Root/Xxx/configure.ac}}}
     10 * {{{Root/Xxx/Makefile.am}}}
     11 * {{{Root/Xxx/src/Makefile.am}}}
     12 * {{{Root/Externals}}}
     13and the following files need to be created:
     14 * {{{Root/Xxx/xxx.pc.in}}}
     15 * {{{Root/Xxx/xxx-uninstalled.pc.in}}}
     16 * {{{Root/Dependencies}}}
     17There may also be changes needed in any examples that use installed versions of the COIN libraries, but these are a little less standardized, so it's difficult to say exactly what files would be affected.
     18
     19== Externals ==
     20
     21At the moment, one must use only "trunk" versions for externals, since only the trunk version are using the new build tools. Here is the current set of externals for !CoinAll:
     22
     23{{{
     24BuildTools        https://projects.coin-or.org/svn/BuildTools/trunk
     25ThirdParty/ASL    https://projects.coin-or.org/svn/BuildTools/ThirdParty/ASL/trunk
     26ThirdParty/Blas   https://projects.coin-or.org/svn/BuildTools/ThirdParty/Blas/trunk
     27ThirdParty/Lapack https://projects.coin-or.org/svn/BuildTools/ThirdParty/Lapack/trunk
     28ThirdParty/Glpk   https://projects.coin-or.org/svn/BuildTools/ThirdParty/Glpk/trunk
     29ThirdParty/FilterSQP https://projects.coin-or.org/svn/BuildTools/ThirdParty/FilterSQP/trunk
     30ThirdParty/HSL    https://projects.coin-or.org/svn/BuildTools/ThirdParty/HSL/trunk
     31ThirdParty/Mumps  https://projects.coin-or.org/svn/BuildTools/ThirdParty/Mumps/trunk
     32ThirdParty/Metis  https://projects.coin-or.org/svn/BuildTools/ThirdParty/Metis/trunk
     33Data/Sample       https://projects.coin-or.org/svn/Data/trunk/Sample
     34CoinUtils         https://projects.coin-or.org/svn/CoinUtils/trunk/CoinUtils
     35Osi               https://projects.coin-or.org/svn/Osi/trunk/Osi
     36Clp               https://projects.coin-or.org/svn/Clp/trunk/Clp
     37DyLP              https://projects.coin-or.org/svn/DyLP/trunk/DyLP
     38Vol               https://projects.coin-or.org/svn/Vol/trunk/Vol
     39Cgl               https://projects.coin-or.org/svn/Cgl/trunk/Cgl
     40SYMPHONY          https://projects.coin-or.org/svn/SYMPHONY/trunk/SYMPHONY
     41Cbc               https://projects.coin-or.org/svn/Cbc/trunk/Cbc
     42Ipopt             https://projects.coin-or.org/svn/Ipopt/trunk/Ipopt
     43Alps              https://projects.coin-or.org/svn/CHiPPS/Alps/trunk/Alps
     44Dip               https://projects.coin-or.org/svn/Dip/trunk/Dip
     45}}}
     46
     47Another change with the new setup is that it is now highly recommended to use release versions in your externals. To make this easy, there is a script called {{{set_externals}}} that is part of the build tools that will automatically set your externals. To use it, you maintain a "dependencies" file (usually called {{{Root/Dependencies}}}) as opposed to an "externals" file. The dependencies files will usually contain the stable versions on which a project depends in the same format as the current {{{Externals}}} file. When you run the command {{{set_externals Dependencies}}}, the dependencies files will be parsed and externals set to latest release versions automatically. Note that if your dependencies files contains trunk or specific release versions, these will be used instead, overriding the mechanism for using the latest release version. For example, here is the current Dependencies file for the trunk of Blis, which depends on the trunks of Alps and BiCePS.
     48
     49{{{
     50BuildTools    https://projects.coin-or.org/svn/BuildTools/stable/0.5
     51ThirdParty/Blas https://projects.coin-or.org/svn/BuildTools/ThirdParty/Blas/stable/1.0
     52ThirdParty/Lapack https://projects.coin-or.org/svn/BuildTools/ThirdParty/Lapack/stable/1.0
     53CoinUtils     https://projects.coin-or.org/svn/CoinUtils/stable/2.6/CoinUtils
     54Clp           https://projects.coin-or.org/svn/Clp/stable/1.11/Clp
     55Osi           https://projects.coin-or.org/svn/Osi/stable/0.102/Osi
     56Cgl           https://projects.coin-or.org/svn/Cgl/stable/0.55/Cgl
     57Alps          https://projects.coin-or.org/svn/CHiPPS/Alps/trunk/Alps
     58Bcps          https://projects.coin-or.org/svn/CHiPPS/Bcps/trunk/Bcps
     59Data/Sample   https://projects.coin-or.org/svn/Data/stable/1.0/Sample
     60}}}
     61
     62== {{{Root/configure.ac}}} ==
     63