- Timestamp:
- Mar 30, 2005, 4:55:04 PM (19 years ago)
- Location:
- CMT/v1r19
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
CMT/v1r19/ChangeLog
r19 r21 1 2005-03-30 <arnault@lal.in2p3.fr> 2 3 * doc/table.html: Install link to the Trac bug reporting system. 4 1 5 2005-03-30 Christian Arnault <arnault@lal.in2p3.fr> 261 2 6 -
CMT/v1r19/doc/CMTDoc.html
r18 r21 23 23 <center>Christian Arnault</center> 24 24 <center><tt>arnault@lal.in2p3.fr</tt></center></h2> 25 <center><i>Document revision date : 2005-03- 21</i></center><hr><h2><a href="#index">General index</a></h2>25 <center><i>Document revision date : 2005-03-30</i></center><hr><h2><a href="#index">General index</a></h2> 26 26 <hr><h2><a name="Presentation"></a><a href="#index"><tt> 1</tt></a> - Presentation</h2> 27 27 <blockquote> … … 270 270 <i>sub-projects</i> 271 271 which correspond to the practical 272 organization of the software developments.</p> 273 <p>There are no constraints on the number of such areas into 274 which <tt>CMT</tt> 275 packages are installed. We'll see <a HREF="#Localizing a package">later</a> 276 how the different areas 277 or sub-projects can be declared and identified by 272 organization of the software base.</p> 273 <p>There are no constraints on the number of such sub-projects 274 or areas into which <tt>CMT</tt> 275 packages are installed. We'll 276 see <a HREF="#Localizing a package">later</a> 277 how the 278 different sub-projects can be declared and identified by 278 279 <tt>CMT</tt> 279 280 .</p> … … 400 401 <li>a structuration in software domains, such as Reconstruction, 401 402 Simulation, Graphics, Core, etc.</li> 402 <li>how responsibilities or management polic yare defined and403 <li>how responsibilities or management policies are defined and 403 404 assigned </li> 404 405 <li>reusing or sharing different software products from … … 406 407 </ul> 407 408 <p>Considering the simple structuring aspects of sub-projects, two 408 important configuration parameters handled by CMT must be409 understood before attempting to manage packages. These are the410 following environment variables:</p>409 important configuration parameters (environment variables) handled 410 by CMT must be understood before attempting to manage 411 packages:</p> 411 412 <ul> 412 <li><tt>CMTPROJECTPATH</tt> 413 </li> 414 <li><tt>CMTPATH</tt> 415 </li> 413 <li><a href="#CMTPROJECTPATH"><tt>CMTPROJECTPATH</tt> 414 </a> 415 for a 416 global specification of where projects can be found. This 417 specification should be considered as the standard mechanism for 418 structuring the software base since from it, CMT can and will 419 deduce all other localization parameters (like 420 <tt>CMTPATH</tt> 421 ).<p></p> 422 </li> 423 <li><a href="#CMTPATH"><tt>CMTPATH</tt> 424 </a> 425 offers a more 426 internal mechanism for localizing packages. It's not generally 427 meant to be defined manually since CMT will construct it from 428 <tt>CMTPROJECTPATH</tt> 429 . However, it's important to understand 430 how this configuration parameter is used to locate 431 packages.</li> 416 432 </ul> 417 <hr><h3><a name="CMTPROJECTPATH"></a><a href="#index"><tt> 4. 1</tt></a> - CMTPROJECTPATH</h3> 433 <p>Projects receive detailed descriptions or specifications in a 434 dedicated <i>project file</i> 435 , always located in a <tt>cmt</tt> 436 directory at their top directory level, and named 437 <tt>cmt/project.cmt</tt> 438 . It can receive the following 439 specifications:</p> 440 <pre class="cmt"> 441 project <project-name> [1] 442 <i>project-use specifications...</i> [2] 443 <i>strategy specifications...</i> [3] 444 </pre> 445 <ol> 446 <li>The project name specified here takes precedence over the 447 project name specified in the directory structure. However when 448 <tt>CMTPROJECTPATH</tt> 449 is not specified, this may cause 450 conflicts in the localization of projects. In this case it's 451 highly recommended to always use the same naming convention in 452 project files as in the directory hierarchy.<p></p> 453 </li> 454 <li>Projects are hierarchized as a directed acyclic graph. The 455 minimal hierarchy simply corresponds to the order of the 456 <tt>CMTPATH</tt> 457 items. A more complex hierarchy can be 458 specified through use statements between sub-projects. This 459 hierarchy also defines a <i>parent/child</i> 460 relationship between 461 projects. If a project <tt>A</tt> 462 uses another project 463 <tt>B</tt> 464 , <tt>A</tt> 465 is also named the <i>parent</i> 466 and 467 <tt>B</tt> 468 the <i>child</i> 469 <p></p> 470 </li> 471 <li>CMT Strategies (for build or setup) are separately 472 collected into each project. Therefore one can apply different 473 strategies to different sub-projects. The strategy 474 specifications may appear in requirements file of any package 475 of a project or in the <tt>cmt/project.cmt</tt> 476 project file. 477 <p>By default a project inherits the strategies of its 478 parents. Or if it's the top project, it follows the default 479 strategies defined by CMT (Refer to this 480 <a href="#The default strategies defined in CMT">appendix</a> 481 to see the default strategies currently defined by CMT).</p> 482 <p></p> 483 </li> 484 </ol> 485 <hr><h3><a name="The project file"></a><a href="#index"><tt> 4. 1</tt></a> - The project file</h3> 486 <blockquote> 487 <p>The project file can be created using the command:</p> 488 <pre> 489 > cmt create_project <project-name> [<release>] [<path>]</pre> 490 <p>This will create the complete directory hierarchy from the 491 current directory (or, when it is specified from the optional 492 project path). It will also create a project file containing the 493 project name.</p> 494 <blockquote><i>Note that the <release> argument may be 495 left empty (or to an empty string). In this case, the directory 496 hierarchy will be limited to one level devoted to the project 497 name.</i> 498 </blockquote> 499 <pre> 500 <path>/<project-name>/<release>/cmt/project.cmt 501 <path>/<project-name>/cmt/project.cmt</pre> 502 <p>As an example, we create the following projects:</p> 503 <pre> 504 > cmt create_project WorkArea "" /test 505 > cmt create_project ProjectA 1.0 /test 506 > cmt create_project ProjectB 1.0 /test</pre> 507 <p>And we fill <tt>CMTPATH</tt> 508 with:</p> 509 <pre> 510 /test/WorkArea:/test/ProjectA/1.0:/test/ProjectB/1.0</pre> 511 <p>Then the following projects will appear displayed from bottom 512 to top as</p> 513 <pre> 514 > cd /test/WorkArea 515 > cmt show projects 516 <i><font COLOR="#000077" face="courier new, courier">WorkArea (in /test/WorkArea) (current) 517 ProjectA 1.0 (in /test/ProjectA/1.0) 518 ProjectB 1.0 (in /test/ProjectB/1.0)</font></i></pre> 519 <p>Of course the preferred way to characterize this software 520 base should rather be based on specifying the relationships 521 between those three sub-projects, through the use statements in 522 the projects files.</p> 523 <p>For instance in our little example, we could add the 524 following statement into the project file of WorkArea:</p> 525 <pre> 526 use ProjectA 1.0</pre> 527 <p>and the following statement into the project file of ProjectB:</p> 528 <pre> 529 use ProjectB 1.0</pre> 530 <p>Then instead of specifying <tt>CMTPATH</tt> 531 we'd rather 532 simply define <tt>CMTPROJECTPATH</tt> 533 as:</p> 534 <pre> 535 /test</pre> 536 </blockquote> 537 <hr><h3><a name="Projects and strategies"></a><a href="#index"><tt> 4. 2</tt></a> - Projects and strategies</h3> 538 <blockquote> 539 <p>Every strategy setting defines two mutually exclusive tags 540 and activates one of them.</p> 541 <pre class="cmt"> 542 <project>_<have_item> 543 <project>_<have_not_item> </pre> 544 <p>Examples</p> 545 <pre class="cmt"> 546 <project>_prototypes 547 <project>_no_prototypes 548 <project>_with_install_area 549 <project>_without_install_area 550 <project>_config 551 <project>_no_config 552 <project>_root 553 <project>_no_root 554 <project>_cleanup 555 <project>_no_cleanup</pre> 556 <p>In particular, the installation area mechanism is strongly 557 connected with the project hierarchy. This happens through 558 several mechanisms:</p> 559 <ul> 560 <li>The <tt><project></tt> 561 parameter is expanded in the 562 <tt>cmtpath_pattern</tt> 563 construct in addition to the 564 <tt><path></tt> 565 parameter. This parameter is assigned 566 the name of the project associated with the running 567 <tt>CMTPATH</tt> 568 entry. <p></p> 569 </li> 570 <li>The <tt><project></tt> 571 parameter is also available 572 for normal patterns. In this case it is assigned the project 573 name associated with the cmtpath parameter for the current 574 package.<p></p> 575 </li> 576 <li>Every project defines a tag of the same name, and the tag 577 of the current project is active.<p></p> 578 </li> 579 <li>The <tt>cmt_installarea_prefix</tt> 580 macro is specialized 581 <i>per project</i> 582 and every project may override the 583 <tt><project>_installarea_prefix</tt> 584 macro. The default 585 value of any <tt><project>_installarea_prefix</tt> 586 is 587 <tt>${cmt_installarea_prefix}</tt> 588 <p></p> 589 </li> 590 </ul> 591 </blockquote> 592 <hr><h3><a name="CMTPROJECTPATH"></a><a href="#index"><tt> 4. 3</tt></a> - CMTPROJECTPATH</h3> 418 593 <blockquote> 419 594 <p>This is an environment variable containing a search list, 420 very similar to the well know <tt>PATH</tt> 421 environment 422 variable, containing a list of file paths where CMT projects can 423 be found. The syntax of this search list follows the standard 424 syntax of search lists, i.e. items are separated using a 425 <tt>:</tt> 595 very similar to the well know Unix or Windows <tt>PATH</tt> 596 environment variable, containing a list of file paths where CMT 597 projects can be found. The syntax of this search list follows 598 the standard syntax of search lists, i.e. items are separated 599 using a <tt>:</tt> 426 600 character on Unix and a <tt>;</tt> 427 character on 428 Windows.</p> 429 <p><blockquote><i>One should understand this search list as the primary 430 mechanism to locate sub-projects in the software base, and 431 therefore packages. This in particular can completely replace 432 the <tt>CMTPATH</tt> 433 -based search mechanism for packages that 434 was used before <tt>v1r18</tt> 435 . However the two mechanisms are 436 still supported together.</i> 601 character 602 on Windows.</p> 603 <p><blockquote><i>One should understand this search list as the 604 primary mechanism to locate sub-projects in the software base, 605 and therefore packages. This in particular can completely 606 replace the <tt>CMTPATH</tt> 607 -based search mechanism for packages 608 that was used before <tt>v1r18</tt> 609 . However the two mechanisms 610 are still both supported and in fact interact with each 611 other.</i> 437 612 </blockquote> 438 613 </p> 439 <p>A sub-project in itself is a two-level directory structure,614 <p>A sub-project in itself is a multi-level directory structure, 440 615 located below one of the items of this search list, and composed 441 616 of:</p> 442 617 <ul> 443 618 <li>the sub-project name</li> 444 <li>the sub-project release </li>619 <li>the sub-project release (which may span several directory levels)</li> 445 620 </ul> 446 621 <p>Then, below this directory structure, we find</p> … … 508 683 </li> 509 684 </ul> 510 <p>This search list is considered to interpret the <i>use</i>685 <p>This search list is used to interpret the <i>use</i> 511 686 statements written in the project files. This project use 512 687 statement takes the form:</p> … … 541 716 use Core 1.0 542 717 use ProductA 1.1.2</pre> 543 <p><i>Note that sub-project release identifiers are considered544 using a perfect-match principle.</i>718 <p><i>Note that sub-project release identifiers are always 719 considered using a perfect-match principle.</i> 545 720 </p> 546 721 <p>Structuring the set of sub-projects comprising a software 547 base is sufficient to permit CMT to find all sub-projects and 548 thus all packages in them. Defining <tt>CMTPROJECTPATH</tt> 722 base is sufficient to permit CMT to find <i>all</i> 723 sub-projects 724 and thus <i>all</i> 725 packages in them. Defining 726 <tt>CMTPROJECTPATH</tt> 549 727 <i>and</i> 550 installing the list of use statements in all 551 appropriate project files entirely suppress the need of manually 552 defining the <tt>CMTPATH</tt> 553 search list.</p> 554 </blockquote> 555 <hr><h3><a name="CMTPATH"></a><a href="#index"><tt> 4. 2</tt></a> - CMTPATH</h3> 728 installing the list of use 729 statements in all appropriate project files entirely suppress 730 the need of manually defining the <tt>CMTPATH</tt> 731 search 732 list.</p> 733 </blockquote> 734 <hr><h3><a name="CMTPATH"></a><a href="#index"><tt> 4. 4</tt></a> - CMTPATH</h3> 556 735 <blockquote> 557 736 <p>This is an environment variable containing a search list, … … 566 745 Windows.</p> 567 746 <p><blockquote><i>When the software base is organized and 568 configured using the <tt>CMTPROJECTPATH</tt> 569 search list and 570 project-use statements in the project files, this search list is 571 automatically and internally generated by CMT, and therefore it 572 should not be manually defined nor manipulated. If this is your 573 case, you can skip this section</i> 747 configured using the <a href="#CMTPROJECTPATH"><tt>CMTPROJECTPATH</tt> 748 </a> 749 search list 750 and project-use statements in the project files, this search 751 list is automatically and internally generated by CMT, and 752 therefore it should not be manually defined nor manipulated. If 753 this is your case, you can skip this 754 section</i> 574 755 </blockquote> 575 756 </p> 576 <p>There should be one entry</p> 757 <p>It is possible to manually define this search list (when 758 <tt>CMTPROJECTPATH</tt> 759 is not defined or when project files are 760 not provided)</p> 761 <p>There should be one entry per package area, and the list is 762 ordered. The order of items is used to prioritize the package 763 search.</p> 764 <p><tt>CMTPATH</tt> 765 can be specified:</p> 766 <ul> 767 <li>as the environment variable named <tt>CMTPATH</tt> 768 <pre> 769 sh> export CMTPATH=/home/arnault/mydev:/ProjectB </pre> 770 <pre> 771 bat> set CMTPATH=/home/arnault/mydev;/ProjectB </pre> 772 or (in a <tt>requirements</tt> 773 file) 774 <pre class="cmt"> 775 path_append CMTPATH "/home/arnault/mydev" 776 path_append CMTPATH "/ProjectB"</pre> 777 </li> 778 <li>in <tt>.cmtrc</tt> 779 files, which can be located either in 780 the current directory, in the <i>home</i> 781 directory of the 782 developper or in <tt>${CMTROOT}/mgr</tt> 783 . The syntax to use in this 784 configuration file is: 785 <pre> 786 CMTPATH=/home/arnault/mydev:/ProjectB </pre> 787 </li> 788 <li>In the Windows environment, this configuration parameter 789 may also be installed as a <i>Registry</i> 790 under the alternate 791 keys: 792 <ul> 793 <li><tt>HKEY_LOCAL_MACHINE/Software/CMT/path</tt> 794 </li> 795 <li><tt>HKEY_CURRENT_USER/Software/CMT/path</tt> 796 </li> 797 </ul> 798 </li> 799 </ul> 800 <blockquote><i>The project file (i.e. the file 801 <tt>cmt/project.cmt</tt> 802 ), when it exists for the current 803 package (i.e. upstream in the directory hierarchy), also 804 provides an automatic value for the <tt>CMTPATH</tt> 805 search 806 list.</i> 807 </blockquote> 577 808 </blockquote> 578 809 </blockquote> … … 645 876 Installing the cmt directory 646 877 Creating a new project file </font></i></pre> 647 <p>This creates a project structure (i.e. a648 <tt> cmt/project.cmt</tt>649 f ile) from the current directory. Once878 <p>This creates a project structure 879 <tt>Dev/cmt/project.cmt</tt> 880 from the current directory. Once 650 881 this project has been created we have a complete environment to 651 start creating packages and working out our software base.</p> 882 start creating packages below <tt>Dev</tt> 883 and working out our software base.</p> 652 884 <p> A package is primarily defined by a <i>name</i> 653 885 and a … … 660 892 </p> 661 893 <pre> 662 csh> cd mydev894 csh> cd Dev 663 895 csh> cmt create Foo v1 664 896 <i><font COLOR="#000077" face="courier new, courier">------------------------------------------ 665 897 Configuring environment for package Foo version v1. 666 898 CMT version v1r18p20041201. [1] 667 Root set to /home/arnault/ mydev.899 Root set to /home/arnault/Dev. 668 900 System is Linux-i686 [2] 669 901 ------------------------------------------ … … 865 1097 <p>The first ingredient we need at this level is to understand how 866 1098 projects themselves are localized, since packages will be found 867 inside project areas.</p> 868 <p>Projects are localized according to the <tt>CMTPATH</tt> 869 path 870 list. Thus it is <i>always</i> 871 required to define this environment 872 variable as soon as several project areas are expected. However, 873 there is one special case where this path list can be avoided, 874 i.e. when only one project area is considered. In this case, the 875 knowledge of this single project area can simply be deduced from 876 the detection of the project file, created at the top of its disk 877 space.</p> 1099 inside project areas. You should therefore refer to the 1100 <a href="#Defining and managing projects">section on projects</a> 1101 where the complete mechanism based on <a href="#CMTPROJECTPATH"><tt>CMTPROJECTPATH</tt> 1102 </a> 1103 or <a href="#CMTPATH"><tt>CMTPATH</tt> 1104 </a> 1105 is described.</p> 1106 <p>However, there is one special case where this path list can be 1107 avoided, i.e. when only one project is considered. In this case, 1108 the knowledge of this single project area can simply be deduced 1109 from the detection of the project file, created at the top of its 1110 disk space.</p> 878 1111 <p>A given version of a given package is always referred to by 879 1112 using a <i>use</i> … … 906 1139 is 907 1140 absolute (case #3), </li> 908 <li> the access paths optionally registered in the configuration 909 parameter - see below - <tt>CMTPATH</tt> 1141 <li> the access paths registered in the configuration parameter 1142 <a href="#CMTPATH"><tt>CMTPATH</tt> 1143 </a> 910 1144 (and in decreasing 911 1145 priority, the first element being searched for first).</li> 912 1146 </ol> 913 <blockquote><hr>914 <i>915 The configuration parameter <tt>CMTPATH</tt>916 can be specified917 either in the environment variable named <tt>CMTPATH</tt>918 or in919 <tt>.cmtrc</tt>920 files, which can themselves be located either in921 the current directory, in the <i>home</i>922 directory of the923 developper or in <tt>${CMTROOT}/mgr</tt>924 . In the Windows925 environment, this configuration parameter may also be926 installed as a <i>Registry</i>927 under either the keys:928 <ul>929 <li><tt>HKEY_LOCAL_MACHINE/Software/CMT/path</tt>930 </li>931 <li><tt>HKEY_CURRENT_USER/Software/CMT/path</tt>932 </li>933 </ul>934 <p>The project file (i.e. the file <tt>cmt/project.cmt</tt>935 ),936 when it exists for the current package area, is able to937 provide an automatic value for the <tt>CMTPATH</tt>938 search939 list.</p>940 </i>941 <hr></blockquote>942 1147 <p>If the <i>path</i> 943 argument is specified as a relative path1148 argument is specified as a relative path 944 1149 (case #2 above) (ie. there is no leading <i>slash</i> 945 1150 character or … … 950 1155 from the list specified in the <tt>CMTPATH</tt> 951 1156 configuration 952 parameter, then using the default root; and the offset is appended 953 at each searched location.</p> 954 <p>The <tt>CMTPATH</tt> 955 parameter is thus used as a search list for 956 the packages, and the individual paths are separated in this list 957 by <i>colons</i> 958 (<i>semi-colons</i> 959 on Windows). </p> 960 <p>A very typical usage of thie <tt>CMTPATH</tt> 961 search list is to 962 assign one entry per project or sub-project considered in the 963 workning context. This is consistent with an approach where every 964 sub-project will have a dedicated management style, access rights, 965 rsponsible persons, etc.</p> 966 <p>As an example, if we specify the <tt>CMTPATH</tt> 967 parameter as 968 follows : </p> 1157 parameter; and the offset is appended at each searched 1158 location.</p> 1159 <p>As an example, if the <tt>CMTPATH</tt> 1160 parameter contains: </p> 969 1161 <pre> 970 csh> setenv CMTPATH /home/arnault/mydev:/ProjectB </pre> 971 <pre> 972 sh> export CMTPATH=/home/arnault/mydev:/ProjectB </pre> 973 <pre> 974 bat> set CMTPATH=/home/arnault/mydev;/ProjectB </pre> 975 or (in a <tt>requirements</tt> 976 file) 977 <pre class="cmt"> 978 path_append CMTPATH "/home/arnault/mydev" 979 path_append CMTPATH "/ProjectB"</pre> 980 or (in a <tt>.cmtrc</tt> 981 file) 982 <pre> 983 CMTPATH=/home/arnault/mydev:/ProjectB </pre> 1162 /home/arnault/mydev:/ProjectB </pre> 984 1163 <p>Then a <i>use</i> 985 1164 statement (defined within a given package) … … 1031 1210 </p> 1032 1211 </blockquote> 1033 <hr><h2><a name="The concept of project"></a><a href="#index"><tt> 7</tt></a> - The concept of project</h2> 1034 <blockquote> 1035 The purpose of the concept of <i>project</i> 1036 or <i>sub-project</i> 1037 is to structure the software bases developed using CMT. This 1038 concept basically assigns a semantics to the physical structuring 1039 mechanism of the software areas already described by the <tt>CMTPATH</tt> 1040 search list. 1041 <p>Some general properties can describe the knowledge of projects 1042 in CMT:</p> 1043 <ul> 1044 <li>One project is always explicitly or implicitly associated 1045 with every CMTPATH entry.<p></p> 1046 </li> 1047 <li>Every project can be <i>named</i> 1048 inside a dedicated text 1049 file (the <i>project file</i> 1050 ) named <tt>cmt/project.cmt</tt> 1051 , 1052 located immediately below the corresponding <tt>CMTPATH</tt> 1053 entry. The format of this file is 1054 <pre class="cmt"> 1055 project <project-name> 1056 <i>strategy specifications...</i></pre> 1057 <p></p> 1058 </li> 1059 <li>When not explicitly named, a sub-project is automatically 1060 assigned the default name <tt>Project<N></tt> 1061 by CMT, 1062 where <tt><N></tt> 1063 is the sequence number of the project 1064 in the list<p></p> 1065 </li> 1066 <li>The project file can be created using one of the commands: 1067 <pre> 1068 > cmt create_project <project-name> 1069 > cmt -project=<project-name> create ... 1070 > cmt -project=<project-name> checkout ...</pre> 1071 <p></p> 1072 </li> 1073 <li>When being within one project area where a project file has 1074 been installed, its CMTPATH is automatically generated as the 1075 location where the first visible project file is 1076 detected.<p></p> 1077 </li> 1078 <li>The same project may be associated with several CMTPATH 1079 entries, typically when one entry is a development area of 1080 another one being the production area of the same 1081 sub-project<p></p> 1082 </li> 1083 <li>Since CMTPATH entries are ordered the projects are 1084 hierarchized accordingly. The last CMTPATH entry (i.e. the 1085 rightmost one) corresponds to the top project while the first 1086 CMTPATH entry (i.e. the leftmost one) corresponds to the bottom 1087 project. A project may have a predecessor and/or a successor. 1088 <p>As an example, suppose we have set up the following 1089 <tt>CMTPATH</tt> 1090 :</p> 1091 <pre> 1092 $HOME/work-for-A:/ProjectA:/ProjectB</pre> 1093 Then the following projects will appear displayed from bottom 1094 to top as 1095 <pre> 1096 > cmt show projects 1097 <i><font COLOR="#000077" face="courier new, courier">Project1 (in /.../work-for-A) 1098 Project2 (in /ProjectA) 1099 Project3 (in /ProjectB) 1100 CMT (in /afs/cern.ch/sw/contrib)</font></i></pre> 1101 And if projects have been explicitly named this display will become: 1102 <pre> 1103 > cmt show projects 1104 <i><font COLOR="#000077" face="courier new, courier">A (in /.../work-for-A) 1105 A (in /ProjectA) 1106 Project3 (in /ProjectB) 1107 CMT (in /afs/cern.ch/sw/contrib)</font></i></pre> 1108 <p></p> 1109 </li> 1110 <li>CMT Strategies (for build or setup) are separately 1111 collected into each project. Therefore one can apply different 1112 strategies to different sub-projects. The strategy 1113 specifications may appear in requirements file of any package 1114 of a project or in the <tt>cmt/project.cmt</tt> 1115 project file. 1116 <p>By default a project inherits the strategies of its 1117 predecessor. Or if it's the top project, it follows the default 1118 strategies defined by CMT (Refer to this 1119 <a href="#The default strategies defined in CMT">appendix</a> 1120 to see the default 1121 strategies currently defined by CMT).</p> 1122 <p></p> 1123 </li> 1124 <li>A CMT command displays the projects and their associated CMTPATH: 1125 <pre> 1126 > cmt show projects 1127 > cmt show project <project-name></pre> 1128 <p></p> 1129 </li> 1130 <li>The installation area mechanism is strongly connected with 1131 the <tt>CMTPATH</tt> 1132 hierarchy. Therefore it will also be connected with 1133 the project concept. This will happen through several 1134 mechanisms:<p></p> 1135 <ul> 1136 <li>The <tt><project></tt> 1137 parameter is expanded in the 1138 <tt>cmtpath_pattern</tt> 1139 construct in addition to the 1140 <tt><path></tt> 1141 parameter. This parameter is assigned 1142 the name of the project associated with the running 1143 <tt>CMTPATH</tt> 1144 entry. <p></p> 1145 </li> 1146 <li>The <tt><project></tt> 1147 parameter is also available 1148 for normal patterns. In this case it is assigned the 1149 project name associated with the cmtpath parameter for the 1150 current package.<p></p> 1151 </li> 1152 <li>Every project defines a tag of the same name, and the 1153 tag of the current project is active.<p></p> 1154 </li> 1155 <li>The <tt>cmt_installarea_prefix</tt> 1156 macro is specialized 1157 <i>per project</i> 1158 and every project may override the 1159 <tt><project>_installarea_prefix</tt> 1160 macro. The 1161 default value of any 1162 <tt><project>_installarea_prefix</tt> 1163 is 1164 <tt>${cmt_installarea_prefix}</tt> 1165 <p></p> 1166 </li> 1167 </ul> 1168 <p></p> 1169 </li> 1170 <li>Every strategy setting defines two mutually exclusive tags and activates one of them. 1171 <pre class="cmt"> 1172 <project>_<have_item> 1173 <project>_<have_not_item> </pre> 1174 Examples 1175 <pre class="cmt"> 1176 <project>_prototypes 1177 <project>_no_prototypes 1178 <project>_with_install_area 1179 <project>_without_install_area 1180 <project>_config 1181 <project>_no_config 1182 <project>_root 1183 <project>_no_root 1184 <project>_cleanup 1185 <project>_no_cleanup</pre> 1186 <p></p> 1187 </li> 1188 </ul> 1189 </blockquote> 1190 <hr><h2><a name="Assigning semantics to packages. Common practices"></a><a href="#index"><tt> 8</tt></a> - Assigning semantics to packages. Common practices</h2> 1212 <hr><h2><a name="Assigning semantics to packages. Common practices"></a><a href="#index"><tt> 7</tt></a> - Assigning semantics to packages. Common practices</h2> 1191 1213 <blockquote> 1192 1214 Generally speaking, CMT makes no assumption on how or why is used 1193 1215 a package. However past experience has shown that packages can be 1194 1216 categorized according to their purpose or their type of contents. 1195 <hr><h3><a name="The primary package"></a><a href="#index"><tt> 8. 1</tt></a> - The primary package</h3>1217 <hr><h3><a name="The primary package"></a><a href="#index"><tt> 7. 1</tt></a> - The primary package</h3> 1196 1218 <blockquote> 1197 1219 This is the most general and basic pakage type, which provides … … 1221 1243 statements.</p> 1222 1244 </blockquote> 1223 <hr><h3><a name="The policy package"></a><a href="#index"><tt> 8. 2</tt></a> - The policy package</h3>1245 <hr><h3><a name="The policy package"></a><a href="#index"><tt> 7. 2</tt></a> - The policy package</h3> 1224 1246 <blockquote> 1225 1247 This kind of package only provides conventions, working methods, … … 1264 1286 Then the global policy package will use them 1265 1287 </blockquote> 1266 <hr><h3><a name="The container or management package"></a><a href="#index"><tt> 8. 3</tt></a> - The container or management package</h3>1288 <hr><h3><a name="The container or management package"></a><a href="#index"><tt> 7. 3</tt></a> - The container or management package</h3> 1267 1289 <blockquote> 1268 1290 In large projects, it's often useful to decompose the software … … 1290 1312 packages of the domain.</p> 1291 1313 </blockquote> 1292 <hr><h3><a name="The release package"></a><a href="#index"><tt> 8. 4</tt></a> - The release package</h3>1314 <hr><h3><a name="The release package"></a><a href="#index"><tt> 7. 4</tt></a> - The release package</h3> 1293 1315 <blockquote> 1294 1316 This package is one particular example of the container concept, … … 1298 1320 assigned to the project releases themselves. 1299 1321 </blockquote> 1300 <hr><h3><a name="The glue or interface package"></a><a href="#index"><tt> 8. 5</tt></a> - The glue or interface package</h3>1322 <hr><h3><a name="The glue or interface package"></a><a href="#index"><tt> 7. 5</tt></a> - The glue or interface package</h3> 1301 1323 <blockquote> 1302 1324 This kind of package defines an interface to an existing … … 1326 1348 </blockquote> 1327 1349 </blockquote> 1328 <hr><h2><a name="Managing site dependent features - The CMTSITE environment variable"></a><a href="#index"><tt> 9</tt></a> - Managing site dependent features - The CMTSITE environment variable</h2>1350 <hr><h2><a name="Managing site dependent features - The CMTSITE environment variable"></a><a href="#index"><tt> 8</tt></a> - Managing site dependent features - The CMTSITE environment variable</h2> 1329 1351 <blockquote> 1330 1352 <p>Software bases managed by <tt>CMT</tt> … … 1362 1384 LBNL "/auto/atlas/sw/lhcxx"</pre> 1363 1385 </blockquote> 1364 <hr><h2><a name="Configuring a package"></a><a href="#index"><tt> 10</tt></a> - Configuring a package</h2>1386 <hr><h2><a name="Configuring a package"></a><a href="#index"><tt> 9</tt></a> - Configuring a package</h2> 1365 1387 <blockquote> 1366 1388 <p>The first ingredient of a proper package configuration is the … … 1461 1483 </ul> 1462 1484 </blockquote> 1463 <hr><h2><a name="Selecting a specific configuration"></a><a href="#index"><tt>1 1</tt></a> - Selecting a specific configuration</h2>1485 <hr><h2><a name="Selecting a specific configuration"></a><a href="#index"><tt>10</tt></a> - Selecting a specific configuration</h2> 1464 1486 <blockquote> 1465 1487 A configuration describes the conditions in which the package has … … 1497 1519 between machines running different operating 1498 1520 systems, or when a project has to be deployed on several sites. 1499 <hr><h3><a name="Describing a configuration"></a><a href="#index"><tt>1 1. 1</tt></a> - Describing a configuration</h3>1521 <hr><h3><a name="Describing a configuration"></a><a href="#index"><tt>10. 1</tt></a> - Describing a configuration</h3> 1500 1522 <blockquote> 1501 1523 <p><tt>CMT</tt> … … 1699 1721 </ol> 1700 1722 </blockquote> 1701 <hr><h3><a name="Defining the user tags"></a><a href="#index"><tt>1 1. 2</tt></a> - Defining the user tags</h3>1723 <hr><h3><a name="Defining the user tags"></a><a href="#index"><tt>10. 2</tt></a> - Defining the user tags</h3> 1702 1724 <blockquote> 1703 1725 <p>The user configuration tags can generally be specified though … … 1765 1787 </ul> 1766 1788 </blockquote> 1767 <hr><h3><a name="Activating tags"></a><a href="#index"><tt>1 1. 3</tt></a> - Activating tags</h3>1789 <hr><h3><a name="Activating tags"></a><a href="#index"><tt>10. 3</tt></a> - Activating tags</h3> 1768 1790 <blockquote> 1769 1791 By default, <tt>CMTCONFIG</tt> … … 1911 1933 </blockquote> 1912 1934 </blockquote> 1913 <hr><h2><a name="Working on a package"></a><a href="#index"><tt>1 2</tt></a> - Working on a package</h2>1935 <hr><h2><a name="Working on a package"></a><a href="#index"><tt>11</tt></a> - Working on a package</h2> 1914 1936 <blockquote> 1915 1937 <p>In this section, we'll see, through a quite simple scenario, … … 1918 1940 of the <tt>Foo</tt> 1919 1941 package already used in this document. </p> 1920 <hr><h3><a name="Working on a library"></a><a href="#index"><tt>1 2. 1</tt></a> - Working on a library</h3>1942 <hr><h3><a name="Working on a library"></a><a href="#index"><tt>11. 1</tt></a> - Working on a library</h3> 1921 1943 <blockquote> 1922 1944 <p>Let's assume, as a first example, that the <tt>Foo</tt> … … 2066 2088 operation</p> 2067 2089 </blockquote> 2068 <hr><h3><a name="Working on an application"></a><a href="#index"><tt>1 2. 2</tt></a> - Working on an application</h3>2090 <hr><h3><a name="Working on an application"></a><a href="#index"><tt>11. 2</tt></a> - Working on an application</h3> 2069 2091 <blockquote> 2070 2092 <p>Assume we now want to add a test program to our … … 2151 2173 </ul> 2152 2174 </blockquote> 2153 <hr><h3><a name="Working on a test or external application"></a><a href="#index"><tt>1 2. 3</tt></a> - Working on a test or external application</h3>2175 <hr><h3><a name="Working on a test or external application"></a><a href="#index"><tt>11. 3</tt></a> - Working on a test or external application</h3> 2154 2176 <blockquote> 2155 2177 It is also possible to work on a <i>test</i> … … 2178 2200 interface are still available in these conditions. </p> 2179 2201 </blockquote> 2180 <hr><h3><a name="Construction of a global environment"></a><a href="#index"><tt>12. 4</tt></a> - Construction of a global environment</h3> 2181 <blockquote> 2182 <p>A software base generally consists in many <i>packages</i> 2183 , 2184 some of them providing <i>libraries</i> 2185 or <i>documents</i> 2186 , 2187 others providing <i>applications</i> 2188 , some providing both, some 2189 providing just <i>glues</i> 2190 towards external software 2191 products.</p> 2192 <p> On another view, this software base may a mix of packages 2193 shared between several projects and sets of packages specific to 2194 various projects. One may have several software bases as well 2195 (combined using the <tt>CMTPATH</tt> 2196 environment variable). </p> 2197 <p> In such contexts, it is often desirable that a given project 2198 defines its own selection of all existing packages. This can 2199 easily be done with <tt>CMT</tt> 2200 by defining a <i>project</i> 2201 package, containing only <tt>use</tt> 2202 statements towards the 2203 appropriate selection of packages for this particular 2204 project. </p> 2205 <p>Let's consider as an example the project named 2206 <tt>MyProject</tt> 2207 . We may create the package named 2208 <tt>MyProject</tt> 2209 similarly to any other package : </p> 2210 <pre> 2211 csh> cd ..... 2212 csh> cmt create MyProject v1 /ProjectB</pre> 2213 <p> Then the <tt> <a HREF='#The requirements file'>requirements</a> </tt> 2214 file of this new package 2215 will simply contain a set of <tt>use</tt> 2216 statements, defining the 2217 <i>official</i> 2218 set of validated versions of the packages 2219 required for the project. This mechanism also represents the 2220 notion of <i>global release</i> 2221 traditionally addressed in 2222 configuration management environments </p> 2223 <pre class="cmt"> 2224 package MyProject 2225 2226 use Cm v7r6 2227 use Db v4r3 2228 use El v4r2 2229 use Su v5 2230 use DbUI v1r2 Db 2231 use ElUI v1r1 El 2232 use VSUUI v3 Su/VSU 2233 use VMM v1 2234 use VPC v3 </pre> 2235 <p>Then any user wanting to access the so-called <i>official</i> 2236 release of the package set appropriate to the project 2237 <tt>MyProject</tt> 2238 will simply do (typically within its login 2239 shell script) : </p> 2240 <pre> 2241 # a login script 2242 2243 ... 2244 2245 source /ProjectB/MyProject/v1/cmt/setup.csh </pre> 2246 <p>Later on, future evolutions of the <tt>MyProject</tt> 2247 package 2248 will reflect progressive integration steps, which 2249 <i>validate</i> 2250 the evolutions of each referenced package. </p> 2251 </blockquote> 2252 </blockquote> 2253 <hr><h2><a name="Defining a document generator"></a><a href="#index"><tt>13</tt></a> - Defining a document generator</h2> 2202 </blockquote> 2203 <hr><h2><a name="Defining a document generator"></a><a href="#index"><tt>12</tt></a> - Defining a document generator</h2> 2254 2204 <blockquote> 2255 2205 <p> In a Unix environment, documents are built using <tt>make</tt> … … 2312 2262 containing one main target. Both the resulting make fragment and 2313 2263 the make target will have the name of the constituent.</p> 2314 <hr><h3><a name="An example : the tex document-style"></a><a href="#index"><tt>1 3. 1</tt></a> - An example : the tex document-style</h3>2264 <hr><h3><a name="An example : the tex document-style"></a><a href="#index"><tt>12. 1</tt></a> - An example : the tex document-style</h3> 2315 2265 <blockquote> 2316 2266 <p> … … 2440 2390 </ul> 2441 2391 </blockquote> 2442 <hr><h3><a name="How to create and install a new document style"></a><a href="#index"><tt>1 3. 2</tt></a> - How to create and install a new document style</h3>2392 <hr><h3><a name="How to create and install a new document style"></a><a href="#index"><tt>12. 2</tt></a> - How to create and install a new document style</h3> 2443 2393 <blockquote> 2444 2394 <blockquote><hr> … … 2463 2413 same subdirectory, one of them will be the <i>header</i> 2464 2414 of 2465 2415 the generated complete fragment, the other will be its 2466 2416 <i>trailer</i> 2467 2417 </li> … … 2594 2544 </center> 2595 2545 </blockquote> 2596 <hr><h3><a name="Examples"></a><a href="#index"><tt>1 3. 3</tt></a> - Examples</h3>2546 <hr><h3><a name="Examples"></a><a href="#index"><tt>12. 3</tt></a> - Examples</h3> 2597 2547 <blockquote> 2598 2548 <ol> … … 2651 2601 </blockquote> 2652 2602 </blockquote> 2653 <hr><h2><a name="The tools provided by CMT"></a><a href="#index"><tt>1 4</tt></a> - The tools provided by CMT</h2>2603 <hr><h2><a name="The tools provided by CMT"></a><a href="#index"><tt>13</tt></a> - The tools provided by CMT</h2> 2654 2604 <blockquote> 2655 2605 The set of conventions and tools provided by <tt>CMT</tt> … … 2685 2635 commands available through the <tt>cmt</tt> 2686 2636 user interface. </p> 2687 <hr><h3><a name="The requirements file"></a><a href="#index"><tt>1 4. 1</tt></a> - The requirements file</h3>2688 <blockquote> 2689 <hr><h4><a name="The general requirements syntax"></a><a href="#index"><tt>1 4. 1. 1</tt></a> - The general requirements syntax</h4>2637 <hr><h3><a name="The requirements file"></a><a href="#index"><tt>13. 1</tt></a> - The requirements file</h3> 2638 <blockquote> 2639 <hr><h4><a name="The general requirements syntax"></a><a href="#index"><tt>13. 1. 1</tt></a> - The general requirements syntax</h4> 2690 2640 <blockquote> 2691 2641 <ul> … … 2701 2651 by space characters).</p> 2702 2652 <p>Each statement is composed of words separated with spaces 2703 or tabulations.</p>2653 or tabulations.</p> 2704 2654 <p>The first word of a statement is the name of the 2705 2655 configuration parameter.</p> … … 2752 2702 <p>Comments : they start with the <tt>#</tt> 2753 2703 character and 2754 extend up to the end of the current line.2704 extend up to the end of the current line. 2755 2705 </p> 2756 2706 </li> … … 2760 2710 </blockquote> 2761 2711 </blockquote> 2762 <hr><h3><a name="The concepts handled in the requirements file"></a><a href="#index"><tt>1 4. 2</tt></a> - The concepts handled in the requirements file</h3>2763 <blockquote> 2764 <hr><h4><a name="The package structuring style "></a><a href="#index"><tt>1 4. 2. 1</tt></a> - The package structuring style </h4>2765 <blockquote> 2766 </blockquote> 2767 <hr><h4><a name="Meta-information : author, manager"></a><a href="#index"><tt>1 4. 2. 2</tt></a> - Meta-information : author, manager</h4>2712 <hr><h3><a name="The concepts handled in the requirements file"></a><a href="#index"><tt>13. 2</tt></a> - The concepts handled in the requirements file</h3> 2713 <blockquote> 2714 <hr><h4><a name="The package structuring style "></a><a href="#index"><tt>13. 2. 1</tt></a> - The package structuring style </h4> 2715 <blockquote> 2716 </blockquote> 2717 <hr><h4><a name="Meta-information : author, manager"></a><a href="#index"><tt>13. 2. 2</tt></a> - Meta-information : author, manager</h4> 2768 2718 <blockquote> 2769 2719 The author and manager names 2770 2720 </blockquote> 2771 <hr><h4><a name="package, version"></a><a href="#index"><tt>1 4. 2. 3</tt></a> - package, version</h4>2721 <hr><h4><a name="package, version"></a><a href="#index"><tt>13. 2. 3</tt></a> - package, version</h4> 2772 2722 <blockquote> 2773 2723 The package name and version. These statements are purely 2774 2724 informational. 2775 2725 </blockquote> 2776 <hr><h4><a name="Constituents : application, library, document"></a><a href="#index"><tt>1 4. 2. 4</tt></a> - Constituents : application, library, document</h4>2726 <hr><h4><a name="Constituents : application, library, document"></a><a href="#index"><tt>13. 2. 4</tt></a> - Constituents : application, library, document</h4> 2777 2727 <blockquote> 2778 2728 <p>Describe the composition of a constituent. Application … … 3034 2984 </ol> 3035 2985 </blockquote> 3036 <hr><h4><a name="Groups"></a><a href="#index"><tt>1 4. 2. 5</tt></a> - Groups</h4>2986 <hr><h4><a name="Groups"></a><a href="#index"><tt>13. 2. 5</tt></a> - Groups</h4> 3037 2987 <blockquote> 3038 2988 Groups permit the organization of the constituents that must … … 3053 3003 features, graphical libraries) and therefore might require a 3054 3004 controled re-build. This is especially useful for having these 3055 3005 constituents only rebuilt on demand rather than rebuilt 3056 3006 automatically when the default make command is run.</p> 3057 3007 <p>One could, for instance specify within the requirements file :</p> … … 3083 3033 related constituents.</p> 3084 3034 </blockquote> 3085 <hr><h4><a name="Languages"></a><a href="#index"><tt>1 4. 2. 6</tt></a> - Languages</h4>3035 <hr><h4><a name="Languages"></a><a href="#index"><tt>13. 2. 6</tt></a> - Languages</h4> 3086 3036 <blockquote> 3087 3037 Some computer languages are known by default by <tt>CMT</tt> … … 3179 3129 . 3180 3130 </blockquote> 3181 <hr><h4><a name="Symbols"></a><a href="#index"><tt>1 4. 2. 7</tt></a> - Symbols</h4>3131 <hr><h4><a name="Symbols"></a><a href="#index"><tt>13. 2. 7</tt></a> - Symbols</h4> 3182 3132 <blockquote> 3183 3133 <p>This is a generic concept supporting the notion of … … 3553 3503 VisualC "link.exe /nologo /machine:IX86 " 3554 3504 </pre> 3555 <hr><h5><a name="actions"></a><a href="#index"><tt>1 4. 2. 7. 1</tt></a> - actions</h5>3505 <hr><h5><a name="actions"></a><a href="#index"><tt>13. 2. 7. 1</tt></a> - actions</h5> 3556 3506 <blockquote> 3557 3507 Actions are one of the possible symbols. Their … … 3627 3577 </blockquote> 3628 3578 </blockquote> 3629 <hr><h4><a name="use"></a><a href="#index"><tt>1 4. 2. 8</tt></a> - use</h4>3579 <hr><h4><a name="use"></a><a href="#index"><tt>13. 2. 8</tt></a> - use</h4> 3630 3580 <blockquote> 3631 3581 <p>Describe the relationships with other packages; the … … 3714 3664 </ul> 3715 3665 </blockquote> 3716 <hr><h4><a name="patterns"></a><a href="#index"><tt>1 4. 2. 9</tt></a> - patterns</h4>3666 <hr><h4><a name="patterns"></a><a href="#index"><tt>13. 2. 9</tt></a> - patterns</h4> 3717 3667 <blockquote> 3718 3668 <p>Often, similar configuration items are needed over a … … 3831 3781 <p>Then, in addition, user defined templates can be installed 3832 3782 within the pattern definitions. Their actual value will be 3833 3783 provided as arguments to the apply_pattern statement.</p> 3834 3784 <p>User defined templates that have not been assigned a 3835 3785 value when the pattern is applied are simply ignored … … 3842 3792 <tt>${<package>_root}/src</tt> 3843 3793 . However, often projects 3844 need to override this default convention, and typical3794 need to override this default convention, and typical 3845 3795 example is to set it to a branch named with the package 3846 3796 name. This convention is easily applied by defining a … … 3881 3831 <p>Installing a systematic test application in all packages</p> 3882 3832 <p>Quality assurance requirements might specify that every 3883 package should provide a test program. One way to enforce3833 package should provide a test program. One way to enforce 3884 3834 this is to build a global pattern declaring this 3885 3835 application. Then every make command would naturally … … 3893 3843 </li> 3894 3844 </ol> 3895 <hr><h5><a name="Applying a pattern"></a><a href="#index"><tt>1 4. 2. 9. 1</tt></a> - Applying a pattern</h5>3845 <hr><h5><a name="Applying a pattern"></a><a href="#index"><tt>13. 2. 9. 1</tt></a> - Applying a pattern</h5> 3896 3846 <blockquote> 3897 3847 According to whether the <tt>-global</tt> … … 3958 3908 </blockquote> 3959 3909 </blockquote> 3960 <hr><h4><a name="cmtpath_patterns"></a><a href="#index"><tt>1 4. 2.10</tt></a> - cmtpath_patterns</h4>3910 <hr><h4><a name="cmtpath_patterns"></a><a href="#index"><tt>13. 2.10</tt></a> - cmtpath_patterns</h4> 3961 3911 <blockquote> 3962 3912 <p>These patterns act quite similarly to the <i>global</i> … … 4005 3955 </p> 4006 3956 </blockquote> 4007 <hr><h4><a name="branches"></a><a href="#index"><tt>1 4. 2.11</tt></a> - branches</h4>3957 <hr><h4><a name="branches"></a><a href="#index"><tt>13. 2.11</tt></a> - branches</h4> 4008 3958 <blockquote> 4009 3959 <p>Describe the specific directory branches to be added while … … 4020 3970 .</p> 4021 3971 </blockquote> 4022 <hr><h4><a name="Strategy specifications"></a><a href="#index"><tt>1 4. 2.12</tt></a> - Strategy specifications</h4>3972 <hr><h4><a name="Strategy specifications"></a><a href="#index"><tt>13. 2.12</tt></a> - Strategy specifications</h4> 4023 3973 <blockquote> 4024 3974 <p>Users can control the behaviour of <tt>CMT</tt> … … 4141 4091 <project>_no_cleanup</pre> 4142 4092 </blockquote> 4143 <hr><h4><a name="setup_script, cleanup_script"></a><a href="#index"><tt>1 4. 2.13</tt></a> - setup_script, cleanup_script</h4>4093 <hr><h4><a name="setup_script, cleanup_script"></a><a href="#index"><tt>13. 2.13</tt></a> - setup_script, cleanup_script</h4> 4144 4094 <blockquote> 4145 4095 <p>Specify user defined configuration scripts, which will be … … 4167 4117 ).</p> 4168 4118 </blockquote> 4169 <hr><h4><a name="include_path"></a><a href="#index"><tt>1 4. 2.14</tt></a> - include_path</h4>4119 <hr><h4><a name="include_path"></a><a href="#index"><tt>13. 2.14</tt></a> - include_path</h4> 4170 4120 <blockquote> 4171 4121 <p>Override the specification for the default include search … … 4185 4135 instead).</p> 4186 4136 </blockquote> 4187 <hr><h4><a name="include_dirs"></a><a href="#index"><tt>1 4. 2.15</tt></a> - include_dirs</h4>4137 <hr><h4><a name="include_dirs"></a><a href="#index"><tt>13. 2.15</tt></a> - include_dirs</h4> 4188 4138 <blockquote> 4189 4139 <p>Add explicit specifications for include access paths.</p> 4190 4140 </blockquote> 4191 <hr><h4><a name="make_fragment"></a><a href="#index"><tt>1 4. 2.16</tt></a> - make_fragment</h4>4141 <hr><h4><a name="make_fragment"></a><a href="#index"><tt>13. 2.16</tt></a> - make_fragment</h4> 4192 4142 <blockquote> 4193 4143 <p>This statement specifies a specialized makefile fragment, … … 4267 4217 of language definitions (C, C++, Fortran, Java, Lex, Yacc) 4268 4218 is provided by CMT itself but it is expected that projects 4269 add new languages according to their needs. Event if the4219 add new languages according to their needs. Event if the 4270 4220 make fragment meant to be the implementation of a language 4271 4221 support is declared, the language support itself must be … … 4333 4283 </p> 4334 4284 </blockquote> 4335 <hr><h4><a name="public, private"></a><a href="#index"><tt>1 4. 2.17</tt></a> - public, private</h4>4285 <hr><h4><a name="public, private"></a><a href="#index"><tt>13. 2.17</tt></a> - public, private</h4> 4336 4286 <blockquote> 4337 4287 <p>The <tt>public</tt> … … 4367 4317 the sub-trees whether they are public or private (in order 4368 4318 to ensure the hierarchy dependencies)</p> 4369 <hr><h5><a name="Scoping sections"></a><a href="#index"><tt>1 4. 2.17. 1</tt></a> - Scoping sections</h5>4319 <hr><h5><a name="Scoping sections"></a><a href="#index"><tt>13. 2.17. 1</tt></a> - Scoping sections</h5> 4370 4320 <blockquote> 4371 4321 By using the <tt>public</tt> … … 4427 4377 </blockquote> 4428 4378 </blockquote> 4429 <hr><h4><a name="tag, apply_tag"></a><a href="#index"><tt>1 4. 2.18</tt></a> - tag, apply_tag</h4>4379 <hr><h4><a name="tag, apply_tag"></a><a href="#index"><tt>13. 2.18</tt></a> - tag, apply_tag</h4> 4430 4380 <blockquote> 4431 4381 <p>The <tt>tag</tt> … … 4478 4428 </blockquote> 4479 4429 </blockquote> 4480 <hr><h3><a name="The general cmt user interface"></a><a href="#index"><tt>1 4. 3</tt></a> - The general cmt user interface</h3>4430 <hr><h3><a name="The general cmt user interface"></a><a href="#index"><tt>13. 3</tt></a> - The general cmt user interface</h3> 4481 4431 <blockquote> 4482 4432 This utility (a shell script combined with a <tt>C++</tt> … … 4518 4468 config : generate setup and cleanup scripts 4519 4469 create <package> <version> [<path>] : create and configure a new package 4520 create_project <project> : create and configure a new project4470 create_project <project> <name> [<path>] : create and configure a new project 4521 4471 cvsbranches <module> : display the subdirectories for a module 4522 4472 cvssubpackagess <module> : display the subpackages for a module … … 4598 4548 -no_cleanup : inhibit install area cleanup</font></i></pre> 4599 4549 <p>The following sections present the detail of each available command. </p> 4600 <hr><h4><a name="cmt broadcast"></a><a href="#index"><tt>1 4. 3. 1</tt></a> - cmt broadcast</h4>4550 <hr><h4><a name="cmt broadcast"></a><a href="#index"><tt>13. 3. 1</tt></a> - cmt broadcast</h4> 4601 4551 <blockquote> 4602 4552 This command tries to repeatedly execute a shell command in the … … 4663 4613 list</li> 4664 4614 </ol> 4665 <hr><h5><a name="Specifying the shell command"></a><a href="#index"><tt>1 4. 3. 1. 1</tt></a> - Specifying the shell command</h5>4615 <hr><h5><a name="Specifying the shell command"></a><a href="#index"><tt>13. 3. 1. 1</tt></a> - Specifying the shell command</h5> 4666 4616 <blockquote> 4667 4617 <p>A priori any Unix or DOS shell command can be specified … … 4680 4630 sometimes useful to have two levels of quotes</p> 4681 4631 </blockquote> 4682 <hr><h5><a name="Templates in the shell command"></a><a href="#index"><tt>1 4. 3. 1. 2</tt></a> - Templates in the shell command</h5>4632 <hr><h5><a name="Templates in the shell command"></a><a href="#index"><tt>13. 3. 1. 2</tt></a> - Templates in the shell command</h5> 4683 4633 <blockquote> 4684 4634 <p>Similarly to what exists in the <a href="#patterns">pattern</a> … … 4747 4697 </blockquote> 4748 4698 </blockquote> 4749 <hr><h4><a name="cmt build <option>"></a><a href="#index"><tt>1 4. 3. 2</tt></a> - cmt build <option></h4>4699 <hr><h4><a name="cmt build <option>"></a><a href="#index"><tt>13. 3. 2</tt></a> - cmt build <option></h4> 4750 4700 <blockquote> 4751 4701 <p>The actions associated with the build options are … … 4802 4752 for Unix environments. The main makefile is 4803 4753 expected to be named <tt>NMake</tt> 4804 and the standard header4754 and the standard header 4805 4755 is named <tt>NMakefile.header</tt> 4806 4756 </p> … … 4836 4786 <li><tt>msdev</tt> 4837 4787 <p>This command generates workspace (.dsw) and project 4838 4788 (.dsp) files required for the MSDev tool. </p> 4839 4789 </li> 4840 4790 <li><tt>vsnet</tt> … … 4878 4828 using the <tt>build_strategy</tt> 4879 4829 cmt statement, providing 4880 4830 either the "prototypes" or the "no_prototypes" values. </p> 4881 4831 <p>In addition, any constituent may locally override this 4882 4832 strategy using the "-prototypes" or "-no_prototypes" … … 4904 4854 </ul> 4905 4855 </blockquote> 4906 <hr><h4><a name="cmt check configuration"></a><a href="#index"><tt>1 4. 3. 3</tt></a> - cmt check configuration</h4>4856 <hr><h4><a name="cmt check configuration"></a><a href="#index"><tt>13. 3. 3</tt></a> - cmt check configuration</h4> 4907 4857 <blockquote> 4908 4858 This command reads the hierarchy of requirements files … … 4911 4861 <p>An empty output means that everything is fine. </p> 4912 4862 </blockquote> 4913 <hr><h4><a name="cmt check files <reference-file> <new-file>"></a><a href="#index"><tt>1 4. 3. 4</tt></a> - cmt check files <reference-file> <new-file></h4>4863 <hr><h4><a name="cmt check files <reference-file> <new-file>"></a><a href="#index"><tt>13. 3. 4</tt></a> - cmt check files <reference-file> <new-file></h4> 4914 4864 <blockquote> 4915 4865 This command compares the reference file to the new file, and … … 4920 4870 ) is produced. </p> 4921 4871 </blockquote> 4922 <hr><h4><a name="cmt checkout ..."></a><a href="#index"><tt>1 4. 3. 5</tt></a> - cmt checkout ...</h4>4923 <blockquote> 4924 4872 <hr><h4><a name="cmt checkout ..."></a><a href="#index"><tt>13. 3. 5</tt></a> - cmt checkout ...</h4> 4873 <blockquote> 4874 See the <a href="#Using cvs together with CMT">paragraph</a> 4925 4875 on how to use cvs together with <tt>CMT</tt> 4926 4876 , and more specifically the … … 4928 4878 . 4929 4879 </blockquote> 4930 <hr><h4><a name="cmt co ..."></a><a href="#index"><tt>1 4. 3. 6</tt></a> - cmt co ...</h4>4880 <hr><h4><a name="cmt co ..."></a><a href="#index"><tt>13. 3. 6</tt></a> - cmt co ...</h4> 4931 4881 <blockquote> 4932 4882 This is simply a short cut to the <tt>cmt checkout</tt> 4933 4883 command. 4934 4884 </blockquote> 4935 <hr><h4><a name="cmt cleanup [-csh|-sh]"></a><a href="#index"><tt>1 4. 3. 7</tt></a> - cmt cleanup [-csh|-sh]</h4>4885 <hr><h4><a name="cmt cleanup [-csh|-sh]"></a><a href="#index"><tt>13. 3. 7</tt></a> - cmt cleanup [-csh|-sh]</h4> 4936 4886 <blockquote> 4937 4887 This command generates (to the standard output) a set of shell … … 4943 4893 command. </p> 4944 4894 </blockquote> 4945 <hr><h4><a name="cmt config"></a><a href="#index"><tt>1 4. 3. 8</tt></a> - cmt config</h4>4895 <hr><h4><a name="cmt config"></a><a href="#index"><tt>13. 3. 8</tt></a> - cmt config</h4> 4946 4896 <blockquote> 4947 4897 <p>This command (re-)generates the setup scripts and the … … 4983 4933 are required any longer.</p> 4984 4934 </blockquote> 4985 <hr><h4><a name="cmt create <package> <version> [<area>]"></a><a href="#index"><tt>1 4. 3. 9</tt></a> - cmt create <package> <version> [<area>]</h4>4935 <hr><h4><a name="cmt create <package> <version> [<area>]"></a><a href="#index"><tt>13. 3. 9</tt></a> - cmt create <package> <version> [<area>]</h4> 4986 4936 <blockquote> 4987 4937 <p> … … 5006 4956 </ul> 5007 4957 </blockquote> 5008 <hr><h4><a name="cmt expand model [-strict] <model-string>"></a><a href="#index"><tt>1 4. 3.10</tt></a> - cmt expand model [-strict] <model-string></h4>4958 <hr><h4><a name="cmt expand model [-strict] <model-string>"></a><a href="#index"><tt>13. 3.10</tt></a> - cmt expand model [-strict] <model-string></h4> 5009 4959 <blockquote> 5010 4960 This command produces on the standard output an … … 5136 5086 </ul> 5137 5087 </blockquote> 5138 <hr><h4><a name="cmt filter <in-file> <out-file>"></a><a href="#index"><tt>1 4. 3.11</tt></a> - cmt filter <in-file> <out-file></h4>5088 <hr><h4><a name="cmt filter <in-file> <out-file>"></a><a href="#index"><tt>13. 3.11</tt></a> - cmt filter <in-file> <out-file></h4> 5139 5089 <blockquote> 5140 5090 This command reads <in-file>, substitutes all occurences … … 5153 5103 configuration files, etc... </p> 5154 5104 </blockquote> 5155 <hr><h4><a name="cmt help | --help"></a><a href="#index"><tt>1 4. 3.12</tt></a> - cmt help | --help</h4>5105 <hr><h4><a name="cmt help | --help"></a><a href="#index"><tt>13. 3.12</tt></a> - cmt help | --help</h4> 5156 5106 <blockquote> 5157 5107 This command shows the list of options of the <tt>cmt</tt> 5158 5108 driver. 5159 5109 </blockquote> 5160 <hr><h4><a name="cmt lock [ <package> <version> [<area>] ]"></a><a href="#index"><tt>1 4. 3.13</tt></a> - cmt lock [ <package> <version> [<area>] ]</h4>5110 <hr><h4><a name="cmt lock [ <package> <version> [<area>] ]"></a><a href="#index"><tt>13. 3.13</tt></a> - cmt lock [ <package> <version> [<area>] ]</h4> 5161 5111 <blockquote> 5162 5112 This command tries to set a lock onto the current package (or onto the … … 5183 5133 </ol> 5184 5134 </blockquote> 5185 <hr><h4><a name="cmt remove <package> <version> [<area>]"></a><a href="#index"><tt>1 4. 3.14</tt></a> - cmt remove <package> <version> [<area>]</h4>5135 <hr><h4><a name="cmt remove <package> <version> [<area>]"></a><a href="#index"><tt>13. 3.14</tt></a> - cmt remove <package> <version> [<area>]</h4> 5186 5136 <blockquote> 5187 5137 This command removes one version of the specified package. If … … 5197 5147 will be deleted.</p> 5198 5148 </blockquote> 5199 <hr><h4><a name="cmt remove library_links"></a><a href="#index"><tt>1 4. 3.15</tt></a> - cmt remove library_links</h4>5149 <hr><h4><a name="cmt remove library_links"></a><a href="#index"><tt>13. 3.15</tt></a> - cmt remove library_links</h4> 5200 5150 <blockquote> 5201 5151 This command removes symbolic links towards all imported … … 5206 5156 when one runs <tt>gmake clean</tt> 5207 5157 </blockquote> 5208 <hr><h4><a name="cmt run [shell-command]"></a><a href="#index"><tt>1 4. 3.16</tt></a> - cmt run [shell-command]</h4>5158 <hr><h4><a name="cmt run [shell-command]"></a><a href="#index"><tt>13. 3.16</tt></a> - cmt run [shell-command]</h4> 5209 5159 <blockquote> 5210 5160 This command runs any shell command, in the context of the … … 5226 5176 to any package context. </p> 5227 5177 </blockquote> 5228 <hr><h4><a name="cmt set version <version>"></a><a href="#index"><tt>1 4. 3.17</tt></a> - cmt set version <version></h4>5178 <hr><h4><a name="cmt set version <version>"></a><a href="#index"><tt>13. 3.17</tt></a> - cmt set version <version></h4> 5229 5179 <blockquote> 5230 5180 This command creates and/or fills in the … … 5238 5188 one CMT package.</p> 5239 5189 </blockquote> 5240 <hr><h4><a name="cmt set versions"></a><a href="#index"><tt>1 4. 3.18</tt></a> - cmt set versions</h4>5190 <hr><h4><a name="cmt set versions"></a><a href="#index"><tt>13. 3.18</tt></a> - cmt set versions</h4> 5241 5191 <blockquote> 5242 5192 This command applies recursively the <tt>cmt set version … … 5249 5199 files</p> 5250 5200 </blockquote> 5251 <hr><h4><a name="cmt setup [-csh|-sh|-bat]"></a><a href="#index"><tt>1 4. 3.19</tt></a> - cmt setup [-csh|-sh|-bat]</h4>5201 <hr><h4><a name="cmt setup [-csh|-sh|-bat]"></a><a href="#index"><tt>13. 3.19</tt></a> - cmt setup [-csh|-sh|-bat]</h4> 5252 5202 <blockquote> 5253 5203 This command generates (to the standard output) a set of shell … … 5264 5214 command.</p> 5265 5215 </blockquote> 5266 <hr><h4><a name="cmt show <option>"></a><a href="#index"><tt>1 4. 3.20</tt></a> - cmt show <option></h4>5216 <hr><h4><a name="cmt show <option>"></a><a href="#index"><tt>13. 3.20</tt></a> - cmt show <option></h4> 5267 5217 <blockquote> 5268 5218 <ul> … … 5320 5270 <li><tt>groups</tt> 5321 5271 <p>This command displays all groups possibly defined 5322 in constituents of the current package (using the5272 in constituents of the current package (using the 5323 5273 <tt>-group=<<i>group-name</i> 5324 5274 ></tt> … … 5567 5517 </ul> 5568 5518 </blockquote> 5569 <hr><h4><a name="cmt system"></a><a href="#index"><tt>1 4. 3.21</tt></a> - cmt system</h4>5519 <hr><h4><a name="cmt system"></a><a href="#index"><tt>13. 3.21</tt></a> - cmt system</h4> 5570 5520 <blockquote> 5571 5521 This command displays the current value assigned by default to … … 5573 5523 environment variable. 5574 5524 </blockquote> 5575 <hr><h4><a name="cmt unlock [ <package> <version> [<area>] ]"></a><a href="#index"><tt>1 4. 3.22</tt></a> - cmt unlock [ <package> <version> [<area>] ]</h4>5525 <hr><h4><a name="cmt unlock [ <package> <version> [<area>] ]"></a><a href="#index"><tt>13. 3.22</tt></a> - cmt unlock [ <package> <version> [<area>] ]</h4> 5576 5526 <blockquote> 5577 5527 This command tries to remove a lock from the current package (or from the … … 5596 5546 </p> 5597 5547 </blockquote> 5598 <hr><h4><a name="cmt version | --version"></a><a href="#index"><tt>1 4. 3.23</tt></a> - cmt version | --version</h4>5548 <hr><h4><a name="cmt version | --version"></a><a href="#index"><tt>13. 3.23</tt></a> - cmt version | --version</h4> 5599 5549 <blockquote> 5600 5550 This command shows the current verion of <tt>CMT</tt> … … 5604 5554 sources. 5605 5555 </blockquote> 5606 <hr><h4><a name="cmt cvstags <module>"></a><a href="#index"><tt>1 4. 3.24</tt></a> - cmt cvstags <module></h4>5556 <hr><h4><a name="cmt cvstags <module>"></a><a href="#index"><tt>13. 3.24</tt></a> - cmt cvstags <module></h4> 5607 5557 <blockquote> 5608 5558 (see the section on <i>how tu use </i> … … 5612 5562 for more details on this command) 5613 5563 </blockquote> 5614 <hr><h4><a name="cmt cvsbranches <module>"></a><a href="#index"><tt>1 4. 3.25</tt></a> - cmt cvsbranches <module></h4>5615 <blockquote> 5616 </blockquote> 5617 <hr><h4><a name="cmt cvssubpackages <module>"></a><a href="#index"><tt>1 4. 3.26</tt></a> - cmt cvssubpackages <module></h4>5618 <blockquote> 5619 </blockquote> 5620 </blockquote> 5621 <hr><h3><a name="The setup and cleanup scripts"></a><a href="#index"><tt>1 4. 4</tt></a> - The setup and cleanup scripts</h3>5564 <hr><h4><a name="cmt cvsbranches <module>"></a><a href="#index"><tt>13. 3.25</tt></a> - cmt cvsbranches <module></h4> 5565 <blockquote> 5566 </blockquote> 5567 <hr><h4><a name="cmt cvssubpackages <module>"></a><a href="#index"><tt>13. 3.26</tt></a> - cmt cvssubpackages <module></h4> 5568 <blockquote> 5569 </blockquote> 5570 </blockquote> 5571 <hr><h3><a name="The setup and cleanup scripts"></a><a href="#index"><tt>13. 4</tt></a> - The setup and cleanup scripts</h3> 5622 5572 <blockquote> 5623 5573 They are produced by the <tt>cmt config</tt> … … 5649 5599 the <tt>cmt setup</tt> 5650 5600 utility into a temporary file and 5651 5601 running this temporary file. </li> 5652 5602 <li> 5653 5603 Activation of the user defined setup and cleanup scripts … … 5669 5619 development area. 5670 5620 </blockquote> 5671 <hr><h3><a name="cmt build prototype"></a><a href="#index"><tt>1 4. 5</tt></a> - cmt build prototype</h3>5621 <hr><h3><a name="cmt build prototype"></a><a href="#index"><tt>13. 5</tt></a> - cmt build prototype</h3> 5672 5622 <blockquote> 5673 5623 This command is only provided for development of <tt>C</tt> … … 5711 5661 </blockquote> 5712 5662 </blockquote> 5713 <hr><h2><a name="Using cvs together with CMT"></a><a href="#index"><tt>1 5</tt></a> - Using cvs together with CMT</h2>5663 <hr><h2><a name="Using cvs together with CMT"></a><a href="#index"><tt>14</tt></a> - Using cvs together with CMT</h2> 5714 5664 <blockquote> 5715 5665 <p>Nothing special is apriori required by <tt>CMT</tt> … … 5735 5685 <a href="#The internal mechanism of cmt cvs operations">appendix</a> 5736 5686 .</p> 5737 <hr><h3><a name="Importing a package into a cvs repository"></a><a href="#index"><tt>1 5. 1</tt></a> - Importing a package into a cvs repository</h3>5687 <hr><h3><a name="Importing a package into a cvs repository"></a><a href="#index"><tt>14. 1</tt></a> - Importing a package into a cvs repository</h3> 5738 5688 <blockquote> 5739 5689 <p>Generally, everything composing a package (below the … … 5787 5737 form. </p> 5788 5738 </blockquote> 5789 <hr><h3><a name="Checking a package out from a cvs repository"></a><a href="#index"><tt>1 5. 2</tt></a> - Checking a package out from a cvs repository</h3>5739 <hr><h3><a name="Checking a package out from a cvs repository"></a><a href="#index"><tt>14. 2</tt></a> - Checking a package out from a cvs repository</h3> 5790 5740 <blockquote> 5791 5741 <p>Assuming the previous conventions on module name and version … … 5814 5764 </li> 5815 5765 <li> 5816 creating a base directory with the package name is mandatory5766 creating a base directory with the package name is mandatory 5817 5767 here, and is <i>not</i> 5818 5768 taken into account by <tt>cvs</tt> … … 5871 5821 csh> [g]make</pre> 5872 5822 </blockquote> 5873 <hr><h3><a name="Querying CVS about some important infos"></a><a href="#index"><tt>1 5. 3</tt></a> - Querying CVS about some important infos</h3>5823 <hr><h3><a name="Querying CVS about some important infos"></a><a href="#index"><tt>14. 3</tt></a> - Querying CVS about some important infos</h3> 5874 5824 <blockquote> 5875 5825 It is possible, using the commands : … … 5937 5887 </ol> 5938 5888 </blockquote> 5939 <hr><h3><a name="Working on a package, creating a new release"></a><a href="#index"><tt>1 5. 4</tt></a> - Working on a package, creating a new release</h3>5889 <hr><h3><a name="Working on a package, creating a new release"></a><a href="#index"><tt>14. 4</tt></a> - Working on a package, creating a new release</h3> 5940 5890 <blockquote> 5941 5891 <p>This section presents the way to instanciate a new release of … … 5980 5930 </ol> 5981 5931 </blockquote> 5982 <hr><h3><a name="Getting a particular tagged version out of CVS"></a><a href="#index"><tt>1 5. 5</tt></a> - Getting a particular tagged version out of CVS</h3>5932 <hr><h3><a name="Getting a particular tagged version out of CVS"></a><a href="#index"><tt>14. 5</tt></a> - Getting a particular tagged version out of CVS</h3> 5983 5933 <blockquote> 5984 5934 <p>The previous example presented the standard case where one gets … … 6008 5958 </blockquote> 6009 5959 </blockquote> 6010 <hr><h2><a name="Interfacing an external package with CMT"></a><a href="#index"><tt>1 6</tt></a> - Interfacing an external package with CMT</h2>5960 <hr><h2><a name="Interfacing an external package with CMT"></a><a href="#index"><tt>15</tt></a> - Interfacing an external package with CMT</h2> 6011 5961 <blockquote> 6012 5962 <p>Very often, external packages (typically commercial products, or … … 6088 6038 packages. </p> 6089 6039 </blockquote> 6090 <hr><h2><a name="The installation area mechanism"></a><a href="#index"><tt>1 7</tt></a> - The installation area mechanism</h2>6040 <hr><h2><a name="The installation area mechanism"></a><a href="#index"><tt>16</tt></a> - The installation area mechanism</h2> 6091 6041 <blockquote> 6092 6042 <p>CMT proposes and implements a flexible architecture for … … 6125 6075 files, documentation and header files.</li> 6126 6076 </ol> 6127 <hr><h3><a name="The default implementation"></a><a href="#index"><tt>1 7. 1</tt></a> - The default implementation</h3>6077 <hr><h3><a name="The default implementation"></a><a href="#index"><tt>16. 1</tt></a> - The default implementation</h3> 6128 6078 <blockquote> 6129 6079 <p>It is provided in terms of</p> … … 6196 6146 local patterns.</p> 6197 6147 </blockquote> 6198 <hr><h3><a name="Tuning the installation area mechanisms"></a><a href="#index"><tt>1 7. 2</tt></a> - Tuning the installation area mechanisms</h3>6148 <hr><h3><a name="Tuning the installation area mechanisms"></a><a href="#index"><tt>16. 2</tt></a> - Tuning the installation area mechanisms</h3> 6199 6149 <blockquote> 6200 6150 <p>First of all every individual sub-project may activate or … … 6275 6225 </blockquote> 6276 6226 </blockquote> 6277 <hr><h2><a name="Installing CMT for the first time"></a><a href="#index"><tt>1 8</tt></a> - Installing CMT for the first time</h2>6227 <hr><h2><a name="Installing CMT for the first time"></a><a href="#index"><tt>17</tt></a> - Installing CMT for the first time</h2> 6278 6228 <blockquote> 6279 6229 <P>These sections are of interest only if <tt>CMT</tt> … … 6298 6248 or operate <tt>CMT</tt> 6299 6249 . </P> 6300 <hr><h3><a name="Installing CMT on your Unix site"></a><a href="#index"><tt>1 8. 1</tt></a> - Installing CMT on your Unix site</h3>6250 <hr><h3><a name="Installing CMT on your Unix site"></a><a href="#index"><tt>17. 1</tt></a> - Installing CMT on your Unix site</h3> 6301 6251 <blockquote> 6302 6252 <P>The very first operation after dowloading <tt>CMT</tt> … … 6375 6325 csh> gmake</pre> 6376 6326 </blockquote> 6377 <hr><h3><a name="Installing CMT on a Windows or Windows NT site"></a><a href="#index"><tt>1 8. 2</tt></a> - Installing CMT on a Windows or Windows NT site</h3>6327 <hr><h3><a name="Installing CMT on a Windows or Windows NT site"></a><a href="#index"><tt>17. 2</tt></a> - Installing CMT on a Windows or Windows NT site</h3> 6378 6328 <blockquote> 6379 6329 <p>You first have to fetch the distribution kit from the Web at … … 6427 6377 </blockquote> 6428 6378 </blockquote> 6429 <hr><h2><a name="Appendices"></a><a href="#index"><tt>1 9</tt></a> - Appendices</h2>6430 <blockquote> 6431 <hr><h3><a name="Copyright"></a><a href="#index"><tt>1 9. 1</tt></a> - Copyright</h3>6379 <hr><h2><a name="Appendices"></a><a href="#index"><tt>18</tt></a> - Appendices</h2> 6380 <blockquote> 6381 <hr><h3><a name="Copyright"></a><a href="#index"><tt>18. 1</tt></a> - Copyright</h3> 6432 6382 <blockquote> 6433 6383 <center><b>Copyright LAL and Christian Arnault LAL-Orsay CNRS</b> … … 6464 6414 knowledge of the CeCILL license and that you accept its terms.</p> 6465 6415 </blockquote> 6466 <hr><h3><a name="Standard make targets predefined in CMT"></a><a href="#index"><tt>1 9. 2</tt></a> - Standard make targets predefined in CMT</h3>6416 <hr><h3><a name="Standard make targets predefined in CMT"></a><a href="#index"><tt>18. 2</tt></a> - Standard make targets predefined in CMT</h3> 6467 6417 <blockquote> 6468 6418 <p>These targets can always be listed through the following command : </p> … … 6527 6477 <td>only build this 6528 6478 particular component (as opposed to the <tt>all</tt> 6529 target that tries to build all components of this6479 target that tries to build all components of this 6530 6480 package)</td> 6531 6481 </tr> … … 6544 6494 sh> gmake Foo </pre> 6545 6495 </blockquote> 6546 <hr><h3><a name="Standard macros predefined in CMT"></a><a href="#index"><tt>1 9. 3</tt></a> - Standard macros predefined in CMT</h3>6547 <blockquote> 6548 <hr><h4><a name="CMT static macros"></a><a href="#index"><tt>1 9. 3. 1</tt></a> - CMT static macros</h4>6496 <hr><h3><a name="Standard macros predefined in CMT"></a><a href="#index"><tt>18. 3</tt></a> - Standard macros predefined in CMT</h3> 6497 <blockquote> 6498 <hr><h4><a name="CMT static macros"></a><a href="#index"><tt>18. 3. 1</tt></a> - CMT static macros</h4> 6549 6499 <blockquote> 6550 6500 These macros provide static data about CMT itself. They cannot be … … 6583 6533 </p> 6584 6534 </blockquote> 6585 <hr><h4><a name="Structural macros"></a><a href="#index"><tt>1 9. 3. 2</tt></a> - Structural macros</h4>6535 <hr><h4><a name="Structural macros"></a><a href="#index"><tt>18. 3. 2</tt></a> - Structural macros</h4> 6586 6536 <blockquote> 6587 6537 These macros describe the structural conventions followed by … … 6674 6624 <td><tt>cmt_compiler_version</tt> 6675 6625 </td> 6676 <td>the version of the currently visible C++ compiler 6626 <td>the version of the currently visible C++ compiler</td> 6677 6627 <td><tt><none></tt> 6678 6628 </td> … … 6681 6631 </p> 6682 6632 </blockquote> 6683 <hr><h4><a name="Language related macros"></a><a href="#index"><tt>1 9. 3. 3</tt></a> - Language related macros</h4>6633 <hr><h4><a name="Language related macros"></a><a href="#index"><tt>18. 3. 3</tt></a> - Language related macros</h4> 6684 6634 <blockquote> 6685 6635 These macros are purely conventional. They are expected in the … … 6933 6883 </p> 6934 6884 </blockquote> 6935 <hr><h4><a name="Package customizing macros"></a><a href="#index"><tt>1 9. 3. 4</tt></a> - Package customizing macros</h4>6885 <hr><h4><a name="Package customizing macros"></a><a href="#index"><tt>18. 3. 4</tt></a> - Package customizing macros</h4> 6936 6886 <blockquote> 6937 6887 These macros do not receive default values. They are all prefixed … … 7091 7041 <td>specifies the base location for external software 7092 7042 described in glue packages. This macro is generally used to 7093 specify the previous one</td>7043 specify the previous one</td> 7094 7044 </tr> 7095 7045 </table> 7096 7046 </p> 7097 7047 </blockquote> 7098 <hr><h4><a name="Constituent specific customizing macros"></a><a href="#index"><tt>1 9. 3. 5</tt></a> - Constituent specific customizing macros</h4>7048 <hr><h4><a name="Constituent specific customizing macros"></a><a href="#index"><tt>18. 3. 5</tt></a> - Constituent specific customizing macros</h4> 7099 7049 <blockquote> 7100 7050 These macros do not receive any default values (ie they are empty … … 7165 7115 >_linkopts</tt> 7166 7116 macro, which 7167 provides exported linker options required by clients7117 provides exported linker options required by clients 7168 7118 packages to use the package libraries. 7169 7119 </td> … … 7204 7154 </td> 7205 7155 <td> 7206 7156 provides user defined dependency specifications for each 7207 7157 group. The typical use of this macro is fill it 7208 7158 with the name of the list of some other constituents … … 7217 7167 </p> 7218 7168 </blockquote> 7219 <hr><h4><a name="Source specific customizing macros"></a><a href="#index"><tt>1 9. 3. 6</tt></a> - Source specific customizing macros</h4>7169 <hr><h4><a name="Source specific customizing macros"></a><a href="#index"><tt>18. 3. 6</tt></a> - Source specific customizing macros</h4> 7220 7170 <blockquote> 7221 7171 These macros do not receive any default values (ie they are empty … … 7257 7207 </p> 7258 7208 </blockquote> 7259 <hr><h4><a name="Generated macros"></a><a href="#index"><tt>1 9. 3. 7</tt></a> - Generated macros</h4>7209 <hr><h4><a name="Generated macros"></a><a href="#index"><tt>18. 3. 7</tt></a> - Generated macros</h4> 7260 7210 <blockquote> 7261 7211 <p> These macros are automatically <i>generated</i> … … 7451 7401 </p> 7452 7402 </blockquote> 7453 <hr><h4><a name="Macros related with the installation area mechanisms"></a><a href="#index"><tt>1 9. 3. 8</tt></a> - Macros related with the installation area mechanisms</h4>7403 <hr><h4><a name="Macros related with the installation area mechanisms"></a><a href="#index"><tt>18. 3. 8</tt></a> - Macros related with the installation area mechanisms</h4> 7454 7404 <blockquote> 7455 7405 These macros contain the parameterisation of the installation area … … 7557 7507 </p> 7558 7508 </blockquote> 7559 <hr><h4><a name="Utility macros"></a><a href="#index"><tt>1 9. 3. 9</tt></a> - Utility macros</h4>7509 <hr><h4><a name="Utility macros"></a><a href="#index"><tt>18. 3. 9</tt></a> - Utility macros</h4> 7560 7510 <blockquote> 7561 7511 These macros are used to specify the behaviour of various actions … … 7702 7652 </blockquote> 7703 7653 </blockquote> 7704 <hr><h3><a name="Standard tags generated by CMT"></a><a href="#index"><tt>1 9. 4</tt></a> - Standard tags generated by CMT</h3>7654 <hr><h3><a name="Standard tags generated by CMT"></a><a href="#index"><tt>18. 4</tt></a> - Standard tags generated by CMT</h3> 7705 7655 <blockquote> 7706 7656 <p> … … 7809 7759 </p> 7810 7760 </blockquote> 7811 <hr><h3><a name="Standard templates for makefile fragments"></a><a href="#index"><tt>1 9. 5</tt></a> - Standard templates for makefile fragments</h3>7761 <hr><h3><a name="Standard templates for makefile fragments"></a><a href="#index"><tt>18. 5</tt></a> - Standard templates for makefile fragments</h3> 7812 7762 <blockquote> 7813 7763 <p> … … 7952 7902 </p> 7953 7903 </blockquote> 7954 <hr><h3><a name="Makefile generation sequences"></a><a href="#index"><tt>1 9. 6</tt></a> - Makefile generation sequences</h3>7904 <hr><h3><a name="Makefile generation sequences"></a><a href="#index"><tt>18. 6</tt></a> - Makefile generation sequences</h3> 7955 7905 <blockquote> 7956 7906 <blockquote><hr> … … 8071 8021 </p> 8072 8022 </blockquote> 8073 <hr><h3><a name="The complete requirements syntax"></a><a href="#index"><tt>1 9. 7</tt></a> - The complete requirements syntax</h3>8023 <hr><h3><a name="The complete requirements syntax"></a><a href="#index"><tt>18. 7</tt></a> - The complete requirements syntax</h3> 8074 8024 <blockquote> 8075 8025 The syntax of specification statements that can be installed in a … … 9801 9751 </center> 9802 9752 </blockquote> 9803 <hr><h3><a name="The default strategies defined in CMT"></a><a href="#index"><tt>1 9. 8</tt></a> - The default strategies defined in CMT</h3>9753 <hr><h3><a name="The default strategies defined in CMT"></a><a href="#index"><tt>18. 8</tt></a> - The default strategies defined in CMT</h3> 9804 9754 <blockquote> 9805 9755 <pre class="cmt"> … … 9807 9757 DefaultInstallAreaStrategy = WithoutInstallArea</pre> 9808 9758 </blockquote> 9809 <hr><h3><a name="The internal mechanism of cmt cvs operations"></a><a href="#index"><tt>1 9. 9</tt></a> - The internal mechanism of cmt cvs operations</h3>9759 <hr><h3><a name="The internal mechanism of cmt cvs operations"></a><a href="#index"><tt>18. 9</tt></a> - The internal mechanism of cmt cvs operations</h3> 9810 9760 <blockquote> 9811 9761 Generally, CVS does not handle queries upon the repository (such as … … 9910 9860 <tr> 9911 9861 <td width="100"><tt> 4. 1</tt></td> 9862 <td> <a href="#The project file">The project file</a></td> 9863 </tr> 9864 <tr> 9865 <td width="100"><tt> 4. 2</tt></td> 9866 <td> <a href="#Projects and strategies">Projects and strategies</a></td> 9867 </tr> 9868 <tr> 9869 <td width="100"><tt> 4. 3</tt></td> 9912 9870 <td> <a href="#CMTPROJECTPATH">CMTPROJECTPATH</a></td> 9913 9871 </tr> 9914 9872 <tr> 9915 <td width="100"><tt> 4. 2</tt></td>9873 <td width="100"><tt> 4. 4</tt></td> 9916 9874 <td> <a href="#CMTPATH">CMTPATH</a></td> 9917 9875 </tr> … … 9926 9884 <tr> 9927 9885 <td width="100"><tt> 7</tt></td> 9928 <td><a href="#The concept of project">The concept of project</a></td> 9886 <td><a href="#Assigning semantics to packages. Common practices">Assigning semantics to packages. Common practices</a></td> 9887 </tr> 9888 <tr> 9889 <td width="100"><tt> 7. 1</tt></td> 9890 <td> <a href="#The primary package">The primary package</a></td> 9891 </tr> 9892 <tr> 9893 <td width="100"><tt> 7. 2</tt></td> 9894 <td> <a href="#The policy package">The policy package</a></td> 9895 </tr> 9896 <tr> 9897 <td width="100"><tt> 7. 3</tt></td> 9898 <td> <a href="#The container or management package">The container or management package</a></td> 9899 </tr> 9900 <tr> 9901 <td width="100"><tt> 7. 4</tt></td> 9902 <td> <a href="#The release package">The release package</a></td> 9903 </tr> 9904 <tr> 9905 <td width="100"><tt> 7. 5</tt></td> 9906 <td> <a href="#The glue or interface package">The glue or interface package</a></td> 9929 9907 </tr> 9930 9908 <tr> 9931 9909 <td width="100"><tt> 8</tt></td> 9932 <td><a href="#Assigning semantics to packages. Common practices">Assigning semantics to packages. Common practices</a></td> 9933 </tr> 9934 <tr> 9935 <td width="100"><tt> 8. 1</tt></td> 9936 <td> <a href="#The primary package">The primary package</a></td> 9937 </tr> 9938 <tr> 9939 <td width="100"><tt> 8. 2</tt></td> 9940 <td> <a href="#The policy package">The policy package</a></td> 9941 </tr> 9942 <tr> 9943 <td width="100"><tt> 8. 3</tt></td> 9944 <td> <a href="#The container or management package">The container or management package</a></td> 9945 </tr> 9946 <tr> 9947 <td width="100"><tt> 8. 4</tt></td> 9948 <td> <a href="#The release package">The release package</a></td> 9949 </tr> 9950 <tr> 9951 <td width="100"><tt> 8. 5</tt></td> 9952 <td> <a href="#The glue or interface package">The glue or interface package</a></td> 9910 <td><a href="#Managing site dependent features - The CMTSITE environment variable">Managing site dependent features - The CMTSITE environment variable</a></td> 9953 9911 </tr> 9954 9912 <tr> 9955 9913 <td width="100"><tt> 9</tt></td> 9956 <td><a href="# Managing site dependent features - The CMTSITE environment variable">Managing site dependent features - The CMTSITE environment variable</a></td>9914 <td><a href="#Configuring a package">Configuring a package</a></td> 9957 9915 </tr> 9958 9916 <tr> 9959 9917 <td width="100"><tt>10</tt></td> 9960 <td><a href="#Configuring a package">Configuring a package</a></td> 9918 <td><a href="#Selecting a specific configuration">Selecting a specific configuration</a></td> 9919 </tr> 9920 <tr> 9921 <td width="100"><tt>10. 1</tt></td> 9922 <td> <a href="#Describing a configuration">Describing a configuration</a></td> 9923 </tr> 9924 <tr> 9925 <td width="100"><tt>10. 2</tt></td> 9926 <td> <a href="#Defining the user tags">Defining the user tags</a></td> 9927 </tr> 9928 <tr> 9929 <td width="100"><tt>10. 3</tt></td> 9930 <td> <a href="#Activating tags">Activating tags</a></td> 9961 9931 </tr> 9962 9932 <tr> 9963 9933 <td width="100"><tt>11</tt></td> 9964 <td><a href="# Selecting a specific configuration">Selecting a specific configuration</a></td>9934 <td><a href="#Working on a package">Working on a package</a></td> 9965 9935 </tr> 9966 9936 <tr> 9967 9937 <td width="100"><tt>11. 1</tt></td> 9968 <td> <a href="# Describing a configuration">Describing a configuration</a></td>9938 <td> <a href="#Working on a library">Working on a library</a></td> 9969 9939 </tr> 9970 9940 <tr> 9971 9941 <td width="100"><tt>11. 2</tt></td> 9972 <td> <a href="# Defining the user tags">Defining the user tags</a></td>9942 <td> <a href="#Working on an application">Working on an application</a></td> 9973 9943 </tr> 9974 9944 <tr> 9975 9945 <td width="100"><tt>11. 3</tt></td> 9976 <td> <a href="# Activating tags">Activating tags</a></td>9946 <td> <a href="#Working on a test or external application">Working on a test or external application</a></td> 9977 9947 </tr> 9978 9948 <tr> 9979 9949 <td width="100"><tt>12</tt></td> 9980 <td><a href="# Working on a package">Working on a package</a></td>9950 <td><a href="#Defining a document generator">Defining a document generator</a></td> 9981 9951 </tr> 9982 9952 <tr> 9983 9953 <td width="100"><tt>12. 1</tt></td> 9984 <td> <a href="# Working on a library">Working on a library</a></td>9954 <td> <a href="#An example : the tex document-style">An example : the tex document-style</a></td> 9985 9955 </tr> 9986 9956 <tr> 9987 9957 <td width="100"><tt>12. 2</tt></td> 9988 <td> <a href="# Working on an application">Working on an application</a></td>9958 <td> <a href="#How to create and install a new document style">How to create and install a new document style</a></td> 9989 9959 </tr> 9990 9960 <tr> 9991 9961 <td width="100"><tt>12. 3</tt></td> 9992 <td> <a href="#Working on a test or external application">Working on a test or external application</a></td> 9993 </tr> 9994 <tr> 9995 <td width="100"><tt>12. 4</tt></td> 9996 <td> <a href="#Construction of a global environment">Construction of a global environment</a></td> 9962 <td> <a href="#Examples">Examples</a></td> 9997 9963 </tr> 9998 9964 <tr> 9999 9965 <td width="100"><tt>13</tt></td> 10000 <td><a href="# Defining a document generator">Defining a document generator</a></td>9966 <td><a href="#The tools provided by CMT">The tools provided by CMT</a></td> 10001 9967 </tr> 10002 9968 <tr> 10003 9969 <td width="100"><tt>13. 1</tt></td> 10004 <td> <a href="#An example : the tex document-style">An example : the tex document-style</a></td> 9970 <td> <a href="#The requirements file">The requirements file</a></td> 9971 </tr> 9972 <tr> 9973 <td width="100"><tt>13. 1. 1</tt></td> 9974 <td> <a href="#The general requirements syntax">The general requirements syntax</a></td> 10005 9975 </tr> 10006 9976 <tr> 10007 9977 <td width="100"><tt>13. 2</tt></td> 10008 <td> <a href="#How to create and install a new document style">How to create and install a new document style</a></td> 9978 <td> <a href="#The concepts handled in the requirements file">The concepts handled in the requirements file</a></td> 9979 </tr> 9980 <tr> 9981 <td width="100"><tt>13. 2. 1</tt></td> 9982 <td> <a href="#The package structuring style ">The package structuring style </a></td> 9983 </tr> 9984 <tr> 9985 <td width="100"><tt>13. 2. 2</tt></td> 9986 <td> <a href="#Meta-information : author, manager">Meta-information : author, manager</a></td> 9987 </tr> 9988 <tr> 9989 <td width="100"><tt>13. 2. 3</tt></td> 9990 <td> <a href="#package, version">package, version</a></td> 9991 </tr> 9992 <tr> 9993 <td width="100"><tt>13. 2. 4</tt></td> 9994 <td> <a href="#Constituents : application, library, document">Constituents : application, library, document</a></td> 9995 </tr> 9996 <tr> 9997 <td width="100"><tt>13. 2. 5</tt></td> 9998 <td> <a href="#Groups">Groups</a></td> 9999 </tr> 10000 <tr> 10001 <td width="100"><tt>13. 2. 6</tt></td> 10002 <td> <a href="#Languages">Languages</a></td> 10003 </tr> 10004 <tr> 10005 <td width="100"><tt>13. 2. 7</tt></td> 10006 <td> <a href="#Symbols">Symbols</a></td> 10007 </tr> 10008 <tr> 10009 <td width="100"><tt>13. 2. 7. 1</tt></td> 10010 <td> <a href="#actions">actions</a></td> 10011 </tr> 10012 <tr> 10013 <td width="100"><tt>13. 2. 8</tt></td> 10014 <td> <a href="#use">use</a></td> 10015 </tr> 10016 <tr> 10017 <td width="100"><tt>13. 2. 9</tt></td> 10018 <td> <a href="#patterns">patterns</a></td> 10019 </tr> 10020 <tr> 10021 <td width="100"><tt>13. 2. 9. 1</tt></td> 10022 <td> <a href="#Applying a pattern">Applying a pattern</a></td> 10023 </tr> 10024 <tr> 10025 <td width="100"><tt>13. 2.10</tt></td> 10026 <td> <a href="#cmtpath_patterns">cmtpath_patterns</a></td> 10027 </tr> 10028 <tr> 10029 <td width="100"><tt>13. 2.11</tt></td> 10030 <td> <a href="#branches">branches</a></td> 10031 </tr> 10032 <tr> 10033 <td width="100"><tt>13. 2.12</tt></td> 10034 <td> <a href="#Strategy specifications">Strategy specifications</a></td> 10035 </tr> 10036 <tr> 10037 <td width="100"><tt>13. 2.13</tt></td> 10038 <td> <a href="#setup_script, cleanup_script">setup_script, cleanup_script</a></td> 10039 </tr> 10040 <tr> 10041 <td width="100"><tt>13. 2.14</tt></td> 10042 <td> <a href="#include_path">include_path</a></td> 10043 </tr> 10044 <tr> 10045 <td width="100"><tt>13. 2.15</tt></td> 10046 <td> <a href="#include_dirs">include_dirs</a></td> 10047 </tr> 10048 <tr> 10049 <td width="100"><tt>13. 2.16</tt></td> 10050 <td> <a href="#make_fragment">make_fragment</a></td> 10051 </tr> 10052 <tr> 10053 <td width="100"><tt>13. 2.17</tt></td> 10054 <td> <a href="#public, private">public, private</a></td> 10055 </tr> 10056 <tr> 10057 <td width="100"><tt>13. 2.17. 1</tt></td> 10058 <td> <a href="#Scoping sections">Scoping sections</a></td> 10059 </tr> 10060 <tr> 10061 <td width="100"><tt>13. 2.18</tt></td> 10062 <td> <a href="#tag, apply_tag">tag, apply_tag</a></td> 10009 10063 </tr> 10010 10064 <tr> 10011 10065 <td width="100"><tt>13. 3</tt></td> 10012 <td> <a href="#Examples">Examples</a></td> 10066 <td> <a href="#The general cmt user interface">The general cmt user interface</a></td> 10067 </tr> 10068 <tr> 10069 <td width="100"><tt>13. 3. 1</tt></td> 10070 <td> <a href="#cmt broadcast">cmt broadcast</a></td> 10071 </tr> 10072 <tr> 10073 <td width="100"><tt>13. 3. 1. 1</tt></td> 10074 <td> <a href="#Specifying the shell command">Specifying the shell command</a></td> 10075 </tr> 10076 <tr> 10077 <td width="100"><tt>13. 3. 1. 2</tt></td> 10078 <td> <a href="#Templates in the shell command">Templates in the shell command</a></td> 10079 </tr> 10080 <tr> 10081 <td width="100"><tt>13. 3. 2</tt></td> 10082 <td> <a href="#cmt build <option>">cmt build <option></a></td> 10083 </tr> 10084 <tr> 10085 <td width="100"><tt>13. 3. 3</tt></td> 10086 <td> <a href="#cmt check configuration">cmt check configuration</a></td> 10087 </tr> 10088 <tr> 10089 <td width="100"><tt>13. 3. 4</tt></td> 10090 <td> <a href="#cmt check files <reference-file> <new-file>">cmt check files <reference-file> <new-file></a></td> 10091 </tr> 10092 <tr> 10093 <td width="100"><tt>13. 3. 5</tt></td> 10094 <td> <a href="#cmt checkout ...">cmt checkout ...</a></td> 10095 </tr> 10096 <tr> 10097 <td width="100"><tt>13. 3. 6</tt></td> 10098 <td> <a href="#cmt co ...">cmt co ...</a></td> 10099 </tr> 10100 <tr> 10101 <td width="100"><tt>13. 3. 7</tt></td> 10102 <td> <a href="#cmt cleanup [-csh|-sh]">cmt cleanup [-csh|-sh]</a></td> 10103 </tr> 10104 <tr> 10105 <td width="100"><tt>13. 3. 8</tt></td> 10106 <td> <a href="#cmt config">cmt config</a></td> 10107 </tr> 10108 <tr> 10109 <td width="100"><tt>13. 3. 9</tt></td> 10110 <td> <a href="#cmt create <package> <version> [<area>]">cmt create <package> <version> [<area>]</a></td> 10111 </tr> 10112 <tr> 10113 <td width="100"><tt>13. 3.10</tt></td> 10114 <td> <a href="#cmt expand model [-strict] <model-string>">cmt expand model [-strict] <model-string></a></td> 10115 </tr> 10116 <tr> 10117 <td width="100"><tt>13. 3.11</tt></td> 10118 <td> <a href="#cmt filter <in-file> <out-file>">cmt filter <in-file> <out-file></a></td> 10119 </tr> 10120 <tr> 10121 <td width="100"><tt>13. 3.12</tt></td> 10122 <td> <a href="#cmt help | --help">cmt help | --help</a></td> 10123 </tr> 10124 <tr> 10125 <td width="100"><tt>13. 3.13</tt></td> 10126 <td> <a href="#cmt lock [ <package> <version> [<area>] ]">cmt lock [ <package> <version> [<area>] ]</a></td> 10127 </tr> 10128 <tr> 10129 <td width="100"><tt>13. 3.14</tt></td> 10130 <td> <a href="#cmt remove <package> <version> [<area>]">cmt remove <package> <version> [<area>]</a></td> 10131 </tr> 10132 <tr> 10133 <td width="100"><tt>13. 3.15</tt></td> 10134 <td> <a href="#cmt remove library_links">cmt remove library_links</a></td> 10135 </tr> 10136 <tr> 10137 <td width="100"><tt>13. 3.16</tt></td> 10138 <td> <a href="#cmt run [shell-command]">cmt run [shell-command]</a></td> 10139 </tr> 10140 <tr> 10141 <td width="100"><tt>13. 3.17</tt></td> 10142 <td> <a href="#cmt set version <version>">cmt set version <version></a></td> 10143 </tr> 10144 <tr> 10145 <td width="100"><tt>13. 3.18</tt></td> 10146 <td> <a href="#cmt set versions">cmt set versions</a></td> 10147 </tr> 10148 <tr> 10149 <td width="100"><tt>13. 3.19</tt></td> 10150 <td> <a href="#cmt setup [-csh|-sh|-bat]">cmt setup [-csh|-sh|-bat]</a></td> 10151 </tr> 10152 <tr> 10153 <td width="100"><tt>13. 3.20</tt></td> 10154 <td> <a href="#cmt show <option>">cmt show <option></a></td> 10155 </tr> 10156 <tr> 10157 <td width="100"><tt>13. 3.21</tt></td> 10158 <td> <a href="#cmt system">cmt system</a></td> 10159 </tr> 10160 <tr> 10161 <td width="100"><tt>13. 3.22</tt></td> 10162 <td> <a href="#cmt unlock [ <package> <version> [<area>] ]">cmt unlock [ <package> <version> [<area>] ]</a></td> 10163 </tr> 10164 <tr> 10165 <td width="100"><tt>13. 3.23</tt></td> 10166 <td> <a href="#cmt version | --version">cmt version | --version</a></td> 10167 </tr> 10168 <tr> 10169 <td width="100"><tt>13. 3.24</tt></td> 10170 <td> <a href="#cmt cvstags <module>">cmt cvstags <module></a></td> 10171 </tr> 10172 <tr> 10173 <td width="100"><tt>13. 3.25</tt></td> 10174 <td> <a href="#cmt cvsbranches <module>">cmt cvsbranches <module></a></td> 10175 </tr> 10176 <tr> 10177 <td width="100"><tt>13. 3.26</tt></td> 10178 <td> <a href="#cmt cvssubpackages <module>">cmt cvssubpackages <module></a></td> 10179 </tr> 10180 <tr> 10181 <td width="100"><tt>13. 4</tt></td> 10182 <td> <a href="#The setup and cleanup scripts">The setup and cleanup scripts</a></td> 10183 </tr> 10184 <tr> 10185 <td width="100"><tt>13. 5</tt></td> 10186 <td> <a href="#cmt build prototype">cmt build prototype</a></td> 10013 10187 </tr> 10014 10188 <tr> 10015 10189 <td width="100"><tt>14</tt></td> 10016 <td><a href="# The tools provided by CMT">The tools provided byCMT</a></td>10190 <td><a href="#Using cvs together with CMT">Using cvs together with CMT</a></td> 10017 10191 </tr> 10018 10192 <tr> 10019 10193 <td width="100"><tt>14. 1</tt></td> 10020 <td> <a href="#The requirements file">The requirements file</a></td> 10021 </tr> 10022 <tr> 10023 <td width="100"><tt>14. 1. 1</tt></td> 10024 <td> <a href="#The general requirements syntax">The general requirements syntax</a></td> 10194 <td> <a href="#Importing a package into a cvs repository">Importing a package into a cvs repository</a></td> 10025 10195 </tr> 10026 10196 <tr> 10027 10197 <td width="100"><tt>14. 2</tt></td> 10028 <td> <a href="#The concepts handled in the requirements file">The concepts handled in the requirements file</a></td> 10029 </tr> 10030 <tr> 10031 <td width="100"><tt>14. 2. 1</tt></td> 10032 <td> <a href="#The package structuring style ">The package structuring style </a></td> 10033 </tr> 10034 <tr> 10035 <td width="100"><tt>14. 2. 2</tt></td> 10036 <td> <a href="#Meta-information : author, manager">Meta-information : author, manager</a></td> 10037 </tr> 10038 <tr> 10039 <td width="100"><tt>14. 2. 3</tt></td> 10040 <td> <a href="#package, version">package, version</a></td> 10041 </tr> 10042 <tr> 10043 <td width="100"><tt>14. 2. 4</tt></td> 10044 <td> <a href="#Constituents : application, library, document">Constituents : application, library, document</a></td> 10045 </tr> 10046 <tr> 10047 <td width="100"><tt>14. 2. 5</tt></td> 10048 <td> <a href="#Groups">Groups</a></td> 10049 </tr> 10050 <tr> 10051 <td width="100"><tt>14. 2. 6</tt></td> 10052 <td> <a href="#Languages">Languages</a></td> 10053 </tr> 10054 <tr> 10055 <td width="100"><tt>14. 2. 7</tt></td> 10056 <td> <a href="#Symbols">Symbols</a></td> 10057 </tr> 10058 <tr> 10059 <td width="100"><tt>14. 2. 7. 1</tt></td> 10060 <td> <a href="#actions">actions</a></td> 10061 </tr> 10062 <tr> 10063 <td width="100"><tt>14. 2. 8</tt></td> 10064 <td> <a href="#use">use</a></td> 10065 </tr> 10066 <tr> 10067 <td width="100"><tt>14. 2. 9</tt></td> 10068 <td> <a href="#patterns">patterns</a></td> 10069 </tr> 10070 <tr> 10071 <td width="100"><tt>14. 2. 9. 1</tt></td> 10072 <td> <a href="#Applying a pattern">Applying a pattern</a></td> 10073 </tr> 10074 <tr> 10075 <td width="100"><tt>14. 2.10</tt></td> 10076 <td> <a href="#cmtpath_patterns">cmtpath_patterns</a></td> 10077 </tr> 10078 <tr> 10079 <td width="100"><tt>14. 2.11</tt></td> 10080 <td> <a href="#branches">branches</a></td> 10081 </tr> 10082 <tr> 10083 <td width="100"><tt>14. 2.12</tt></td> 10084 <td> <a href="#Strategy specifications">Strategy specifications</a></td> 10085 </tr> 10086 <tr> 10087 <td width="100"><tt>14. 2.13</tt></td> 10088 <td> <a href="#setup_script, cleanup_script">setup_script, cleanup_script</a></td> 10089 </tr> 10090 <tr> 10091 <td width="100"><tt>14. 2.14</tt></td> 10092 <td> <a href="#include_path">include_path</a></td> 10093 </tr> 10094 <tr> 10095 <td width="100"><tt>14. 2.15</tt></td> 10096 <td> <a href="#include_dirs">include_dirs</a></td> 10097 </tr> 10098 <tr> 10099 <td width="100"><tt>14. 2.16</tt></td> 10100 <td> <a href="#make_fragment">make_fragment</a></td> 10101 </tr> 10102 <tr> 10103 <td width="100"><tt>14. 2.17</tt></td> 10104 <td> <a href="#public, private">public, private</a></td> 10105 </tr> 10106 <tr> 10107 <td width="100"><tt>14. 2.17. 1</tt></td> 10108 <td> <a href="#Scoping sections">Scoping sections</a></td> 10109 </tr> 10110 <tr> 10111 <td width="100"><tt>14. 2.18</tt></td> 10112 <td> <a href="#tag, apply_tag">tag, apply_tag</a></td> 10198 <td> <a href="#Checking a package out from a cvs repository">Checking a package out from a cvs repository</a></td> 10113 10199 </tr> 10114 10200 <tr> 10115 10201 <td width="100"><tt>14. 3</tt></td> 10116 <td> <a href="#The general cmt user interface">The general cmt user interface</a></td> 10117 </tr> 10118 <tr> 10119 <td width="100"><tt>14. 3. 1</tt></td> 10120 <td> <a href="#cmt broadcast">cmt broadcast</a></td> 10121 </tr> 10122 <tr> 10123 <td width="100"><tt>14. 3. 1. 1</tt></td> 10124 <td> <a href="#Specifying the shell command">Specifying the shell command</a></td> 10125 </tr> 10126 <tr> 10127 <td width="100"><tt>14. 3. 1. 2</tt></td> 10128 <td> <a href="#Templates in the shell command">Templates in the shell command</a></td> 10129 </tr> 10130 <tr> 10131 <td width="100"><tt>14. 3. 2</tt></td> 10132 <td> <a href="#cmt build <option>">cmt build <option></a></td> 10133 </tr> 10134 <tr> 10135 <td width="100"><tt>14. 3. 3</tt></td> 10136 <td> <a href="#cmt check configuration">cmt check configuration</a></td> 10137 </tr> 10138 <tr> 10139 <td width="100"><tt>14. 3. 4</tt></td> 10140 <td> <a href="#cmt check files <reference-file> <new-file>">cmt check files <reference-file> <new-file></a></td> 10141 </tr> 10142 <tr> 10143 <td width="100"><tt>14. 3. 5</tt></td> 10144 <td> <a href="#cmt checkout ...">cmt checkout ...</a></td> 10145 </tr> 10146 <tr> 10147 <td width="100"><tt>14. 3. 6</tt></td> 10148 <td> <a href="#cmt co ...">cmt co ...</a></td> 10149 </tr> 10150 <tr> 10151 <td width="100"><tt>14. 3. 7</tt></td> 10152 <td> <a href="#cmt cleanup [-csh|-sh]">cmt cleanup [-csh|-sh]</a></td> 10153 </tr> 10154 <tr> 10155 <td width="100"><tt>14. 3. 8</tt></td> 10156 <td> <a href="#cmt config">cmt config</a></td> 10157 </tr> 10158 <tr> 10159 <td width="100"><tt>14. 3. 9</tt></td> 10160 <td> <a href="#cmt create <package> <version> [<area>]">cmt create <package> <version> [<area>]</a></td> 10161 </tr> 10162 <tr> 10163 <td width="100"><tt>14. 3.10</tt></td> 10164 <td> <a href="#cmt expand model [-strict] <model-string>">cmt expand model [-strict] <model-string></a></td> 10165 </tr> 10166 <tr> 10167 <td width="100"><tt>14. 3.11</tt></td> 10168 <td> <a href="#cmt filter <in-file> <out-file>">cmt filter <in-file> <out-file></a></td> 10169 </tr> 10170 <tr> 10171 <td width="100"><tt>14. 3.12</tt></td> 10172 <td> <a href="#cmt help | --help">cmt help | --help</a></td> 10173 </tr> 10174 <tr> 10175 <td width="100"><tt>14. 3.13</tt></td> 10176 <td> <a href="#cmt lock [ <package> <version> [<area>] ]">cmt lock [ <package> <version> [<area>] ]</a></td> 10177 </tr> 10178 <tr> 10179 <td width="100"><tt>14. 3.14</tt></td> 10180 <td> <a href="#cmt remove <package> <version> [<area>]">cmt remove <package> <version> [<area>]</a></td> 10181 </tr> 10182 <tr> 10183 <td width="100"><tt>14. 3.15</tt></td> 10184 <td> <a href="#cmt remove library_links">cmt remove library_links</a></td> 10185 </tr> 10186 <tr> 10187 <td width="100"><tt>14. 3.16</tt></td> 10188 <td> <a href="#cmt run [shell-command]">cmt run [shell-command]</a></td> 10189 </tr> 10190 <tr> 10191 <td width="100"><tt>14. 3.17</tt></td> 10192 <td> <a href="#cmt set version <version>">cmt set version <version></a></td> 10193 </tr> 10194 <tr> 10195 <td width="100"><tt>14. 3.18</tt></td> 10196 <td> <a href="#cmt set versions">cmt set versions</a></td> 10197 </tr> 10198 <tr> 10199 <td width="100"><tt>14. 3.19</tt></td> 10200 <td> <a href="#cmt setup [-csh|-sh|-bat]">cmt setup [-csh|-sh|-bat]</a></td> 10201 </tr> 10202 <tr> 10203 <td width="100"><tt>14. 3.20</tt></td> 10204 <td> <a href="#cmt show <option>">cmt show <option></a></td> 10205 </tr> 10206 <tr> 10207 <td width="100"><tt>14. 3.21</tt></td> 10208 <td> <a href="#cmt system">cmt system</a></td> 10209 </tr> 10210 <tr> 10211 <td width="100"><tt>14. 3.22</tt></td> 10212 <td> <a href="#cmt unlock [ <package> <version> [<area>] ]">cmt unlock [ <package> <version> [<area>] ]</a></td> 10213 </tr> 10214 <tr> 10215 <td width="100"><tt>14. 3.23</tt></td> 10216 <td> <a href="#cmt version | --version">cmt version | --version</a></td> 10217 </tr> 10218 <tr> 10219 <td width="100"><tt>14. 3.24</tt></td> 10220 <td> <a href="#cmt cvstags <module>">cmt cvstags <module></a></td> 10221 </tr> 10222 <tr> 10223 <td width="100"><tt>14. 3.25</tt></td> 10224 <td> <a href="#cmt cvsbranches <module>">cmt cvsbranches <module></a></td> 10225 </tr> 10226 <tr> 10227 <td width="100"><tt>14. 3.26</tt></td> 10228 <td> <a href="#cmt cvssubpackages <module>">cmt cvssubpackages <module></a></td> 10202 <td> <a href="#Querying CVS about some important infos">Querying CVS about some important infos</a></td> 10229 10203 </tr> 10230 10204 <tr> 10231 10205 <td width="100"><tt>14. 4</tt></td> 10232 <td> <a href="# The setup and cleanup scripts">The setup and cleanup scripts</a></td>10206 <td> <a href="#Working on a package, creating a new release">Working on a package, creating a new release</a></td> 10233 10207 </tr> 10234 10208 <tr> 10235 10209 <td width="100"><tt>14. 5</tt></td> 10236 <td> <a href="# cmt build prototype">cmt build prototype</a></td>10210 <td> <a href="#Getting a particular tagged version out of CVS">Getting a particular tagged version out of CVS</a></td> 10237 10211 </tr> 10238 10212 <tr> 10239 10213 <td width="100"><tt>15</tt></td> 10240 <td><a href="#Using cvs together with CMT">Using cvs together with CMT</a></td> 10241 </tr> 10242 <tr> 10243 <td width="100"><tt>15. 1</tt></td> 10244 <td> <a href="#Importing a package into a cvs repository">Importing a package into a cvs repository</a></td> 10245 </tr> 10246 <tr> 10247 <td width="100"><tt>15. 2</tt></td> 10248 <td> <a href="#Checking a package out from a cvs repository">Checking a package out from a cvs repository</a></td> 10249 </tr> 10250 <tr> 10251 <td width="100"><tt>15. 3</tt></td> 10252 <td> <a href="#Querying CVS about some important infos">Querying CVS about some important infos</a></td> 10253 </tr> 10254 <tr> 10255 <td width="100"><tt>15. 4</tt></td> 10256 <td> <a href="#Working on a package, creating a new release">Working on a package, creating a new release</a></td> 10257 </tr> 10258 <tr> 10259 <td width="100"><tt>15. 5</tt></td> 10260 <td> <a href="#Getting a particular tagged version out of CVS">Getting a particular tagged version out of CVS</a></td> 10214 <td><a href="#Interfacing an external package with CMT">Interfacing an external package with CMT</a></td> 10261 10215 </tr> 10262 10216 <tr> 10263 10217 <td width="100"><tt>16</tt></td> 10264 <td><a href="#Interfacing an external package with CMT">Interfacing an external package with CMT</a></td> 10218 <td><a href="#The installation area mechanism">The installation area mechanism</a></td> 10219 </tr> 10220 <tr> 10221 <td width="100"><tt>16. 1</tt></td> 10222 <td> <a href="#The default implementation">The default implementation</a></td> 10223 </tr> 10224 <tr> 10225 <td width="100"><tt>16. 2</tt></td> 10226 <td> <a href="#Tuning the installation area mechanisms">Tuning the installation area mechanisms</a></td> 10265 10227 </tr> 10266 10228 <tr> 10267 10229 <td width="100"><tt>17</tt></td> 10268 <td><a href="# The installation area mechanism">The installation area mechanism</a></td>10230 <td><a href="#Installing CMT for the first time">Installing CMT for the first time</a></td> 10269 10231 </tr> 10270 10232 <tr> 10271 10233 <td width="100"><tt>17. 1</tt></td> 10272 <td> <a href="# The default implementation">The default implementation</a></td>10234 <td> <a href="#Installing CMT on your Unix site">Installing CMT on your Unix site</a></td> 10273 10235 </tr> 10274 10236 <tr> 10275 10237 <td width="100"><tt>17. 2</tt></td> 10276 <td> <a href="# Tuning the installation area mechanisms">Tuning the installation area mechanisms</a></td>10238 <td> <a href="#Installing CMT on a Windows or Windows NT site">Installing CMT on a Windows or Windows NT site</a></td> 10277 10239 </tr> 10278 10240 <tr> 10279 10241 <td width="100"><tt>18</tt></td> 10280 <td><a href="# Installing CMT for the first time">Installing CMT for the first time</a></td>10242 <td><a href="#Appendices">Appendices</a></td> 10281 10243 </tr> 10282 10244 <tr> 10283 10245 <td width="100"><tt>18. 1</tt></td> 10284 <td> <a href="# Installing CMT on your Unix site">Installing CMT on your Unix site</a></td>10246 <td> <a href="#Copyright">Copyright</a></td> 10285 10247 </tr> 10286 10248 <tr> 10287 10249 <td width="100"><tt>18. 2</tt></td> 10288 <td> <a href="#Installing CMT on a Windows or Windows NT site">Installing CMT on a Windows or Windows NT site</a></td>10289 </tr>10290 <tr>10291 <td width="100"><tt>19</tt></td>10292 <td><a href="#Appendices">Appendices</a></td>10293 </tr>10294 <tr>10295 <td width="100"><tt>19. 1</tt></td>10296 <td> <a href="#Copyright">Copyright</a></td>10297 </tr>10298 <tr>10299 <td width="100"><tt>19. 2</tt></td>10300 10250 <td> <a href="#Standard make targets predefined in CMT">Standard make targets predefined in CMT</a></td> 10301 10251 </tr> 10302 10252 <tr> 10303 <td width="100"><tt>1 9. 3</tt></td>10253 <td width="100"><tt>18. 3</tt></td> 10304 10254 <td> <a href="#Standard macros predefined in CMT">Standard macros predefined in CMT</a></td> 10305 10255 </tr> 10306 10256 <tr> 10307 <td width="100"><tt>1 9. 3. 1</tt></td>10257 <td width="100"><tt>18. 3. 1</tt></td> 10308 10258 <td> <a href="#CMT static macros">CMT static macros</a></td> 10309 10259 </tr> 10310 10260 <tr> 10311 <td width="100"><tt>1 9. 3. 2</tt></td>10261 <td width="100"><tt>18. 3. 2</tt></td> 10312 10262 <td> <a href="#Structural macros">Structural macros</a></td> 10313 10263 </tr> 10314 10264 <tr> 10315 <td width="100"><tt>1 9. 3. 3</tt></td>10265 <td width="100"><tt>18. 3. 3</tt></td> 10316 10266 <td> <a href="#Language related macros">Language related macros</a></td> 10317 10267 </tr> 10318 10268 <tr> 10319 <td width="100"><tt>1 9. 3. 4</tt></td>10269 <td width="100"><tt>18. 3. 4</tt></td> 10320 10270 <td> <a href="#Package customizing macros">Package customizing macros</a></td> 10321 10271 </tr> 10322 10272 <tr> 10323 <td width="100"><tt>1 9. 3. 5</tt></td>10273 <td width="100"><tt>18. 3. 5</tt></td> 10324 10274 <td> <a href="#Constituent specific customizing macros">Constituent specific customizing macros</a></td> 10325 10275 </tr> 10326 10276 <tr> 10327 <td width="100"><tt>1 9. 3. 6</tt></td>10277 <td width="100"><tt>18. 3. 6</tt></td> 10328 10278 <td> <a href="#Source specific customizing macros">Source specific customizing macros</a></td> 10329 10279 </tr> 10330 10280 <tr> 10331 <td width="100"><tt>1 9. 3. 7</tt></td>10281 <td width="100"><tt>18. 3. 7</tt></td> 10332 10282 <td> <a href="#Generated macros">Generated macros</a></td> 10333 10283 </tr> 10334 10284 <tr> 10335 <td width="100"><tt>1 9. 3. 8</tt></td>10285 <td width="100"><tt>18. 3. 8</tt></td> 10336 10286 <td> <a href="#Macros related with the installation area mechanisms">Macros related with the installation area mechanisms</a></td> 10337 10287 </tr> 10338 10288 <tr> 10339 <td width="100"><tt>1 9. 3. 9</tt></td>10289 <td width="100"><tt>18. 3. 9</tt></td> 10340 10290 <td> <a href="#Utility macros">Utility macros</a></td> 10341 10291 </tr> 10342 10292 <tr> 10343 <td width="100"><tt>1 9. 4</tt></td>10293 <td width="100"><tt>18. 4</tt></td> 10344 10294 <td> <a href="#Standard tags generated by CMT">Standard tags generated by CMT</a></td> 10345 10295 </tr> 10346 10296 <tr> 10347 <td width="100"><tt>1 9. 5</tt></td>10297 <td width="100"><tt>18. 5</tt></td> 10348 10298 <td> <a href="#Standard templates for makefile fragments">Standard templates for makefile fragments</a></td> 10349 10299 </tr> 10350 10300 <tr> 10351 <td width="100"><tt>1 9. 6</tt></td>10301 <td width="100"><tt>18. 6</tt></td> 10352 10302 <td> <a href="#Makefile generation sequences">Makefile generation sequences</a></td> 10353 10303 </tr> 10354 10304 <tr> 10355 <td width="100"><tt>1 9. 7</tt></td>10305 <td width="100"><tt>18. 7</tt></td> 10356 10306 <td> <a href="#The complete requirements syntax">The complete requirements syntax</a></td> 10357 10307 </tr> 10358 10308 <tr> 10359 <td width="100"><tt>1 9. 8</tt></td>10309 <td width="100"><tt>18. 8</tt></td> 10360 10310 <td> <a href="#The default strategies defined in CMT">The default strategies defined in CMT</a></td> 10361 10311 </tr> 10362 10312 <tr> 10363 <td width="100"><tt>1 9. 9</tt></td>10313 <td width="100"><tt>18. 9</tt></td> 10364 10314 <td> <a href="#The internal mechanism of cmt cvs operations">The internal mechanism of cmt cvs operations</a></td> 10365 10315 </tr> -
CMT/v1r19/doc/CMTDoc.xml
r18 r21 273 273 <p>Package areas implement the concept of <i>projects</i> or 274 274 <i>sub-projects</i> which correspond to the practical 275 organization of the software developments.</p>276 277 <p>There are no constraints on the number of such areas into278 which <tt>CMT</tt> packages are installed. We'll see <a279 HREF="#Localizing a package">later</a> how the different areas280 orsub-projects can be declared and identified by275 organization of the software base.</p> 276 277 <p>There are no constraints on the number of such sub-projects 278 or areas into which <tt>CMT</tt> packages are installed. We'll 279 see <a HREF="#Localizing a package">later</a> how the 280 different sub-projects can be declared and identified by 281 281 <tt>CMT</tt>.</p> 282 282 … … 429 429 Simulation, Graphics, Core, etc.</li> 430 430 431 <li>how responsibilities or management polic yare defined and431 <li>how responsibilities or management policies are defined and 432 432 assigned </li> 433 433 … … 438 438 439 439 <p>Considering the simple structuring aspects of sub-projects, two 440 important configuration parameters handled by CMT must be441 understood before attempting to manage packages. These are the442 following environment variables:</p>440 important configuration parameters (environment variables) handled 441 by CMT must be understood before attempting to manage 442 packages:</p> 443 443 444 444 <ul> 445 <li><tt>CMTPROJECTPATH</tt></li> 446 <li><tt>CMTPATH</tt></li> 445 446 <li><a href="#CMTPROJECTPATH"><tt>CMTPROJECTPATH</tt></a> for a 447 global specification of where projects can be found. This 448 specification should be considered as the standard mechanism for 449 structuring the software base since from it, CMT can and will 450 deduce all other localization parameters (like 451 <tt>CMTPATH</tt>).<p></p></li> 452 453 <li><a href="#CMTPATH"><tt>CMTPATH</tt></a> offers a more 454 internal mechanism for localizing packages. It's not generally 455 meant to be defined manually since CMT will construct it from 456 <tt>CMTPROJECTPATH</tt>. However, it's important to understand 457 how this configuration parameter is used to locate 458 packages.</li> 447 459 </ul> 448 460 461 <p>Projects receive detailed descriptions or specifications in a 462 dedicated <i>project file</i>, always located in a <tt>cmt</tt> 463 directory at their top directory level, and named 464 <tt>cmt/project.cmt</tt>. It can receive the following 465 specifications:</p> 466 467 <cmt:cmtcode> 468 project <project-name> [1] 469 <i>project-use specifications...</i> [2] 470 <i>strategy specifications...</i> [3] 471 </cmt:cmtcode> 472 473 <ol> 474 475 <li>The project name specified here takes precedence over the 476 project name specified in the directory structure. However when 477 <tt>CMTPROJECTPATH</tt> is not specified, this may cause 478 conflicts in the localization of projects. In this case it's 479 highly recommended to always use the same naming convention in 480 project files as in the directory hierarchy.<p></p></li> 481 482 <li>Projects are hierarchized as a directed acyclic graph. The 483 minimal hierarchy simply corresponds to the order of the 484 <tt>CMTPATH</tt> items. A more complex hierarchy can be 485 specified through use statements between sub-projects. This 486 hierarchy also defines a <i>parent/child</i> relationship between 487 projects. If a project <tt>A</tt> uses another project 488 <tt>B</tt>, <tt>A</tt> is also named the <i>parent</i> and 489 <tt>B</tt> the <i>child</i><p></p></li> 490 491 <li>CMT Strategies (for build or setup) are separately 492 collected into each project. Therefore one can apply different 493 strategies to different sub-projects. The strategy 494 specifications may appear in requirements file of any package 495 of a project or in the <tt>cmt/project.cmt</tt> project file. 496 497 <p>By default a project inherits the strategies of its 498 parents. Or if it's the top project, it follows the default 499 strategies defined by CMT (Refer to this 500 501 <a href="#The default strategies defined in CMT">appendix</a> 502 to see the default strategies currently defined by CMT).</p> 503 504 <p></p></li> 505 506 </ol> 507 508 <cmt:section title="The project file"> 509 510 <p>The project file can be created using the command:</p> 511 512 <cmt:code> 513 > cmt create_project <project-name> [<release>] [<path>]</cmt:code> 514 515 <p>This will create the complete directory hierarchy from the 516 current directory (or, when it is specified from the optional 517 project path). It will also create a project file containing the 518 project name.</p> 519 520 <blockquote><i>Note that the <release> argument may be 521 left empty (or to an empty string). In this case, the directory 522 hierarchy will be limited to one level devoted to the project 523 name.</i></blockquote> 524 525 <cmt:code> 526 <path>/<project-name>/<release>/cmt/project.cmt 527 <path>/<project-name>/cmt/project.cmt</cmt:code> 528 529 <p>As an example, we create the following projects:</p> 530 531 <cmt:code> 532 > cmt create_project WorkArea "" /test 533 > cmt create_project ProjectA 1.0 /test 534 > cmt create_project ProjectB 1.0 /test</cmt:code> 535 536 <p>And we fill <tt>CMTPATH</tt> with:</p> 537 538 <cmt:code> 539 /test/WorkArea:/test/ProjectA/1.0:/test/ProjectB/1.0</cmt:code> 540 541 <p>Then the following projects will appear displayed from bottom 542 to top as</p> 543 544 <cmt:code> 545 > cd /test/WorkArea 546 > cmt show projects 547 <i><font face="courier new, courier" COLOR="#000077">WorkArea (in /test/WorkArea) (current) 548 ProjectA 1.0 (in /test/ProjectA/1.0) 549 ProjectB 1.0 (in /test/ProjectB/1.0)</font></i></cmt:code> 550 551 <p>Of course the preferred way to characterize this software 552 base should rather be based on specifying the relationships 553 between those three sub-projects, through the use statements in 554 the projects files.</p> 555 556 <p>For instance in our little example, we could add the 557 following statement into the project file of WorkArea:</p> 558 559 <cmt:code> 560 use ProjectA 1.0</cmt:code> 561 562 <p>and the following statement into the project file of ProjectB:</p> 563 564 <cmt:code> 565 use ProjectB 1.0</cmt:code> 566 567 <p>Then instead of specifying <tt>CMTPATH</tt> we'd rather 568 simply define <tt>CMTPROJECTPATH</tt> as:</p> 569 570 <cmt:code> 571 /test</cmt:code> 572 573 </cmt:section> 574 575 <cmt:section title="Projects and strategies"> 576 577 <p>Every strategy setting defines two mutually exclusive tags 578 and activates one of them.</p> 579 580 <cmt:cmtcode> 581 <project>_<have_item> 582 <project>_<have_not_item> </cmt:cmtcode> 583 584 <p>Examples</p> 585 586 <cmt:cmtcode> 587 <project>_prototypes 588 <project>_no_prototypes 589 <project>_with_install_area 590 <project>_without_install_area 591 <project>_config 592 <project>_no_config 593 <project>_root 594 <project>_no_root 595 <project>_cleanup 596 <project>_no_cleanup</cmt:cmtcode> 597 598 <p>In particular, the installation area mechanism is strongly 599 connected with the project hierarchy. This happens through 600 several mechanisms:</p> 601 602 <ul> 603 604 <li>The <tt><project></tt> parameter is expanded in the 605 <tt>cmtpath_pattern</tt> construct in addition to the 606 <tt><path></tt> parameter. This parameter is assigned 607 the name of the project associated with the running 608 <tt>CMTPATH</tt> entry. <p></p></li> 609 610 <li>The <tt><project></tt> parameter is also available 611 for normal patterns. In this case it is assigned the project 612 name associated with the cmtpath parameter for the current 613 package.<p></p></li> 614 615 <li>Every project defines a tag of the same name, and the tag 616 of the current project is active.<p></p></li> 617 618 <li>The <tt>cmt_installarea_prefix</tt> macro is specialized 619 <i>per project</i> and every project may override the 620 <tt><project>_installarea_prefix</tt> macro. The default 621 value of any <tt><project>_installarea_prefix</tt> is 622 <tt>${cmt_installarea_prefix}</tt> <p></p></li> 623 624 </ul> 625 626 </cmt:section> 627 449 628 <cmt:section title="CMTPROJECTPATH"> 450 629 451 630 <p>This is an environment variable containing a search list, 452 very similar to the well know <tt>PATH</tt> environment 453 variable, containing a list of file paths where CMT projects can 454 be found. The syntax of this search list follows the standard 455 syntax of search lists, i.e. items are separated using a 456 <tt>:</tt> character on Unix and a <tt>;</tt> character on 457 Windows.</p> 458 459 <p><blockquote><i>One should understand this search list as the primary 460 mechanism to locate sub-projects in the software base, and 461 therefore packages. This in particular can completely replace 462 the <tt>CMTPATH</tt>-based search mechanism for packages that 463 was used before <tt>v1r18</tt>. However the two mechanisms are 464 still supported together.</i></blockquote></p> 465 466 <p>A sub-project in itself is a two-level directory structure, 631 very similar to the well know Unix or Windows <tt>PATH</tt> 632 environment variable, containing a list of file paths where CMT 633 projects can be found. The syntax of this search list follows 634 the standard syntax of search lists, i.e. items are separated 635 using a <tt>:</tt> character on Unix and a <tt>;</tt> character 636 on Windows.</p> 637 638 <p><blockquote><i>One should understand this search list as the 639 primary mechanism to locate sub-projects in the software base, 640 and therefore packages. This in particular can completely 641 replace the <tt>CMTPATH</tt>-based search mechanism for packages 642 that was used before <tt>v1r18</tt>. However the two mechanisms 643 are still both supported and in fact interact with each 644 other.</i></blockquote></p> 645 646 <p>A sub-project in itself is a multi-level directory structure, 467 647 located below one of the items of this search list, and composed 468 648 of:</p> … … 472 652 <li>the sub-project name</li> 473 653 474 <li>the sub-project release </li>654 <li>the sub-project release (which may span several directory levels)</li> 475 655 476 656 </ul> … … 538 718 </ul> 539 719 540 <p>This search list is considered to interpret the <i>use</i>720 <p>This search list is used to interpret the <i>use</i> 541 721 statements written in the project files. This project use 542 722 statement takes the form:</p> … … 559 739 use ProductA 1.1.2</cmt:code> 560 740 561 <p><i>Note that sub-project release identifiers are considered562 using a perfect-match principle.</i></p>741 <p><i>Note that sub-project release identifiers are always 742 considered using a perfect-match principle.</i></p> 563 743 564 744 <p>Structuring the set of sub-projects comprising a software 565 base is sufficient to permit CMT to find all sub-projects and 566 thus all packages in them. Defining <tt>CMTPROJECTPATH</tt> 567 <i>and</i> installing the list of use statements in all 568 appropriate project files entirely suppress the need of manually 569 defining the <tt>CMTPATH</tt> search list.</p> 745 base is sufficient to permit CMT to find <i>all</i> sub-projects 746 and thus <i>all</i> packages in them. Defining 747 <tt>CMTPROJECTPATH</tt> <i>and</i> installing the list of use 748 statements in all appropriate project files entirely suppress 749 the need of manually defining the <tt>CMTPATH</tt> search 750 list.</p> 570 751 571 752 </cmt:section> … … 582 763 583 764 <p><blockquote><i>When the software base is organized and 584 configured using the <tt>CMTPROJECTPATH</tt> search list and 585 project-use statements in the project files, this search list is 586 automatically and internally generated by CMT, and therefore it 587 should not be manually defined nor manipulated. If this is your 588 case, you can skip this section</i></blockquote></p> 589 590 <p>So when one manually define this search list (because <tt>CMTPROJECTPATH</tt> is not defined or project files and There should be one entry</p> 765 configured using the <a 766 href="#CMTPROJECTPATH"><tt>CMTPROJECTPATH</tt></a> search list 767 and project-use statements in the project files, this search 768 list is automatically and internally generated by CMT, and 769 therefore it should not be manually defined nor manipulated. If 770 this is your case, you can skip this 771 section</i></blockquote></p> 772 773 <p>It is possible to manually define this search list (when 774 <tt>CMTPROJECTPATH</tt> is not defined or when project files are 775 not provided)</p> 776 777 <p>There should be one entry per package area, and the list is 778 ordered. The order of items is used to prioritize the package 779 search.</p> 780 781 <p><tt>CMTPATH</tt> can be specified:</p> 782 783 <ul> 784 785 <li>as the environment variable named <tt>CMTPATH</tt> 786 787 <cmt:code> 788 sh> export CMTPATH=/home/arnault/mydev:/ProjectB </cmt:code> 789 790 <cmt:code> 791 bat> set CMTPATH=/home/arnault/mydev;/ProjectB </cmt:code> 792 793 or (in a <tt>requirements</tt> file) 794 795 <cmt:cmtcode> 796 path_append CMTPATH "/home/arnault/mydev" 797 path_append CMTPATH "/ProjectB"</cmt:cmtcode> 798 799 </li> 800 801 <li>in <tt>.cmtrc</tt> files, which can be located either in 802 the current directory, in the <i>home</i> directory of the 803 developper or in <tt>${CMTROOT}/mgr</tt>. The syntax to use in this 804 configuration file is: 805 806 <cmt:code> 807 CMTPATH=/home/arnault/mydev:/ProjectB </cmt:code> 808 809 </li> 810 811 <li>In the Windows environment, this configuration parameter 812 may also be installed as a <i>Registry</i> under the alternate 813 keys: 814 815 <ul> 816 <li> <tt>HKEY_LOCAL_MACHINE/Software/CMT/path</tt> </li> 817 <li> <tt>HKEY_CURRENT_USER/Software/CMT/path</tt> </li> 818 </ul> 819 </li> 820 </ul> 821 822 <blockquote><i>The project file (i.e. the file 823 <tt>cmt/project.cmt</tt>), when it exists for the current 824 package (i.e. upstream in the directory hierarchy), also 825 provides an automatic value for the <tt>CMTPATH</tt> search 826 list.</i></blockquote> 591 827 592 828 </cmt:section> … … 657 893 Creating a new project file </font></i></cmt:code> 658 894 659 <p>This creates a project structure (i.e. a660 <tt> cmt/project.cmt</tt> file)from the current directory. Once895 <p>This creates a project structure 896 <tt>Dev/cmt/project.cmt</tt> from the current directory. Once 661 897 this project has been created we have a complete environment to 662 start creating packages and working out our software base.</p>898 start creating packages below <tt>Dev</tt> and working out our software base.</p> 663 899 664 900 <p> A package is primarily defined by a <i>name</i> and a … … 669 905 670 906 <cmt:code> 671 csh> cd mydev907 csh> cd Dev 672 908 csh> cmt create Foo v1 673 909 <i><font face="courier new, courier" COLOR="#000077">------------------------------------------ 674 910 Configuring environment for package Foo version v1. 675 911 CMT version &CMTVersion;. [1] 676 Root set to /home/arnault/ mydev.912 Root set to /home/arnault/Dev. 677 913 System is Linux-i686 [2] 678 914 ------------------------------------------ … … 896 1132 <p>The first ingredient we need at this level is to understand how 897 1133 projects themselves are localized, since packages will be found 898 inside project areas.</p> 899 900 <p>Projects are localized according to the <tt>CMTPATH</tt> path 901 list. Thus it is <i>always</i> required to define this environment 902 variable as soon as several project areas are expected. However, 903 there is one special case where this path list can be avoided, 904 i.e. when only one project area is considered. In this case, the 905 knowledge of this single project area can simply be deduced from 906 the detection of the project file, created at the top of its disk 907 space.</p> 1134 inside project areas. You should therefore refer to the 1135 1136 <a href="#Defining and managing projects">section on projects</a> 1137 where the complete mechanism based on <a 1138 href="#CMTPROJECTPATH"><tt>CMTPROJECTPATH</tt></a> or <a 1139 href="#CMTPATH"><tt>CMTPATH</tt></a> is described.</p> 1140 1141 <p>However, there is one special case where this path list can be 1142 avoided, i.e. when only one project is considered. In this case, 1143 the knowledge of this single project area can simply be deduced 1144 from the detection of the project file, created at the top of its 1145 disk space.</p> 908 1146 909 1147 <p>A given version of a given package is always referred to by … … 946 1184 absolute (case #3), </li> 947 1185 948 <li> the access paths optionally registered in the configuration949 parameter - see below - <tt>CMTPATH</tt> (and in decreasing1186 <li> the access paths registered in the configuration parameter 1187 <a href="#CMTPATH"><tt>CMTPATH</tt></a> (and in decreasing 950 1188 priority, the first element being searched for first).</li> 951 1189 952 1190 </ol> 953 954 <cmt:blockquote>955 <i>956 957 The configuration parameter <tt>CMTPATH</tt> can be specified958 either in the environment variable named <tt>CMTPATH</tt> or in959 <tt>.cmtrc</tt> files, which can themselves be located either in960 the current directory, in the <i>home</i> directory of the961 developper or in <tt>${CMTROOT}/mgr</tt>. In the Windows962 environment, this configuration parameter may also be963 installed as a <i>Registry</i> under either the keys:964 965 <ul>966 <li> <tt>HKEY_LOCAL_MACHINE/Software/CMT/path</tt> </li>967 <li> <tt>HKEY_CURRENT_USER/Software/CMT/path</tt> </li>968 </ul>969 970 <p>The project file (i.e. the file <tt>cmt/project.cmt</tt>),971 when it exists for the current package area, is able to972 provide an automatic value for the <tt>CMTPATH</tt> search973 list.</p>974 975 </i>976 </cmt:blockquote>977 1191 978 1192 <p>If the <i>path</i> argument is specified as a relative path … … 981 1195 <i>offset</i> to each search case. The search is done starting 982 1196 from the list specified in the <tt>CMTPATH</tt> configuration 983 parameter, then using the default root; and the offset is appended 984 at each searched location.</p> 985 986 <p>The <tt>CMTPATH</tt> parameter is thus used as a search list for 987 the packages, and the individual paths are separated in this list 988 by <i>colons</i> (<i>semi-colons</i> on Windows). </p> 989 990 <p>A very typical usage of thie <tt>CMTPATH</tt> search list is to 991 assign one entry per project or sub-project considered in the 992 workning context. This is consistent with an approach where every 993 sub-project will have a dedicated management style, access rights, 994 rsponsible persons, etc.</p> 995 996 <p>As an example, if we specify the <tt>CMTPATH</tt> parameter as 997 follows : </p> 998 1197 parameter; and the offset is appended at each searched 1198 location.</p> 1199 1200 <p>As an example, if the <tt>CMTPATH</tt> parameter contains: </p> 999 1201 1000 1202 <cmt:code> 1001 csh> setenv CMTPATH /home/arnault/mydev:/ProjectB </cmt:code> 1002 1003 <cmt:code> 1004 sh> export CMTPATH=/home/arnault/mydev:/ProjectB </cmt:code> 1005 1006 <cmt:code> 1007 bat> set CMTPATH=/home/arnault/mydev;/ProjectB </cmt:code> 1008 1009 or (in a <tt>requirements</tt> file) 1010 1011 <cmt:cmtcode> 1012 path_append CMTPATH "/home/arnault/mydev" 1013 path_append CMTPATH "/ProjectB"</cmt:cmtcode> 1014 1015 or (in a <tt>.cmtrc</tt> file) 1016 1017 <cmt:code> 1018 CMTPATH=/home/arnault/mydev:/ProjectB </cmt:code> 1203 /home/arnault/mydev:/ProjectB </cmt:code> 1019 1204 1020 1205 <p>Then a <i>use</i> statement (defined within a given package) … … 1079 1264 1080 1265 </p> 1081 1082 </cmt:section>1083 1084 <cmt:section title="The concept of project">1085 1086 The purpose of the concept of <i>project</i> or <i>sub-project</i>1087 is to structure the software bases developed using CMT. This1088 concept basically assigns a semantics to the physical structuring1089 mechanism of the software areas already described by the <tt>CMTPATH</tt>1090 search list.1091 1092 <p>Some general properties can describe the knowledge of projects1093 in CMT:</p>1094 1095 <ul>1096 1097 <li>One project is always explicitly or implicitly associated1098 with every CMTPATH entry.<p></p></li>1099 1100 <li>Every project can be <i>named</i> inside a dedicated text1101 file (the <i>project file</i>) named <tt>cmt/project.cmt</tt>,1102 located immediately below the corresponding <tt>CMTPATH</tt>1103 entry. The format of this file is1104 1105 <cmt:cmtcode>1106 project <project-name>1107 <i>strategy specifications...</i></cmt:cmtcode>1108 <p></p>1109 </li>1110 1111 <li>When not explicitly named, a sub-project is automatically1112 assigned the default name <tt>Project<N></tt> by CMT,1113 where <tt><N></tt> is the sequence number of the project1114 in the list<p></p></li>1115 1116 <li>The project file can be created using one of the commands:1117 1118 <cmt:code>1119 > cmt create_project <project-name>1120 > cmt -project=<project-name> create ...1121 > cmt -project=<project-name> checkout ...</cmt:code>1122 <p></p>1123 </li>1124 1125 <li>When being within one project area where a project file has1126 been installed, its CMTPATH is automatically generated as the1127 location where the first visible project file is1128 detected.<p></p></li>1129 1130 <li>The same project may be associated with several CMTPATH1131 entries, typically when one entry is a development area of1132 another one being the production area of the same1133 sub-project<p></p></li>1134 1135 <li>Since CMTPATH entries are ordered the projects are1136 hierarchized accordingly. The last CMTPATH entry (i.e. the1137 rightmost one) corresponds to the top project while the first1138 CMTPATH entry (i.e. the leftmost one) corresponds to the bottom1139 project. A project may have a predecessor and/or a successor.1140 1141 <p>As an example, suppose we have set up the following1142 <tt>CMTPATH</tt>:</p>1143 1144 <cmt:code>1145 $HOME/work-for-A:/ProjectA:/ProjectB</cmt:code>1146 1147 Then the following projects will appear displayed from bottom1148 to top as1149 1150 <cmt:code>1151 > cmt show projects1152 <i><font face="courier new, courier" COLOR="#000077">Project1 (in /.../work-for-A)1153 Project2 (in /ProjectA)1154 Project3 (in /ProjectB)1155 CMT (in /afs/cern.ch/sw/contrib)</font></i></cmt:code>1156 1157 And if projects have been explicitly named this display will become:1158 1159 <cmt:code>1160 > cmt show projects1161 <i><font face="courier new, courier" COLOR="#000077">A (in /.../work-for-A)1162 A (in /ProjectA)1163 Project3 (in /ProjectB)1164 CMT (in /afs/cern.ch/sw/contrib)</font></i></cmt:code>1165 1166 <p></p></li>1167 1168 <li>CMT Strategies (for build or setup) are separately1169 collected into each project. Therefore one can apply different1170 strategies to different sub-projects. The strategy1171 specifications may appear in requirements file of any package1172 of a project or in the <tt>cmt/project.cmt</tt> project file.1173 1174 <p>By default a project inherits the strategies of its1175 predecessor. Or if it's the top project, it follows the default1176 strategies defined by CMT (Refer to this1177 <a href="#The default strategies defined in CMT">appendix</a> to see the default1178 strategies currently defined by CMT).</p> <p></p></li>1179 1180 <li>A CMT command displays the projects and their associated CMTPATH:1181 1182 <cmt:code>1183 > cmt show projects1184 > cmt show project <project-name></cmt:code>1185 1186 <p></p></li>1187 1188 <li>The installation area mechanism is strongly connected with1189 the <tt>CMTPATH</tt> hierarchy. Therefore it will also be connected with1190 the project concept. This will happen through several1191 mechanisms:<p></p>1192 1193 <ul>1194 1195 <li>The <tt><project></tt> parameter is expanded in the1196 <tt>cmtpath_pattern</tt> construct in addition to the1197 <tt><path></tt> parameter. This parameter is assigned1198 the name of the project associated with the running1199 <tt>CMTPATH</tt> entry. <p></p></li>1200 1201 <li>The <tt><project></tt> parameter is also available1202 for normal patterns. In this case it is assigned the1203 project name associated with the cmtpath parameter for the1204 current package.<p></p></li>1205 1206 <li>Every project defines a tag of the same name, and the1207 tag of the current project is active.<p></p></li>1208 1209 <li>The <tt>cmt_installarea_prefix</tt> macro is specialized1210 <i>per project</i> and every project may override the1211 <tt><project>_installarea_prefix</tt> macro. The1212 default value of any1213 <tt><project>_installarea_prefix</tt> is1214 <tt>${cmt_installarea_prefix}</tt>1215 <p></p></li>1216 </ul>1217 <p></p></li>1218 1219 <li>Every strategy setting defines two mutually exclusive tags and activates one of them.1220 1221 <cmt:cmtcode>1222 <project>_<have_item>1223 <project>_<have_not_item> </cmt:cmtcode>1224 1225 Examples1226 1227 <cmt:cmtcode>1228 <project>_prototypes1229 <project>_no_prototypes1230 <project>_with_install_area1231 <project>_without_install_area1232 <project>_config1233 <project>_no_config1234 <project>_root1235 <project>_no_root1236 <project>_cleanup1237 <project>_no_cleanup</cmt:cmtcode>1238 1239 <p></p></li>1240 </ul>1241 1266 1242 1267 </cmt:section> … … 2338 2363 <p> Most of the options provided by the <tt>cmt</tt> user 2339 2364 interface are still available in these conditions. </p> 2340 2341 </cmt:section>2342 2343 <cmt:section title="Construction of a global environment">2344 2345 <p>A software base generally consists in many <i>packages</i>,2346 some of them providing <i>libraries</i> or <i>documents</i>,2347 others providing <i>applications</i>, some providing both, some2348 providing just <i>glues</i> towards external software2349 products.</p>2350 2351 <p> On another view, this software base may a mix of packages2352 shared between several projects and sets of packages specific to2353 various projects. One may have several software bases as well2354 (combined using the <tt>CMTPATH</tt> environment variable). </p>2355 2356 <p> In such contexts, it is often desirable that a given project2357 defines its own selection of all existing packages. This can2358 easily be done with <tt>CMT</tt> by defining a <i>project</i>2359 package, containing only <tt>use</tt> statements towards the2360 appropriate selection of packages for this particular2361 project. </p>2362 2363 <p>Let's consider as an example the project named2364 <tt>MyProject</tt>. We may create the package named2365 <tt>MyProject</tt> similarly to any other package : </p>2366 2367 <cmt:code>2368 csh> cd .....2369 csh> cmt create MyProject v1 /ProjectB</cmt:code>2370 2371 <p> Then the <tt> &CMTrequirements;</tt> file of this new package2372 will simply contain a set of <tt>use</tt> statements, defining the2373 <i>official</i> set of validated versions of the packages2374 required for the project. This mechanism also represents the2375 notion of <i>global release</i> traditionally addressed in2376 configuration management environments </p>2377 2378 <cmt:cmtcode>2379 package MyProject2380 2381 use Cm v7r62382 use Db v4r32383 use El v4r22384 use Su v52385 use DbUI v1r2 Db2386 use ElUI v1r1 El2387 use VSUUI v3 Su/VSU2388 use VMM v12389 use VPC v3 </cmt:cmtcode>2390 2391 <p>Then any user wanting to access the so-called <i>official</i>2392 release of the package set appropriate to the project2393 <tt>MyProject</tt> will simply do (typically within its login2394 shell script) : </p>2395 2396 <cmt:code>2397 # a login script2398 2399 ...2400 2401 source /ProjectB/MyProject/v1/cmt/setup.csh </cmt:code>2402 2403 <p>Later on, future evolutions of the <tt>MyProject</tt> package2404 will reflect progressive integration steps, which2405 <i>validate</i> the evolutions of each referenced package. </p>2406 2365 2407 2366 </cmt:section> … … 4570 4529 config : generate setup and cleanup scripts 4571 4530 create &lt;package> <version> [<path>] : create and configure a new package 4572 create_project &lt;project> : create and configure a new project4531 create_project &lt;project> <name> [<path>] : create and configure a new project 4573 4532 cvsbranches &lt;module> : display the subdirectories for a module 4574 4533 cvssubpackagess &lt;module> : display the subpackages for a module -
CMT/v1r19/doc/table.html
r11 r21 19 19 <li><a href="http://www.cecill.info/licences" target="Contents">Copyright</a></li> 20 20 <li><a href="documents.html" target="Contents">Documentation</a></li> 21 <li><a href="http:// www.cmtsite.org/cgi-bin/cvstrac.cgi/CMT/" target="Contents">Bug reporting</a></li>21 <li><a href="http://trac.lal.in2p3.fr/CMT/" target="Contents">Bug reporting</a></li> 22 22 <li><a href="discussion.html" target="Contents">Discussion</a></li> 23 23 <li><a href="http://www.lal.in2p3.fr/cgi-bin/cvsweb/cvsweb.cgi/CMT/" target="Contents">Repository</a></li>
Note: See TracChangeset
for help on using the changeset viewer.