source: CMT/HEAD/ChangeLog @ 303

Last change on this file since 303 was 282, checked in by garonne, 18 years ago

See C.L 317

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-trac-wiki
File size: 203.5 KB
RevLine 
[282]12006-18-10 Vincent Garonne <garonne@lal.in2p3.fr> 317
[281]2
[282]3    *  cmt_commands.*, cmt_parser.cxx, cmt.h: Add the -disable_warnings option to not print certains warnings, e.g. the CMTSITE value etc.
4   
52006-12-10 Vincent Garonne <garonne@lal.in2p3.fr> 316
[281]6
7    * source/cmt_parser.cxx, source/cmt_syntax.cxx, source/cmt_use.*: Enable and propagate the -native_version syntax at the use level.
8     IMPORTANT NOTES: STILL NOT FINISHED.
[282]9     
102006-12-10 Vincent Garonne <garonne@lal.in2p3.fr> 315
[281]11
[280]12    * source/cmt_std.h: add __APPLE__ for removing compilation warnings   
13
[282]142006-11-10 Vincent Garonne <garonne@lal.in2p3.fr> 314
[273]15
16    * source/cmt_project.*: Add two functions - get_project_releases, select_release   
17    * source/cmt_project.*: Add support for wildcarded project dependencies
18
[282]192006-10-10 Vincent Garonne <garonne@lal.in2p3.fr> 313
[272]20
21    * source/cmt_symbol.*, source/cmt_parser.*, source/cmt_commands.*, source/cmt_syntax.*, source/cmt.h: Add support for the show project author command
22    * src/setup.*: Add auto-expand for project_author
23 
[257]242006-09-28 Vincent Garonne <garonne@lal.in2p3.fr> 312
25
26        * source/cmt_symbol.cxx: Bug fixed on the windows platform. 
27
[228]282006-08-17 Vincent Garonne <garonne@lal.in2p3.fr> 311
29
30        * source/cmt_syntax.cxx: Add support for author syntax to project
31
[206]322006-06-15 Vincent Garonne <garonne@lal.in2p3.fr> 310
33
34        * source/cmt_system.cxx: Correct touch function to conserve permission
35
362006-06-15 Vincent Garonne <garonne@lal.in2p3.fr> 309
37
38        * mgr/fragments/application, mgr/fragments/c_library, mgr/fragments/cleanup_librarymgr/fragments/cpp, mgr/fragments/cpp_library, mgr/fragments/dependencies, mgr/fragments/fortran_library, mgr/fragments/library: Add the support for the PRINT_PREREQISITES mode during the make operation
39
40        * mgr/fragments/library: Fixed a bug
41
[201]422006-05-31 Vincent Garonne <garonne@lal.in2p3.fr> 308
43
44        * source/cmt_cvs: Add modification to deal with non working checkout by creating the cvs files manually ,e.g. cvs entries.
45        * source/cmt_cvs: Add the "-f" option which supposes to force cvs to ignore the .cvsrc file during cvs command execution.
46
[189]472006-05-20  Christian Arnault  <arnault@lal.in2p3.fr> 307
48
49        * source/cmt_pattern.cxx (expand): Make use of
50        use->get_cmtpath_and_offset to compute the project of the package
51        when expanding the <project> template to fix packages with offset
52
532006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 306
54
55        * cmt_generator.cxx: Add the fixe recommend by markus to deal with extern c data on visual
56
[184]572006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 305
58
59        * mgr/fragments/cleanup_header, mgr/fragments/constituent: Add a PEDANTIC option for building which stop
60        directly after detecting a missing file or target
61       
62        * mgr/fragments/constituent, mgr/fragments/constituents_header, mgr/fragments/cleanup_header,
63        mgr/fragments/make_header : correct some bad behaviours and change the internal file name convention
64        *setup* -> *_setup*
65
662006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 304
67
68        * source/cmt_parser.cxx: Remove only the specific makefiles depending on the platform, e.g. remove *.make
69        on linux and *.nmake on windows
70
712006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 303
72
73        * source/cmt_commands.cxx, source/cmt_commands.h, source/cmt_parser.cxx, source/cmt_parser.h: Add a new cmt         
74        command "relocate" to generate only setup script whithout makefile
75
76        * src/setup.tcsh : Enable the auto-expand mechanism for the relocate command
77
782006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 302
79
80        * source/cmt_cvs.cxx: Do the exact mathing for tag during recursive checkout operation
81
822006-04-24   Christian Arnault  <arnault@lal.in2p3.fr> 301
83
84        * source/cmt_pattern.cxx(expand): Add support for a <project> template in patterns
85
[157]862006-14-03   Christian Arnault  <arnault@lal.in2p3.fr> 300
87
88        * source/cmt_cvs.cxx: Switch checkout sequence from multi-co to multi update
89
[152]902006-03-01  Vincent Garonne <garonne@lal.in2p3.fr> 299
91
92        * mgr/requirements: Enable tag v1r18 for the HEAD version
93
[151]942006-02-24  Christian Arnault  <arnault@lal.in2p3.fr> 298
95
96        * mgr/requirements: Suppress automatic installation of share/bin & share/lib in CLASSPATH for with_installarea
97
98        * source/cmt_project.cxx (create_project): Suppress a warning message
99
100        * source/cmt_commands.cxx (do_check): Suppress automatic warnings for do_check_configuration
101        (do_setup): idem for cmt setup
102
[147]1032006-02-10  Vincent Garonne <garonne@lal.in2p3.fr> 297
104
105        * mgr/requirements: Fill <project>_installarea_linkopts in addition to cmt_installarea_linkopts
106
[145]1072006-02-09  Christian Arnault  <arnault@lal.in2p3.fr> 296
108
109        * mgr/requirements: Fill <project>_installarea_linkopts in addition to cmt_installarea_linkopts
110
[144]1112006-02-07  Christian Arnault  <arnault@lal.in2p3.fr> 295
112
113        * mgr/requirements: Protect cmtpath_patterns with strategies
114        use $(CMTCONFIG) instead of $(tag) in cmtpath_patterns
115
116        * source/cmt_parser.cxx (configure_cmt_path): Suppress warnings for bad paths at this stage
117        (do_check_configuration): Add set_standard_macros for do_check_configuration
118
119        * source/cmt_commands.cxx (do_check): Activate warnings for check configuration and for setup
120
121        * source/cmt_symbol.cxx (filter_path_value): Don't kill path item when they don't exist.
122        (action): Reset all_sets_done at each symbol definition.
123        (all_set): Protect against internal recursivity
124        (all_print): Print path settings here.
125        (check_all_paths): Add a new function to check all paths.
126        (SetBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
127        (PathBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
128        (MacroBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
129        (ActionBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
130        (SymbolValueList::show): Keep reset to null actions
131        Print overridings
132
133        * source/cmt_system.cxx: Add include cmt_map.h for putenv management
134        (class CMTPathManager): Suppress generation of an error when the CMTPATH item does not exist
135
1362006-02-06  Christian Arnault  <arnault@lal.in2p3.fr> 294
137
138        * source/cmt_cvs.cxx (class CvsImplementation): Uses the new CmtSystem::putenv API
139
140        * source/cmt_symbol.cxx (all_set): Uses the new CmtSystem::putenv API to fix setup problems
141
142        * source/cmt_system.h (class CmtSystem): Modifying the API of the internal putenv function
143
144        * source/cmt_system.cxx (putenv): Replacing the old putenv implementation with a new one using a static map
145        of all used environment variables so as to ensure a stable string
146
[143]1472006-01-31    <arnault@lal.in2p3.fr> 293
[140]148
[143]149        * source/cmt_parser.cxx (configure_cmt_path): Force a warning when CMTPATH contains a non existing item.
150
151        * source/cmt_awk.cxx (scan_path): Restore commented debug printouts after fix.
152
153        * source/cmt_parser.cxx (run): Fix the parsing of requirements file for do_show_clients for use statements without version.
154
155        * source/cmt_awk.cxx (scan_path): Detect the non-version-directory mode and launches the run with appropriate flag.
156
157        * source/cmt_awk.h (class PathScanner): Add an argument to mark that the scanned package
158        uses no version directory.
159
[140]160        * mgr/requirements: Removed obsolete pp_cflags for Linux (ticket #15)
161
[142]1622006-01-27 <garonne@lal.in2p3.fr>
163
164        * source/cmt_parser.cxx: Allow with_version_directory option for users.
165
[136]1662006-01-09    <arnault@lal.in2p3.fr> 292
167
168        * source/cmt_project.cxx (create_project): Access CMTPROJECTPATH through
169        symbol or getenv
170
171        * source/cmt_symbol.cxx (get_env_value): Make use of the global
172        display inhibitor to ensure that temporary value builder will not
173        show unexpected output.
174
175        * source/cmt_symbol.h (class Symbol): Define a special accessor function for
176        retrieving the value a symbols associated with an env. var. (typically
177        for CMTPATH like variables)
178
179        * source/cmt_symbol.cxx (action): Trigger the Cmt::configure_cmt_path
180        from CMTPROJECTPATH like CMTPATH
181
[114]1822005-10-31  Christian Arnault  <arnault@lal.in2p3.fr> 291
183
184        * source/cmt_system.cxx (is_version_directory): Permit version
185        directories not starting by a letter (eg 1.0)
186
[113]1872005-10-30    <arnault@lal.in2p3.fr> 290
188
189        * source/cmt_symbol.cxx (all_set): Must expand PATH values before
190        filtering and setting them
191
[108]1922005-10-28    <arnault@lal.in2p3.fr> 289
193
[113]194        * cmt/fragments/cleanup_header: Temporary hack to deal with missing files
[108]195        and to avoid infinite loops in make. However, this must be seen as a ugly hack
196        since it considers an Atlas use case with config.h.in. This hack is
197        harmless to any user of this special file though.
198
[113]199        * source/cmt.h
200        * source/cmt_parser.cxx
201        * source/cmt_commands.h
202        * source/cmt_commands.cxx
203        * doc/CMTDoc.xml: Add a -warnings option to display various warning messages
[108]204 
[102]2052005-10-18    <arnault@lal.in2p3.fr> 288
206
[103]207        * mgr/Makefile (bintar): Prepare and cleanup binary directories
208        before creating tar balls.
209
210        * mgr/Makefile (Export): Move the docs target from bintar to Export
211
[102]212        * source/cmt_symbol.cxx (print): Filter path values before
213        setting them externally
214
215        * source/cmt_symbol.cxx (all_set): Filter path values before
216        setting them internally
217
218        * source/cmt_parser.cxx (configure_cmt_path): Filter out CMTPATH
219        before creating or updating projects from the CMTPATH value
220
221        * source/cmt_symbol.h (class Symbol): Add a static function to
222        filter out faulty items in a PATH symbol
223
[101]2242005-10-17    <arnault@lal.in2p3.fr> 287
225
[102]226        * mgr/Makefile (cmtexe): Use -quiet option whenever using cmt
227        within the Makefile of CMT
228
229        * source/cmt_cvs.cxx (class CvsImplementation): Protect against
[101]230        empty protocol level (for backward compatibility)
231
[100]2322005-10-15    <arnault@lal.in2p3.fr> 286
233
234        * source/cmt_project.cxx (use_action): Consider empty release for
[101]235        Windows (test_directory on Windows does not work with a trailing
236        backslash)
[100]237
[97]2382005-10-11  Christian Arnault  <arnault@lal.in2p3.fr> 285
239
240        * source/cmt_project.cxx (create_project): Protection against
241        single level directories in CMTPATH (/xxx)
242
[96]2432005-10-11    <arnault@lal.in2p3.fr> 284
244
[98]245        * mgr/fragments/nmake/constituent (clean): Protect against
246        unexisting makefile fragment when running the clean target
247
248        * source/cmt_parser.cxx (class StandardMacroBuilder): Enclose
[96]249        items in the use_requirements macro into double quotes using the q
250        macro. This to cope with spaces in directories on Windows.
251        (dos_script_prefix): Add quotes for the -path argument
252
[98]253        * mgr/requirements: Add a macro definition to hold a double-quote
[96]254
2552005-09-13    <arnault@lal.in2p3.fr> 283
256
257        * mgr/CMT.pacman: Add constraint on version of pacman
258        Use ./INSTALL instead of just INSTALL
259
[95]2602005-09-29  Christian Arnault  <arnault@lal.in2p3.fr> 283
261
262        * mgr/fragments/nmake/constituents_trailer (makefilesclean): Remove references to checkuses
263        * mgr/fragments/constituents_header (config): Remove references to checkuses
264        * mgr/fragments/constituents_trailer (makefilesclean): Remove references to checkuses
265        * mgr/fragments/make_header (dirs): Remove references to checkuses
266        * mgr/fragments/make_setup (config): Remove references to checkuses
267
268        * source/cmt_parser.cxx (do_broadcast): bug fix: the set_standard_macro was not called
269        prior to set all EVs before the broadcast loop
270
[92]2712005-09-09    <arnault@lal.in2p3.fr> 282
272
273        * mgr/Makefile: Adapt (fix) to changes in the doc directory.
274
2752005-09-07    <arnault@lal.in2p3.fr> 281
276
277        * source/cmt_version.h: fix tag v1r18p20050901
278
279        * source/cmt_cvs.h: Fix bug when generating version.cmt file after checkout
280
[86]2812005-09-05    <arnault@lal.in2p3.fr> 280
282
283        * source/cmt_std.h: Fix std context for CYGWIN
284
[84]2852005-09-05  Christian Arnault  <arnault@lal.in2p3.fr> 279
286
287        * source/cmt_cvs.cxx (class CvsImplementation): Fix do_need_version
288
289        * source/cmt_project.cxx (StrategyMgr): Initialize VersionStrategy using default
290
[83]2912005-09-05    <arnault@lal.in2p3.fr> 278
292
293        * source\cmt_parser.cxx (do_create): Make use of the
294        structure strategy for creating package directory structure.
295
296        * source\cmt_cvs.cxx (class CvsImplementation): Make use of the
297        structure strategy for creating package directory structure.
298
299        * source\cmt_parser.cxx (do_show_strategies): Display the structure strategy
300
301        * source\cmt_syntax.cxx (class KwdStructureStrategy): Create the
302        parsing function for Structure strategies
303
304        * source\cmt_parser.h (enum CmtStructuringStyle): By default the
305        structuring style is initialized with default_structuring_style
306        instead of with_version_directory in order to remember whether the
307        default has been overridden using EV or command option.
308
309        * source\cmt_project.cxx (configure): Initialize the VersionDirectory strategy
310        (StrategyMgr): Create the VersionDirectory strategy entry.
311
312        * source\cmt_parser.h (enum): Add a StructureStrategy to define with/out version directory.
313
[82]3142005-09-05  Christian Arnault  <arnault@lal.in2p3.fr> 277
315
316        * mgr/cmt_buildcvsinfos2.sh (module): Adapt to the new syntax by adding the protocol level.
317
318        * source/cmt_include.cxx (action): Submit include_dirs statement to private scoping
319
[80]3202005-09-01  Christian Arnault  <arnault@lal.in2p3.fr> 276
321
[81]322        * source/cmt_use.cxx (get_strategy): Implement the get_strategy function
323
324        * source/cmt_use.h (class Use): Install the get_strategy function as a member function.
325
326        * source/cmt_symbol.cxx (all_set): Generate all XXXROOT and XXXCONFIG evs according
[80]327        to the strategies.
328
329        * source/cmt_parser.cxx (get_strategy): Make the use argument of the function a required argument
330        ie suppress the default arg to Use::current ()
331        Prepare to migrate this function as a member function of Use
332
[79]3332005-08-31  Christian Arnault  <arnault@lal.in2p3.fr> 275
334
[80]335        * source/cmt.h (class Cmt): Making the get_strategy function a member function
336        rather than a private local one
337
[79]338        * mgr/fragments/constituent (uninstall): Protect against missing un/install targets
339        * mgr/fragments/nmake/constituent (uninstall): Protect against missing un/install targets
340
341        * mgr/fragments/cmt_action_runner_header: Add install and uninstall dummy target
342        * mgr/fragments/nmake/cmt_action_runner_header: Add install and uninstall dummy target
343
344        * mgr/cmt_uninstall_action.bat: [Fix] typo
345
346        * source/cmt_project.cxx (create_project): When create a parent-less project, link it to
347        previous top project(s) and upgrade strategies
348        (class VisitorForFillCMTPATH): [Fix] Should not add the path separator
349
350        * source/cmt_project.h (class Project): Add a function to ask if a project has parents
351
352        * source/cmt_include.cxx (parse): When expanding include, the use must be trasmitted to new includes
353
3542005-08-30  Christian Arnault  <arnault@lal.in2p3.fr> 275
355
356        * source/cmt_parser.cxx (class StandardMacroBuilder): Parse all includes for Current use
357
358        * source/cmt_include.cxx: Do the parse_all operation in the context of one Use.
359
360        * source/cmt_include.h (class Include): Do the parse_all operation in the context of one Use.
361
362        * source/cmt_project.cxx (create): Return a boolean status to show success of the creation
363
364        * source/cmt_project.h (class Project): create function returns a boolean that
365        describes if the creation was successful. In case of success the current directory
366        is in the cmt directory of the project.
367
368        * source/cmt_system.cxx (scan_dir): Fix a bug
369
370        * source/cmt_deps_builder.cxx (build_deps_text): Fix state change when in single line comment
371
[78]3722005-08-19  Christian Arnault  <arnault@lal.in2p3.fr> 274
373
374        * source/cmt_use.cxx (fill_includes_macro): skip include_dirs entries with empty name
375
376        * source/cmt_project.cxx (show_all): Use the top project when current is not defined
377        (start_visit): idem
378        (class VisitorForFillCMTPATH): Initialize CMTPATH to empty when filling in CMTPATH for all projects
379
380        * source/cmt_cvs.cxx (class CvsImplementation): Add the get_module function to compute the CVS module
381        from the requested package/offset
382        (class CvsImplementation): Add a check_structure to verify various structures before doing the checkout
383        (class CvsImplementation): Ask for the checkout when the directory structure is in place but
384        when the CMT structure is NOT in place. Useful for mounting disks before the checkout.
385
386        * source/cmt_parser.cxx (class StandardMacroBuilder): Apply the post-processing of include_dirs statements.
387        (get_strategy): Get the top project to compute a strategy when the current project is not defined
388        in order to avoid losing all strategies for standalone packages.
389
390        * source/cmt_include.h (class Include): Suppress print_all and print_filters obsolete functions
391        * source/cmt_include.cxx: Suppress print_all and print_filters obsolete functions
392        (parse): Add a post-processing step to expand include_dirs statements at set_standard_macros stage
393
394        * source/cmt_deps_builder.cxx (build_deps_text): Fix and Change the way source files are parsed
395        for computing dependencies. Fill a cmt_string at once and traverse the string without any additional
396        copy.
397
3982005-07-21  Christian Arnault  <arnault@lal.in2p3.fr> 274
399
400        * source/cmt_symbol.cxx (build): Clean up unneeded path separators
401
4022005-07-19  Christian Arnault  <arnault@lal.in2p3.fr> 274
403
404        * source/cmt_symbol.cxx (build): Suppress old test in CommandPathRemoveRegexp
405
[50]4062005-05-09  Christian Arnault  <arnault@lal.in2p3.fr> 273
407
408        * source/cmt_use.cxx (fill_standard_macros): Fix a bug in setting
409        the project macros (missing CR)
410
[45]4112005-05-02  Christian Arnault  <arnault@lal.in2p3.fr> 272
412
[46]413        * source/cmt_version.h: Prepare v1r18p20050501
414
[45]415        * source/cmt_cvs.cxx: Adding CMTPATH internal management
416        Improve broadcast operation after recursive checkouts
417
4182005-05-01  Christian Arnault  <arnault@lal.in2p3.fr> 272
419
420        * mgr/Makefile (pacman): Create the pacman file for that version.
421
422        * mgr/CMT.pacman: Migrate to Pacman3
423
424        * source/cmt_cvs.cxx: Supporting project checkout
425        recursive project checkouts
426        without_version_directory mode
427        container statements in project files.
428        alias version directory
429        Various cleanup and restructuring operations
430
431        * mgr/requirements: Adapt for shared libs on CYGWIN (thanks to Guy Barrand)
432
433        * src/setup.zsh: Add cmt subprojects command
434
435        * src/setup.tcsh: Add cmt subprojects command
436
[43]4372005-04-26  Christian Arnault  <arnault@lal.in2p3.fr> 271
438
439        * source/cmt_cvs.cxx: Add recursive passes for cvs co -R on projects (not completed)
440        Add support/checking of protocol level against CVS pluggin
441        Detection of non-installation of the CVS pluggin
442
443        * mgr/requirements: Add a macro cmt_cvs_protocol_level to specify
444        the expected protocol level with the CVS pluggin
445
[42]4462005-04-25    <arnault@lal.in2p3.fr> 270
447
448        * source/cmt_cvs.cxx (class CvsImplementation): Accept empty
449        argument for queries on subprojects
450
451        * source/cmt_cvs.cxx (class CvsImplementation): Accept empty
452        argument for queries on subpackages
453
454        * source/cmt_cvs.cxx (class CvsImplementation): Selection for
455        getting the mudule contents is done using the structure
456        information.
457
458        * source/cmt_cvs.cxx (class CvsImplementation): Isolate specific
459        behaviour into dedicated functions for getting the specific
460        contents for packages or for projects.
461
462        * source/cmt_cvs.cxx (class CvsImplementation): Retrieve fields
463        for structure and subprojects from the CVS pluggin.
464
465        * source/cmt_cvs.cxx (class CvsImplementation): Manage the
466        protocol level related with the version of the CVS pluggin.
467
468        * source/cmt_cvs.cxx (class CvsImplementation): Suppress all dots
469        from the tmpdir due to problems on Windows
470
471        * source/cmt_cvs.cxx (class CvsImplementation): Add support for
472        struture_info and subprojects coming from the new CVS pluggin
473
474        * source/cmt_parser.cxx (do_cvssubprojects): Handle the
475        cvssubprojects command
476        (parser): Commands related with CVS should at least read the
477        requirements file of CMT
478
479        * source/cmt_parser.h (enum): Add cvssubprojects action
480
481        * source/cmt_commands.cxx (CommandHelp): Add help for
482        cvssubprojects command
483
484        * source/cmt_commands.cxx (do_cvssubprojects): Accept empty
485        argument to query for subprojects at top of the repository
486
487        * source/cmt_commands.cxx (do_cvssubpackages): Accept empty
488        argument to query for subpackages at top of the repository
489
490        * source/cmt_commands.cxx (ArgParser): Manage cvssubprojects command.
491
492        * source/cmt_commands.h (class ArgParser): Add cvssubprojects command
493
494        * source/cmt_use.cxx (fill_standard_macros): Production of a new
495        standard macro for obtaining the project releases
496
497        * source/cmt_cvs.h (class Cvs): Add the subprojects function to
498        query CVS about the existing subprojects of a given module.
499
[41]5002005-04-23  Christian Arnault  <arnault@lal.in2p3.fr> 269
501
502        * source/cmt_project.h (class Project): container and
503        container_version access methods
504
505        * source/cmt_project.cxx (container_action): Implementation of the
506        container statement
507
508        * source/cmt_project.h (class Project): Add handling of the container statement
509
510        * source/cmt_syntax.cxx (class KwdContainer): Add support of the
511        project container package
512        (SyntaxParser): idem
513
[39]5142005-04-21  Christian Arnault  <arnault@lal.in2p3.fr> 268
515
516        * source/cmt_project.cxx (create_project): Check pwd for finding
517        projects.
518
519        * source/cmt_symbol.cxx (find_path_entry): Look for existing PATH
520        entries by comparing the real path rather than the logical
[40]521        path. Use pwd everywhere (or CmtSystem::compress_path when the
522        path is not exactly found)
523       
[39]524
[38]5252005-04-14  Christian Arnault  <arnault@lal.in2p3.fr> 267
526
527        * source/cmt_system.cxx (class CMTPathManager): CMTUSERCONTEXT and
[46]528        CMTHOME environments give a specific name to the associated
[38]529        project.
530
531        * source/cmt_project.cxx (create_project): Fixing the project
532        naming scheme. Project name specified in the project files take
533        precedence over the names found in the path.
534
[37]5352005-04-13  Christian Arnault  <arnault@lal.in2p3.fr> 266
536
537        * source/cmt_commands.cxx (do_cvstags, do_cvssubpackages): Fix arg counting.
538
[36]5392005-04-12  Christian Arnault  <arnault@lal.in2p3.fr> 265
540
541        * source/cmt_project.cxx (create_project): Restructure the
[46]542        algorithm for detection of project structuring cases. Construct a
[36]543        finite list of cases.
544        (has_parent): Implement recursive query function
545        (has_child): Implement recursive query function
546        (add_parent, add_child): Use the recursive detection to avoid cycles.
547
548        * source/cmt_project.h (class Project): Add has_parent and
549        has_child functions to protect against recursive cycles
550
[33]5512005-04-02  Christian Arnault  <arnault@lal.in2p3.fr> 264
552
553        * source/cmt_version.h (CMTVERSION): Prepare for v1r18p20050401
554
555        * mgr/requirements: use ln -fs for cmt_installarea_command
556
[24]5572005-03-31  Christian Arnault  <arnault@lal.in2p3.fr> 263
[23]558
[32]559        * doc/ReleaseNotes: prepare release notes
[24]560       
561        * source/cmt_project.cxx (create_project): Fix settings of the project name.
562
[23]5632005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 262
564
565        * mgr/NMake (demo): Adapt to the new syntax of cmt create_project
566
567        * source/cmt_project.cxx (create_project): Suppress several warnings
568
[22]5692005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 261
[21]570
571        * doc/table.html: Install link to the Trac bug reporting system. 
572
[19]5732005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 261
[18]574
[22]575        * source/cmt_project.cxx (create): The create function now creates
576        the complete directory hierarchy for the project including the
577        release level(s). Can accept a path.
578        (create_project): Don't assume a release level.
579
[32]580        * source/cmt_project.h (class Project): The create function now
581        accepts a release and a path argument
[22]582
583        * source/cmt_commands.cxx (show): Suppress debug printouts
584        * source/cmt_parser.cxx (do_help): Suppress debug printouts
585
[19]586        * source/cmt_system.cxx (is_version_directory): Accept HEAD/head as a valid version directory.
587
[18]5882005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 260
589
590        * doc/CMTDoc.xml: work on the doc (unfinished)
591
592        * source/cmt_project.cxx (use_action): The name specification of a
593        project use statement is used to create the project.
594 
595        * source/cmt_project.cxx (create_project): Implement the algo to
596        construct or discover the real project name and release from the
597        context. The new algo supports release specifications as a
598        multi-level directory definition.
599
600        * source/cmt_project.cxx (get_release_from_path): Function to
601        retreive the release sub-string from a path, given the project
602        name.
603
604        * source/cmt_project.h (class ProjectFactory): Add the project
605        name as first argument to the create_project function.
606
607        * source/cmt_system.cxx (class CMTPathManager): when specified
608        from a CMTPATH item, the project creation has to guess the project
609        name.
610
611        * mgr/Makefile (gendoc): Suppress the | output modifier
612
[17]6132005-03-16  Christian Arnault  <arnault@lal.in2p3.fr> 259
614
615        * mgr/fragments/dependencies: We need to reconsider all sources to
616        recompute all dependencies that may have changed due to
617        configuration changes. Thus the -all_sources is added
618
[16]6192005-03-15  Christian Arnault  <arnault@lal.in2p3.fr> 258
620
621        * source/cmt_parser.cxx (clear): Add m_autoconfigure_cmtpath
622        variable to discard autoconfiguration of CMTPATH during initial
623        phases of the configuration.
624       
625        (guess_current_project): Once the current project is known, the
626        CMTPATH is re-generated from the effective knowledge of the
627        project graph.
628
629        (do_setup): Add a check of the configuration when doing cmt setup
630
631        (do_check_configuration): analyze the tags coming from arguments
632        or from CMTSITE to detect mistypings. This is done by checking the
633        effective usage of those tags.
634
635        (configure_cmt_path): Analyze CMTPATH from either the symbol value
636        or from the EV, before asking the project factory to create the
637        projects from it.
638
639        (get_strategy): Add a generic local function to query the strategy elements.
640
641        * source/cmt_project.cxx (add): Manage conflicts between project
642        release requests on a strict basis (no wild card - exact match
643        only)
644
645        * source/cmt_project.h (class ProjectFactory): No longer need m_first and m_previous
646
647        * source/cmt_project.cxx (create_project): Implement a graph of projects.
648        (create_project): Interpret the first top level directory as the project release
649       
650        (create_project): Interpret the second top level directory as the
651        project name when it's not defined in the project file. So we
652        don't create a dummy project name anymore Project<n>.
653
654        * source/cmt_commands.cxx (ArgParser): Suppress obsolete +path option
655        (parse): Initialize the m_action value to none to fix a bad management of unknown commands
656        (do_filter): Implement the cmt filter command
657
[32]658        * source/cmt_error.cxx (class Error): Add unknown_command and
659        project_release_conflict errors
[16]660
[32]661        * source/cmt_syntax.cxx (class KwdBuildStrategy): Apply the
662        restructuration of strategy management to strategy decoding
663
[16]664        (class KwdSetupStrategy): idem
665        (class KwdUse): Support the use statement for project files
666        (SyntaxParser): Support the use statement for project files
667
[32]668        * source/cmt_project.h (class StrategyDef): Create a class to hold
669        the definition of all strategy elements
[16]670        (class Strategy): Create a class to hold the application of a strategy into a project
671        (class StrategyMgr): Create a singleton to manage the strategy definitions
672        (class ProjectFactory): Add parent argument to create_project to handle the project graph
673        (class IProjectVisitor): Create a class to visit the project graph
[32]674        (class Project): Transport all definitions related with strategies into Strategy objects
[16]675
676        * source/cmt_system.cxx (class CMTPathManager): Add a class to
677        interact with the ProjectFactory to convert CMTPATH specifications
678        into projects
679
680        (get_cmt_paths): Suppress the setting from $CMTPATH. This is
681        replaced by a selective understanding of the source of CMTPATH
682        either from the symbol (when defined in a requirements file) or
683        from the EV. This selection is performed in
684        Cmt::configure_cmt_path.
685
686        (get_cmt_paths): Suppress the definition of a CMTPATH entry for CMT itself
687
[15]6882005-03-10    <arnault@lal.in2p3.fr> 257
689
690        * mgr/NMake (demo): Add project file to the demo context.
691
[9]6922005-03-04  Christian Arnault  <arnault@lal.in2p3.fr> 256
693
694        * source/cmt_project.cxx: Ongoing work for redefining Project graphs.
695
[8]6962005-03-03  Christian Arnault  <arnault@lal.in2p3.fr> 255
697
698        * source/cmt_project.cxx (add): Manage project release conflicts.
699
700        * source/cmt_error.h (class CmtError): Add project_release_conflict error
701        * source/cmt_error.cxx (class Error): Add project_release_conflict error
702
[32]703        * source/cmt_project.h (class Project): Introduce the management
704        of release information in projects
[8]705
706        * source/cmt_parser.cxx (do_check_configuration): Finally suppress the checking of CMTCONFIG
707        (do_setup): Add do_check_configuration to check some tag settings.
708
[5]7092005-03-02  Christian Arnault  <arnault@lal.in2p3.fr> 254
[3]710
711        * source/cmt_symbol.h (class Symbol): Add an optional argument to build_macro_value to switch display mode
712
713        * source/cmt_symbol.cxx (show_macro): Improve the display mode so as to display only once the macro construction steps
714
715        * source/cmt_parser.cxx (guess_current_project): Regenerate CMTPATH from the effective set of subprojects.
716
717        * source/cmt_commands.cxx (parse): Handle unexpected arguments
718
719        * source/cmt_error.cxx (class Error): Added unknown_command error
720        * source/cmt_error.h (class CmtError): Added unknown_command error
721
722        * source/cmt_commands.cxx (do_filter): Missing implementation for the filter command
723
[5]7242005-03-01  Christian Arnault  <arnault@lal.in2p3.fr> 254
[3]725
726        * source/cmt_tag.cxx (use_operand): Add way of checking internal structure of a tag
727        * source/cmt_tag.cxx (use_ref): Add way of checking internal structure of a tag
728        * source/cmt_tag.h (class Tag): Add way of checking internal structure of a tag
729        * source/cmt_symbol.h (class Symbol): Add way of checking if a tag is used by symbols.
730        * source/cmt_symbol.cxx (print): Suppress the "export" action after defining an alias in Sh mode
731        * source/cmt_project.cxx: Introduce use_action
732        * source/cmt_syntax.cxx (SyntaxParser): Add support to use statements in project files
733        * source/cmt_project.cxx (create_project): Add comments
734
[5]7352005-02-14  Christian Arnault  <arnault@lal.in2p3.fr> 253
736
737        * src/Makefile.header (common_target): mktemp refuses to create
738        subdirectory when TMPDIR specifies something different than /tmp
739        that does not exist yet.
740
7412005-02-07  Christian Arnault  <arnault@lal.in2p3.fr> 252
742
[32]743        * source/cmt_system.cxx (scan_dir): Fix a bug that killed the cmt
744        show packages command in some cases
[5]745
7462005-02-03    <arnault@lal.in2p3.fr> 251
747
748        * source/cmt_commands.cxx (do_cvstags): fix arg counting
749        * source/cmt_commands.cxx (do_cvssubpackages): fix arg counting
750
[3]7512004-12-14    <arnault@lal.in2p3.fr> 250
752
753        * source/cmt_parser.cxx (class StandardMacroBuilder): Fix a bug
754        that caused a premature exit from the scan of constituents.
755
7562004-12-13    <arnault@lal.in2p3.fr> 249
757
758        * source/cmt_constituent.cxx (parse): Add a specific behaviour for
759        documents generated for actions so as to keep the action_value
760        definition unparsed.
761
7622004-12-03 <arnault@lal.in2p3.fr> 248
763
764        * mgr/fragments/nmake/library: apply patches from Pere about installing pdb files for Debug mode
765
7662004-12-01    <arnault@lal.in2p3.fr> 247
767
[16]768        * source/cmt_version.h (CMTVERSION): Prepare for tagging v1r18p20041201
[3]769
770        * source/cmt.h (class Cmt): Fix typo
771
7722004-12-01  Christian Arnault  <arnault@lal.in2p3.fr> 246
773
774        * mgr/cmt_uninstall_action.sh: Better management of directory removal
775
7762004-12-01  Christian Arnault  <arnault@lal.in2p3.fr> 246
777
778        * mgr/fragments/application (install):
779        * mgr/fragments/library (install):
780        * mgr/fragments/library_no_share (install):
781        * mgr/fragments/install_includes_header (install):
782        * mgr/fragments/jar (install):
783        * mgr/fragments/java_header (install): Remove the connection
784        between uninstall and clean targets. So now when gmake clean is
785        run no uinstallation occurs in the installation area.
786
7872004-11-11    <arnault@lal.in2p3.fr> 245
788
789        * source/cmt_parser.h:
790        * source/cmt_project.cxx:
791        * source/cmt_project.h:
792        * source/cmt_syntax.cxx:
793        * source/cmt_parser.cxx:
794        * doc/CMTDoc.xml: Suppress obsolete (and useless) makefile strategy
795
796        * source/cmt_parser.cxx (print_context): the setup strategy is
797        really used to generate the ROOT and CONFIG env. vars.
798
799        * source/cmt_parser.cxx (get_setup_strategy): Get the setup
800        strategy for each use so as to really build ROOT or CONFIG
801        according to the real project of the use
802
8032004-11-09    <arnault@lal.in2p3.fr> 244
804
805        * source/cmt_version.h: Preparing version tag for v1r18
806       
807        * mgr/requirements:
808        * source/cmt_parser.h:
809        * source/cmt_projects.cxx: Change default build strategy to without_installarea
810
8112004-11-08    <arnault@lal.in2p3.fr> 243
812
813        * mgr/Makefile (docs): Do some cleanup
814
815        * source/cmt_parser.cxx (do_build_library_links): make use of the
816        new library_install_command macro
817
818        * mgr/requirements: Create a new macro library_install_command for
819        defining how to actually install libraries through the
820        <package>_libraries macro.
821
8222004-11-02  Christian Arnault  <arnault@lal.in2p3.fr> 242
823
824        * source/cmt_commands.cxx (option_tag): When resetting tags one
825        need to also call again guess_current_project
826       
827        (option_tag): In fact on can simply reset all active tags, and
828        regenerate activations rather than clearing all tags.
829
830        * source/cmt_parser.cxx (guess_current_project): Fix a typo
831
832        * source/cmt_tag.cxx (get_default): Make the tag Default a static
833        object to avoid killing it.
834
835
8362004-11-01    <arnault@lal.in2p3.fr> 241
837
838        * source/cmt_parser.cxx (guess_current_project): Implement the
839        detection of the current project
840
841        * source/cmt_parser.cxx (configure): Add the detection of the
842        current project through a project file above the current directory
843
8442004-10-30  Christian Arnault  <arnault@lal.in2p3.fr> 240
845
846        * source/cmt_parser.cxx (class StandardMacroBuilder): Apply the
847        cmtpath_patterns before setting up the installarea parameters so
848        as to let the patterns really define the
849        <project>_installarea_prefix for instance.
850       
851        (set_standard_macros): Remove this first setting of installarea
852        because it's better done only once.
853
854        * mgr/fragments/constituent: Remove a debug message
855
856        * mgr/requirements: Prepare for new tag v1r18
857
858        * mgr/cmt_uninstall_action.sh:
859        * mgr/cmt_install_action.sh: Late fixes
860
8612004-10-29    <arnault@lal.in2p3.fr> 239
862
863        * source/cmt_parser.cxx (set_standard_macros): Restructure the
864        StandardMacroBuilder to provide all steps.  Move upward the
865        fill_for_install_area to make all cmtpath_patterns applied before
866        manging other macros. This caused the include_dirs installed in a
867        cmtpath_pattern useless.
868
869        * source/cmt_list.h (class cmt_list): few fixes for CYGWIN
870
871        * mgr/requirements: CYGWIN tag implies Linux
872
873        * mgr/fragments/install_includes_header (uninstall):
874        * mgr/fragments/java_header (install):
875        * mgr/fragments/jar (install):
876        * mgr/fragments/library_no_share (install):
877        * mgr/fragments/library (install):
878        * mgr/fragments/application (install):
879        * mgr/cmt_install_action.sh:
880        * mgr/cmt_uninstall_action.sh: Improve the argument passing scheme
881        to make it more flexible. Add an argument to get cmtpath, to check
882        it against pwd. However this should never occur since cmt itself
883        is supposed to never generate CMTNSTALLAREA when this is not
884        appropriate.
885
886        * source/cmt_install_area.cxx (setup_current_installarea): Consider <project>_installarea_prefix
887
888        * source/cmt_system.cxx (compress_path): Fix a bug: when detecting
889        the aaa/bbb/../ccc pattern, "bbb" cannot be ".." nor "." nor
890        contain a macro reference.
891
8922004-10-25    <arnault@lal.in2p3.fr> 238
893
894        * source/cmt_parser.cxx (do_run): Force the settings of EVs
895        before launching the run action
896
897        * source/cmt_parser.cxx (do_broadcast): Force the settings of EVs
898        before launching the bro action
899
900        * source/cmt_commands.cxx (do_run): The run command now transmits all arguments
901
902        * source/cmt_list.h: Prepare a list class for future use. This be
903        used to handle the constituent order mechanisms.
904
905        * mgr/Makefile:
906        * mgr/NMake (post_build): Add a post_build step to re-generate the
907        cmt_dependencies.[n]make file (one version in mgr without the
908        stamps and one version in $(bin) with them)
909       
910        * source/cmt_generators.h (class DependencyGenerator):
911        * source/cmt_generators.cxx (build): Add an option -no_stamps to
912        buid dependencies so as to generate a version of the dependency
913        files without the extra stamps specifications and with no stamp
914        file generation. This is need to generate the bootstrap dependency
915        file for cmt itself.
916
917        * source/cmt_generators.cxx:
918        * source/cmt_generators.h (class DependencyGenerator):
919        * source/cmt_generator.h (class CmtGenerator): Revisit the construction of dependencies files:
920        The dependencies file is split as one file fragment per dependency line (ie per file)
921        This dep fragment is installed into $(bin)/<constituent>/*.stamp
922        a dep to this stamp file is installed in the dependency line
923        the stamps file is only touched when it changes
924        All this to ensure that recompilations are done when anythin in th configuration is changed
925
926        * source/cmt_map.h (cmt_vmap): Introduce cmt_vmap to construct
927        maps of objects by value
928
929        * source/cmt.h (class Cmt): Restart of set settings can be
930        manually triggered. Typically to ensure that they are really set
931        just before launching an action
932
933        * mgr/cmt_make_shlib_common.sh (temp_shlib): Suppress the
934        automatic construction of bundles on Darwin
935
936        * source/cmt_system.cxx (add_cmt_path): Adding protections of
937        validity of CMTPATH entries
938
939        * source/cmt.h:
940        * source/cmt_parser.h:
941        * source/cmt_parser.cxx:
942        * source/cmt_command.h:
943        * source/cmt_command.cxx: Introducing classes for command line parsing
944        All decoding of the cmt command line arguments are transfered there.
945        The decoding is also rationalized.
946        actions can be seen as cmt command extensions
947        better preparing of EVs before running actions
948        prepare the Makefile default file before running actions
949        improve the generic management of options
950        * cmt.h: Introduction of the CmtContext class to hold global state variables
951        for Cmt. The Cmt class now only contains static functions.
952
953        * src/source: Major restructuring of the directories:
954        All real sources of cmt now go to ../source
955        ../src only contains stuff that need to be exported
956        ../fragments is transfered to mgr/fragments.
957
958        * doc/gendoc.py (Book.book_start): Produce the revision date of the documentation
959        Install the real version tag in the doc.
960
961        * doc/CMTDoc.xml: Improving the doc
962
9632004-10-17    <arnault@lal.in2p3.fr> 238
964
965        * mgr/cmt_make_shlib_common.sh: Suppress the systematic creation
966        of a bundle in Darwin context
967
9682004-09-28    <arnault@lal.in2p3.fr> 237
969
970        * src/cmt_system.cxx (compress_path): The algorithm must ignore
971        the following pattern: xxxx/$(mmm)/../yyyy which cannot be reduced
972        to xxxx/yyyy. In fact it nows expands the path when macros are in it
973
9742004-09-27    <arnault@lal.in2p3.fr> 237
975
976        * src/NMakefile.header (check_config): Ensure that configuration
977        checking is performed first.
978
979        * src/Makefile.header (check_config): Ensure that configuration
980        checking is performed first.
981
982        * src/cmt_use.cxx (need_new): Only display the incompatible case.
983
984        * src/cmt_use.cxx (reach_package): IncompatibleMajorIds is no
985        longer considered. Id comparison is no longer rejected in any
986        case.
987
988        * src/cmt_use.cxx (compare_versions): Really compare major ids. No
989        longer produce IncompatibleMajorIds
990
991        * src/cmt_use.cxx (enum): Add cases to completely analyze the major ids
992
993        * src/cmt_use.cxx (operate):
994
995        * src/cmt_system.cxx (get_cmt_paths): Suppress the systematic
996        addition of $CMTROOT in CMTPATH items!
997
998        * src/cmt_awk.cxx (scan_path): really stop the too deep recursion
999
10002004-09-01    <arnault@lal.in2p3.fr> 236
1001
1002        * src/cmt_version.h (CMTVERSION): v1r16p20040901
1003
1004        * doc/ReleaseNotes.html: Prepare next tagging
1005
1006        * mgr/Makefile: Adapt for the new CMTBIN convention
1007
1008        * src/cmt_model.cxx (filter): Substitute <cmt:null/> only just
1009        before printing for empty vector elements
1010
10112004-08-31    <arnault@lal.in2p3.fr> 235
1012
1013        * doc/CMTDoc.xml: Improve the doc.
1014
1015        * src/cmt_model.cxx (strict_expand): Support parameter values enclosed in simple quotes
1016        Only display endl at the very end or recursion.
1017
1018        * src/cmt_project.cxx (configure): Fix typo in tag excludes
1019
10202004-08-30  Christian Arnault  <arnault@lal.in2p3.fr> 234
1021
1022        * mgr/requirements: Keep 3 digits for the compiler version
1023        * mgr/Makefile: augment support for SLC3 machines
1024        * mgr/cmt_linux_version.sh: idem
1025
10262004-08-30    <arnault@lal.in2p3.fr> 233
1027
1028        * doc/CMTDoc.xml:
1029        * doc/table.html: Install the reference to CeCILL licences
1030        * doc/download.html:
1031        * doc/intro.html:
1032        * doc/copyright.html:
1033
1034        * fragments/dependencies: Trigger the reconstruction of dependency
1035        file when the setup changes.
1036
1037        * fragments/constituents_header (first): Do not ovverride
1038        <package>_setup.make when identical. This permits its use as a
1039        real stamp file to trigger reconstruction of dependency files.
1040
1041        * mgr/Makefile (cpp): Take into account the new convention for
1042        CMTBIN (suffixed with `uname -m`)
1043
1044        * mgr/cmt_system.sh: improve the default value of CMTCONFIG on Cygwin
1045
1046        * mgr/requirements: Improve the cleaning and setting of PATH
1047        vaiables WRT installation area strategy
1048
1049        * src/cmt_parser.cxx (dos_script_prefix): Standalone packages
1050        don't need ..\.. in the -path option of DOS setup scripts
1051
1052        * src/setup.sh (CMTBIN): Suffix CMTBIN with `uname -m` on Unix machines
1053        * src/setup.csh: idem
1054
10552004-08-26    <arnault@lal.in2p3.fr> 232
1056
1057        * src/setup.bat: Suppress the rem--- lines
1058        * src/demo/demoA/init.bat: Suppress the rem--- lines
1059        * src/demo/demoB/init.bat: Suppress the rem--- lines
1060
10612004-08-25  Christian Arnault  <arnault@lal.in2p3.fr> 231
1062
1063        * src/setup.tcsh: Fix typo
1064
1065        * src/cmt_license.sh: Add template file to include in a various sources (commented by hash signs)
1066        * src/cmt_license.h: Add template file to include in a C++ source
1067
1068        * src/cmt_parser.cxx (do_expand_model): Add a -test internal
1069        option to the expand model command to test regular expressions.
1070
1071        * src/cmt_regexp.cxx (match): a or_node matches the longest
1072         matching alternate patterns, instead of the first one.
1073
1074        * src/cmt_system.cxx (split): Detect \" and \' patterns and ignore
1075        them as word separators. So a text containing "a b c" d e \"x\" will result in 4 fields
1076        a b c
1077        d
1078        e
1079        \"x\"
1080
1081        * src/cmt_model.cxx (strict_expand): Implement the strict model
1082        expansion. The new syntax for definning model is:
1083
1084        <cmts:name att="value" ... />         for a single expansion
1085        <cmtv:name att="v1 v2 v3 ..." ... />  for a multiple expansion
1086
1087        The element <cmt:null/> may be used in a vector value to specify an empty value.
1088
1089        name is the name of a declared make_fragment as usual.
1090       
1091
10922004-08-23  Christian Arnault  <arnault@lal.in2p3.fr> 230
1093
1094        * src/cmt_regexp.h (class cmt_regexp): Adding comparison operator
1095        and extraction operator to regexp::iterator
1096
1097        * src/cmt_parser.cxx (do_expand_model): Parse the -strict option
1098
1099        * src/cmt_model.h (class CmtModel): Start designing the support
1100        for stricter model expansion (to support model files in XML)
1101
1102        * src/cmt_license.txt: First introduction of the license text (obtained from CeCILL)
1103
1104        * src/Makefile.header (all): Evaluate the result of the cmt check
1105        configuration and stop Make if it terminates in error.
1106
1107        * src/cmt_generators.cxx (analyze_file): Evaluate if the file
1108        exists. Only generate its SourceFile if it exists or can be built
1109        (build): Accumulate the file names only if they can be built.
1110
1111        * src/cmt_generators.h (class DocumentGenerator): Make
1112        analyze_file return if the file is not found.
1113        (class LibraryGenerator): idem
1114
1115        * src/cmt_parser.cxx (parser): Make the configure_error a fatal error.
1116
1117        * src/Makefile.header (common_target): Improve the tmpdir mechanisms. Support ${TMPDIR}
1118
1119        * src/cmt_parser.cxx (dos_script_prefix): Suppress the -quiet
1120        option in the setup scripts now that errors are sent to stderr
1121        instead of stdout.
1122
1123        * src/cmt_constituent.cxx (class constituents_action_iterator): Use cerr instead of cout
1124
1125        * src/cmt_fragment.cxx (copy): Use cerr instead of cout
1126
1127        * src/cmt_generators.cxx (java_file_action, build, build): Use cerr instead of cout
1128
1129        * src/cmt_parser.cxx (do_awk): typo
1130        (do_filter, parse_arguments, parser): Use cerr instead of cout
1131
1132        * src/cmt_use.cxx (install_library, get_all_clients, operate): Use cerr instead of cout
1133
1134        * src/cmt_system.cxx (remove_file, remove_directory): Use cerr instead of cout
1135
1136        * src/cmt_tag.cxx (action_apply): Use cerr instead of cout
1137
1138        * src/cmt_symbol.cxx (create, build): Use cerr instead of cout
1139
1140        * src/cmt_pattern.cxx (action): Use cerr instead of cout
1141
1142        * src/cmt_syntax.cxx: general substitution of cout to cerr
1143
1144        * src/cmt_error.cxx (get_error_name): format text only
1145        (print): Use cerr instead of cout
1146
1147        * src/cmt_lock.cxx (check): format text only
1148
11492004-08-20  Christian Arnault  <arnault@lal.in2p3.fr> 229
1150
1151        * mgr/requirements: Protect the cmt_installare_linkopts against
1152        ambiguous tag settings
1153
1154        * src/cmt_awk.cxx (scan_path): First compress the path before
1155        calling the actual recursive scanner
1156        (scan_path): Completely revisit the scan algorithm to better
1157        account for directory structures and version.cmt files and package
1158        statements.
1159
1160        * src/cmt_project.cxx (create_project): The project file parsing
1161        must occur after setting the project chain. This caused wrong tag
1162        propagation across the Project chain.
1163
11642004-08-04  Christian Arnault  <arnault@lal.in2p3.fr> 228
1165
1166        * src/cmt_parser.cxx (do_create): use only compressed paths
1167        (do_remove): idem
1168
1169        * src/cmt_use.cxx (get_cmtpath_and_offset): Need to compress the cmtpath to suppress .. patterns
1170
1171        * src/cmt_system.cxx (compress_path): Compress the pattern /xxx/.. or xxx/.. instead of xxx/../
1172
11732004-07-01    <arnault@lal.in2p3.fr> 227
1174
1175        * src/cmt_version.h: Prepare tagging v1r16p20040701
1176
1177        * src\cmt_parser.h: idem
1178
1179        * src\cmt.h (class Cmt): Suppress version strategy
1180
1181        * src\cmt_parser.cxx (do_show_strategies): Suppress version strategy
1182
11832004-06-30    <arnault@lal.in2p3.fr> 226
1184
1185        * src\cmt_version.h (CMTVERSION): Prepare tagging v1r16p20040630
1186
1187        * src/cmt_generator.cxx (class WinDefAwk): Better generation of .def files for DATA
1188
11892004-06-24    <arnault@lal.in2p3.fr> 225
1190
1191        * src/cmt_use.cxx (need_new): fix a bug that impacted on the order of
1192        compatible use requests with different specifications.
1193
1194        * src\cmt_symbol.cxx (build): Add a debug print
1195        (SymbolValueList::show): only display actions with a non empty value
1196
1197        * src\cmt_use.cxx (add): improve the debug statements (no change to algo)
1198
1199        * mgr\requirements: Improve the removal operations for Windows in the cmtpath_patterns
1200
12012004-06-12    <arnault@lal.in2p3.fr> 225
1202
1203        * src\cmt_parser.cxx (need_prototypes): Fix access to prototype mask of build strategy
1204
12052004-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 224
1206
1207        * Tagging v1r16p20040527
1208
1209        * src/demo/demo1.cmt: Add a test for -target_tag option
1210
1211        * src/cmt_parser.cxx (do_build_library_links): Transfered the code
1212        to install a lib symlink into cmt_use.cxx
1213
1214        * src/cmt_use.cxx (same_dirs): Add a local helper function to
1215        check if two directory specifications point to the same location
1216        (install_library): Common local function to really create a
1217        symlink to a file either into ../$(tag) or into $(CMTINSTALLAREA)/$(tag)/lib
1218        (build_library_links): Build all the library links for a Use.
1219
1220        * src/cmt_use.h (class Use): Add a function to build the library links (the code is
1221        extracted from Cmt::do_build_library_links () )
1222
12232004-05-27    <arnault@lal.in2p3.fr> 223
1224
1225        * src\cmt_version.h (CMTVERSION): Prepare for real tagging v1r16p20040527
1226        * doc\download.html: idem
1227
1228        * doc\CMTDoc.xml: Update the doc for the new -target_tag option
1229
1230        * src\cmt_constituent.cxx (add_for_action): Actions always have a target tag.
1231
1232        * src\demo\demoA\requirements: Add a -target_tag option to demoA target to test this feature.
1233
1234        * fragments\constituent: Construct or not a local tag makefile according to has_target_tag
1235        * fragments\nmake\constituent: id
1236        * fragments\make_header: id
1237        * fragments\nmake\make_header: id
1238
1239        * src\cmt_generators.cxx (LibraryGenerator::build):
1240        (DocumentGenerator::build): Transmit m_HASTARGETTAG
1241
1242        * src\cmt_generator.cxx (reset): Initialize the new m_HASTARGETTAG variable.
1243
1244        * src\cmt_generator.h (class CmtGenerator): Add a m_HASTARGETTAG
1245        Variable to propagate the target_tag ability of the constituents
1246
1247        * src\cmt_constituent.cxx (show): Display the -target_tag option
1248        (class constituents_action_iterator): Parse the -target_tag option
1249
1250        * src\cmt_constituent.h (class Constituent): Add support for the
1251        new -target_tag option, to control the per-constituent generation
1252        of the target tag. So add a field has_target_tag
1253       
1254
12552004-05-25  Christian Arnault  <arnault@lal.in2p3.fr> 222
1256
1257        * mgr/requirements: Use $(tag) instead of ${CMTCONFIG} in all cmtpath_pattern s
1258
1259        * src/NMakefile.header (tags): idem
1260        * src/Makefile.header (tags): idem
1261        * fragments/nmake/make_header: idem
1262        * fragments/nmake/constituents_header (tags): idem
1263        * fragments/make_header (tags): idem
1264        * fragments/constituents_header (tags): prefix the tags macro with $(tag)
1265
12662004-05-25    <arnault@lal.in2p3.fr> 221
1267
1268        * src\cmt_version.h (CMTVERSION): Prepare for tagging v1r16p20040525
1269
1270        * mgr\NMake (gendoc): Add a new target to generate html from xml
1271
12722004-05-25    <arnault@lal.in2p3.fr> 220
1273
1274        * mgr\NMake (cmttag): Convert VisualC.nmake into VisualC_cmt.nmake
1275        * fragments\nmake\constituent: Generate tag file for the target
1276
12772004-05-18    <arnault@lal.in2p3.fr> 219
1278
1279        * mgr\requirements: Add cmt_log.cxx in the source list
1280
1281        * src\cmt_tag.cxx (add): First replacements of debug messages using log
1282        * src\cmt_parser.cxx (configure_tags): idem
1283
12842004-05-18    <arnault@lal.in2p3.fr> 219
1285
1286        * src\cmt_log.h (class CmtLog): Introducing a centralized log message facility
1287        * src\cmt_log.cxx: first implementation
1288
12892004-05-18  Christian Arnault  <arnault@lal.in2p3.fr> 218
1290
1291        * fragments/nmake/make_header (tags): idem
1292
1293        * fragments/nmake/constituent: Update to generate the target_XXX tag
1294
1295        * src/cmt_parser.cxx (parse_arguments): Activate the tag target_<action> when "cmt do <action>" is run
1296
1297        * fragments/constituent: Generate the target_${CONSTITUENT} tag
1298
12992004-05-17  Christian Arnault  <arnault@lal.in2p3.fr> 218
1300
1301        * fragments/constituent: Propagate cmt_lock_pid for temporary files
1302        Generate a tag makefile specific to the constituent
1303
1304        * fragments/constituents_header (first): Improve the printout for CMTCONFIG
1305
1306        * fragments/make_header (tags): Generate the target_${CONSTITUENT} tag
1307
1308        * mgr/requirements: Don't generate the tags macro from CMT. Only do it from the Makefile fragments.
1309
1310        * src/cmt_generators.cxx (build): Add PACKAGE variable to individual constituent fragment
1311
13122004-05-13  Christian Arnault  <arnault@lal.in2p3.fr> 217
1313
1314        * fragments/constituent: idem
1315
1316        * fragments/constituents_header (cmt_final_setup): Implement a READONLY mode that generates all intermediate files in /tmp/CMT_*
1317
1318        * src/Makefile.header (tags): Implement a READONLY mode that generates all intermediate files in /tmp/CMT_*
1319        (common_target): Make use of the new -out=file option of the cmt build constituents_makefile command
1320
1321        * src/cmt_generator.cxx (build_constituents_makefile): idem
1322
1323        * src/cmt_generator.h (class Generator): Add the argument list to the build_constituents_makefile function
1324
1325        * src/cmt_generators.cxx (build): idem
1326
1327        * src/cmt_generators.h (class ConstituentsMakefileGenerator): Add the argument list to the build function
1328
1329        * src/cmt_parser.cxx (configure): Chain configure_home, configure_user_context and configure_cmtpat
1330        (do_build_constituents_makefile): Propagate arguments to the Generator::build_constituents_makefile method
1331        (parse_arguments): Accumulate extra-arguments for build constituents_makefile command
1332        (parse_arguments): Restore the home,user_context and cmtpath configurations for the -tag=xxx option
1333
1334        * src/cmt_project.cxx (set_build_strategy): Get tags from their names rather than from their pointer to fix a pointer bug
1335        (set_setup_strategy): idem
1336
1337        * src/cmt_tag.cxx (action_apply): Adding several debug printouts
1338
13392004-05-10    <arnault@lal.in2p3.fr> 216
1340
1341        * doc\CMTDoc.xml: Add a section on package semantics
1342
13432004-05-07  Christian Arnault  <arnault@lal.in2p3.fr> 215
1344
1345        * mgr/requirements: Improve support for CEL
1346        Upgrade system_version_query_command for Darwin
1347
13482004-05-06  Christian Arnault  <arnault@lal.in2p3.fr> 215
1349
1350        * src/cmt_tag.cxx (action_apply): apply_tag now supports the tag
1351        name given through a symbol expression
1352
1353        * mgr/cmt_linux_version.sh: Support for Entreprise Linux
1354
1355        * mgr/requirements: Create automatic tags from cmt_hardware
1356        cmt_system_version and cmt_compiler_version.
1357        Set the macro shlibsuffix for Win32
1358
1359        * mgr/cmt_filter3_version.sh: Add a filtering procedure to keep 3 digits in the compiler version
1360
13612004-05-05  Christian Arnault  <arnault@lal.in2p3.fr> 214
1362
1363        * src/cmt_syntax.cxx (parse_requirements): Close all scope sections once the requirements file is parsed.
1364
1365        * src/cmt_use.cxx (close_scope_sections): Implement by clearing the vector of scope sections.
1366
1367        * src/cmt_use.h (class Use): Add close_scope_sections to be called
1368        at the end of parsing a requirements file.
1369
13702004-05-03  Christian Arnault  <arnault@lal.in2p3.fr> 213
1371
1372        * doc/ReleaseNotes.html: Fix typo
1373
1374        * src/cmt_system.cxx (is_version_directory): Misunderstands
1375        version specifications of the form v1r2p (without a trailing
1376        number)
1377
13782004-05-03  Christian Arnault  <arnault@lal.in2p3.fr> 212
1379
1380        * src/cmt_parser.cxx (configure): Configure home and user_context
1381        before configuring cmtpaths to associate projects with CMTHOME and
1382        CMTUSERCONTEXT
1383        (configure_cmt_path): Reset the project factory before creating all projects
1384        (configure_user_context): Add a debugging printout
1385
1386        * src/cmt_system.cxx (get_cmt_paths): Remove the initialization of
1387        the project factory from there to transfer it to the caller (eg
1388        cmt_parser::configure_cmt_path)
1389
1390        * src/cmt_parser.cxx (use_special_requirements): Expects a
1391        statically defined version "v0" for all special uses.
1392
1393        (configure_cmt_path): Associate a project with CMTHOME and CMTUSERCONTEXT to manage strategies.
1394
1395        * src/cmt_use.cxx (show_all): Adapt to new naming convention:
1396        display the static version explicitly.
1397
1398        * src/cmt_system.cxx (get_home_package): Convert CMTHOME package
1399        name from "CMTHOME context" to CMTHOME and manage a version
1400        through standard mechanisms (version is statically defined as v0)
1401        (is_home_package): Adpat to new naming convention
1402        (get_user_context_package): Idem for CMTUSERCONTEXT
1403        (is_user_context_package): Adapt to new naming convention
1404
14052004-04-30  Christian Arnault  <arnault@lal.in2p3.fr> 211
1406
1407        * mgr/cmt_install_action.sh: Use /bin/pwd instead of raw pwd [Thanks to Traudl]
1408        * mgr/cmt_uninstall_action.sh: idem
1409        * mgr/cmt_make_shlib.sh: idem
1410        * mgr/cmt_make_shlib_common.sh: idem
1411        * fragments/install_includes_header: idem
1412
1413        * mgr/requirements: Perform path_remove all before path_prepend in
1414        the cmtpath_pattern. Thus state two separate cmtpath_patterns.
1415
14162004-04-02    <arnault@lal.in2p3.fr> 210
1417
1418        * src\cmt_project.cxx (scan_paths): Late patch for LynxOS limitation
1419
1420        * src\cmt_version.h: Prepare for v1r16
1421
14222004-03-29    <arnault@lal.in2p3.fr> 209
1423
1424        * mgr/Makefile: Set compiler options for CYGWIN
1425
14262004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 208
1427
1428        * src/cmt_syntax.cxx (class KwdSetupStrategy): Implement setup strategy decoding for projects
1429
14302004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 207
1431
1432        * src/cmt_system.h (class IProjectFactory): Suppress the configure entry point
1433
1434        * src/cmt_system.cxx (get_cmt_paths): see below
1435
1436        * src/cmt_project.h (class ProjectFactory): No longer need to configure from ProjectFactory
1437
1438        * src/cmt_project.cxx (configure): Fix typo mixing prototypes and no_prototypes tags
1439        (add): Systematically create tags just after naming the project.
1440
1441        * src/cmt_project.h (class Project): Only create tags once
1442
1443        * src/cmt_syntax.h (class SyntaxParser): Introduce the different
1444        syntax parsing schemes for requirements files and projects files.
1445        (class SyntaxParser): Rename do_parse_requirements_text and
1446        do_parse_requirements_text into do_parse_text and do_parse_line.
1447
14482004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 206
1449
1450        * src/cmt_syntax.cxx (action): Define a default implementation for project actions
1451        (class KwdBuildStrategy): Define a project action
1452        (class KwdProject): idem
1453        (class KwdSetupStrategy): idem
1454
1455        * src/cmt_syntax.h (class Kwd): Introduce an action for project files (simply virtual)
1456        (class SyntaxParser): Restructure, cleanup and sort the entry points
1457        (class SyntaxParser): Introduce a map of project keywords
1458
1459        * src/cmt_project.cxx (class ProjectReader): Start support for more statements in the project file
1460
1461        * src/cmt_pattern.cxx (action): Augment the decoding logic to be more fault tolerant
1462        (add): Temporarily force the word quoting
1463        Add various debuggin printouts
1464
1465        * src/cmt_parser.cxx (parser): Force the Use* argument type
1466
1467        * src/cmt_cvs.cxx (class CvsImplementation): Install a constructor for setting default values
1468        (class CvsImplementation): Set default verse mode to false
1469
14702004-03-24  Christian Arnault  <arnault@lal.in2p3.fr> 206
1471
1472        * src/cmt_cvs.cxx (class CvsImplementation): Reset default verbose mode to off.
1473
14742004-03-23  Christian Arnault  <arnault@lal.in2p3.fr> 205
1475
1476        * src/cmt_pattern.cxx (class PatternCache): Introduce a cache for
1477        the get_paths operation. To save recursive executions.
1478
1479        * src/cmt_pattern.h (class PatternList): Navigate in pattern list through PatternList
1480
1481        * src/cmt_vector.h (cmt_vector): Trying to optimize vector by changing the frame size
1482
1483        * doc/cmt-mode.el (cmt-mode-map): Revert completion key to <Esc>-<tab>
1484
14852004-03-22  Christian Arnault  <arnault@lal.in2p3.fr> 205
1486
1487        * src/cmt_symbol.cxx (resolve_value): Optimize by checking if $%` exist in the text to expand.
1488        (create): Missing "alias" case
1489
1490        * src/cmt_parser.cxx (do_show_action): Missing "alias" case
1491        (do_show_macro): idem
1492
1493        * src/cmt_project.cxx (clear): Improve the clear function to
1494        ensure a proper initialization
1495
1496        * src/cmt_system.cxx (get_home_directory): Use ::getenv rather than CmtSystem::getenv.
1497
14982004-03-19  Christian Arnault  <arnault@lal.in2p3.fr> 205
1499
1500        * doc/emacs.html: doc on the new emacs mode for CMT
1501        * doc/table.html: include emacs.html
1502
15032004-03-19  Christian Arnault  <arnault@lal.in2p3.fr> 204
1504
1505        * src/cmt_symbol.cxx (all_set): Only set non empty environment variables
1506
15072004-03-22    <arnault@lal.in2p3.fr> 203
1508
1509        * src\cmt_parser.cxx (get_build_strategy): Create a local helper
1510        function to retrieve the build strategy from the current project.
1511        (get_setup_strategy): Idem for the setup strategy
1512        (parse_arguments): Add a protection against the killing -tag= with empty argument.
1513        (reach_current_package): Specify the use object (current use)
1514        (class StandardMacroBuilder): Isolate the construction of the CMTVERSION macro into a function
1515        (class StandardMacroBuilder): Setting of basic standard macros
1516        specific to packages is transfered to Use::fill_standard_macros
1517        (set_standard_macros): Apply all cmtpath_patterns independently of the build strategy.
1518
1519        * src\cmt_symbol.cxx (action): Expand the tag name to permit tag
1520        expressions containing macros.
1521
1522        * src\cmt_syntax.cxx (parse_requirements): Define the standard
1523        macros before reading the requirements file.
1524
1525        * src\cmt_use.cxx (fill_standard_macros): Implement it (move code from cmt_parser.cxx)
1526        * src\cmt_use.h (class Use): Add fill_standard_macros function to
1527        fill in all standard macros for a given use before reading its
1528        requirements file.
1529
1530        * mgr\requirements: Add exclusions between basic tags
1531        Adapt cmtpath_pattern to new strategy management
1532
1533        * fragments\nmake\constituents_header (tags): id.
1534        * fragments\nmake\constituent: id.
1535        * fragments\constituent: Add -quiet to CMT command.
1536
15372004-03-19    <arnault@lal.in2p3.fr> 203
1538
1539        * src\cmt_parser.cxx (get_build_strategy): Install a local
1540        accessor function to get the build strategy either from the
1541        current project or from m_current_build_strategy.
1542
15432004-03-16    <arnault@lal.in2p3.fr> 202
1544
1545        * src/cmt_parser.cxx (fill_for_branches): Add a protection against empty current project
1546
1547        * src\cmt_system.cxx (get_cmt_paths): Make use of the new
1548        CmtSystem::get_home_directory function
1549
1550        * src\cmt_parser.cxx (class CmtMountFilterParser): Create a FAwk
1551        parser to decode mout_filter files.
1552        (configure_current_dir): Make use of the CmtMountFilterParser
1553        class to parse cmt_mount_filter and .cmtrc files.
1554
1555        * src\cmt_system.cxx (get_home_directory): Implementation.
1556
1557        * src\cmt_system.h (class CmtSystem): Introduced to get ${HOME} in
1558        a portable way
1559
15602004-03-03  Christian Arnault  <arnault@lal.in2p3.fr> 201
1561
1562        * src/cmt_parser.cxx (print_context): Use the new projet based setup strategy
1563
1564        * src/cmt_cvs.cxx: suppress some verbose printouts
1565
15662004-02-25    <arnault@lal.in2p3.fr> 200
1567
1568        * src\cmt_pattern.cxx (action): add use to warning messages
1569
1570        * doc\CMTDoc.xml: improvements
1571
1572        * doc\gendoc.py (Book.book_start): Set a padding on top of every rule
1573
1574        * src\cmt_cmtpath_pattern.h (class CmtPathPattern): No need to duplicate the vector of words.
1575
1576        * src\cmt_cmtpath_pattern.cxx (add): Construct the cmt statement as a one line statement
1577
1578        * src\cmt_cmtpath_pattern.h (class CmtPathPattern): Add an expansion line in the class
1579
1580        * src\cmt_pattern.cxx (add): Construct the cmt statement as a one line statement
1581        (expand): Create a temporary replacement for full line
1582        (action): relax the syntax by permitting spaces around the "=" sign.
1583        Add checks for the template name to be expected by the pattern.
1584
1585        * src\cmt_pattern.h (class Pattern): Add an expansion line in the class
1586
15872004-02-19    <arnault@lal.in2p3.fr> 200
1588
1589        * src\cmt_project.cxx (configure): Preset the tags of the default strategies
1590
1591        * src\cmt_tag.cxx (show_definition): Suppress the display of the internal Default tag
1592
15932004-02-13    <arnault@lal.in2p3.fr> 200
1594
1595        * src\cmt_parser.cxx (class StandardMacroBuilder): Fill <package>_project macro
1596        (class StandardMacroBuilder): Fill <package>_project macro
1597
1598        * src\cmt_project.cxx (get_current): No need to cd
1599
16002004-02-13  Christian Arnault  <arnault@lal.in2p3.fr> 199
1601
1602        * src/cmt_symbol.cxx: implement the XxxRemoveRegexp
1603
1604        * src/cmt_parser.cxx: idem
1605        * src/cmt_constituent.cxx: idem
1606        * src/cmt_symbol.cxx: idem
1607        * src/cmt_symbol.h (class Symbol): Change the action stored in Symbol into a new enum SymbolType.
1608
1609        * src/cmt_symbol.cxx: idem
1610        * src/cmt_syntax.cxx (SyntaxParser): idem
1611        * src/cmt_parser.h (enum): Introduce regexp-based remove operations for symbols
1612
16132004-02-10  Christian Arnault  <arnault@lal.in2p3.fr> 198
1614
1615        * src/cmt_parser.cxx (actor): Rename PackageCollector into ClientCollector
1616
16172004-02-09  Christian Arnault  <arnault@lal.in2p3.fr> 198
1618
1619        * fragments/installer: add a / everywhere for consistency
1620
1621        * src/cmt_symbol.cxx (build): Restrict warning on symbol overriding to show macro and show set
1622
16232004-02-13    <arnault@lal.in2p3.fr>
1624
1625        * doc\CMTDoc.xml: Work on the doc towards v1r16
1626
1627        * doc\gendoc.py (Book.plain_char_data): Keep space characters from raw text
1628        (Book.book_start): Introduce style sheet.
1629
16302004-02-06  Christian Arnault  <arnault@lal.in2p3.fr> 197
1631
1632        * src/cmt_cvs.cxx (class CvsImplementation): use -quiet for all internal cmt commands
1633
1634        * src/cmt_string.cxx (erase): Replace strcpy by an explicit loop
1635
1636        * src/cmt_cvs.cxx: Added -n and -v options to support simulation and verbose modes
1637
1638        * src/cmt_system.cxx (execute): Change the status value. Back to the Unix standard 0 = ok
1639
1640        * fragments/nmake/library: idem
1641        * fragments/library: Install the dependency to the ${CONSTITUENT}stamps macro like for application
1642
1643        * src/cmt_system.cxx (reduce_file_separators): Improve the reduction algorithm
1644
16452004-02-05    <arnault@lal.in2p3.fr> 196
1646
1647        * src\cmt_parser.cxx: Remove cmtpath database from Cmt class
1648        Rename FileScanner into PathScanner and transfer it to CmtSystem
1649        (configure_cmt_path): Use the ProjectFactory to create Projects from CMTPATH
1650        (do_broadcast): Projects now fill the selections.
1651        (do_show_clients): Projects used to search clients
1652        (do_show_packages): idem
1653        (do_show_path): idem
1654        (do_show_strategies): Projects reached to get strategies
1655        (do_show_versions): Projects used to search versions
1656        (parse_arguments): +path managed by adding a project
1657        (reach_current_package): Definitively suppress "current package" source of CMTPATH
1658
1659        * src\cmt_use.cxx (class UseProjectAction): Intoduce an action
1660        pattern to iterate into Project database
1661        (move_to): Use the Project::broadcast mechanism to locate the package.
1662
1663        * src\cmt_use.h (class Use): Make UseProjectAction friend of class Use
1664
1665        * src\cmt_system.cxx (add_cmt_path):
1666        (add_cmt_paths_from_text):
1667        (add_cmt_paths):
1668        (get_cmt_paths): Use IProjectFactory
1669
1670        * src\cmt_system.h (class IProjectFactory): Add abstract interface
1671        for creating projects form cmtpath entries
1672        (class CmtSystem): Change the API to using IProjectFactory
1673
1674        * src\cmt_project.cxx: Implement project management
1675
1676        * src\cmt_syntax.cxx (class KwdBuildStrategy):
1677        (class KwdSetupStrategy): Change strategies from new masks and into Projects
1678
1679        * src\cmt_parser.h (enum): Change the masks for strategies to
1680        improve the reliability of exclusive options, and inheritance
1681        between projects.
1682
1683        * src\cmt_cmtpath_pattern.cxx (class CmtPathPatternProjectAction):
1684        Introduce new actor pattern for broadcasting to project
1685        database. Used to apply all cmtpath_patterns
1686        (apply): Expand the <project> parameter
1687        (expand): idem
1688
1689        * src\cmt_cmtpath_pattern.h (class CmtPathPattern): Add project argument to expand
1690
1691        * src\cmt_awk.h (class PathScanner): Add the PathScanner class (imported from cmt_parser.cxx)
1692        * src\cmt_awk.cxx (PathScanner):
1693
1694        * src\cmt.h (class Cmt): Transfer cmtpath management to Project
1695
1696        * doc\CMTDoc.xml:
1697        * src\cmt_syntax.cxx (class KwdBuildStrategy):
1698        * src\cmt_project.h (class Project):
1699        * src\cmt_project.cxx (set_build_strategy):
1700        * src\cmt_parser.cxx (set_standard_macros): Rename X_install_area symbols into X_installarea
1701        * src\cmt_install_area.cxx: Rename X_install_area symbols into X_installarea
1702        * src\cmt_install_area.h: Rename X_install_area symbols into X_installarea
1703
1704        * mgr\requirements: Setting Project-oriented settings for installation area patterns.
1705
17062004-01-27    <arnault@lal.in2p3.fr> 195
1707
1708        * fragments\nmake\installer: Fixes from Pere.
1709
17102004-01-20    <arnault@vmlinux> 194
1711
1712        * Try on CVStrac ticket #1
1713
1714        * src/cmt_symbol.cxx (action): Ensure that the constituents macro is always private.
1715
1716        * src/cmt_parser.cxx (reach_current_package): Fix missing configuration bit.
1717        Cures the bug of missing <PACKAGE>VERSION when using cmt -use=...
1718
17192004-01-17    <arnault@lal.in2p3.frARNAULT@NB-ARNAULT> 193
1720
1721        * src\cmt_syntax.cxx (CommandParser): Add helps for create_project command
1722
1723        * src\cmt_parser.h (enum): Add action_create_project
1724
1725        * src\cmt.h (class Cmt): Add do_create_project function
1726
17272004-01-13    <arnault@vmlinux> 192
1728
1729        * src/cmt_parser.cxx (dos_script_prefix): Suppress spaces before
1730        continuation character in DOS format
1731
17322004-01-13  Christian Arnault  <arnault@lal.in2p3.fr> 191
1733
1734        * src/cmt_symbol.cxx (add_value_to_list): Fix for not discarding too much value_lists
1735
17362004-01-10    <arnault@vmlinux> 190
1737
1738        * src/cmt_syntax.cxx (class KwdBuildStrategy): Start getting the
1739        strategy from project(experimental??)
1740
1741        * src/cmt_project.cxx (find_by_cmtpath): We also accept paths specified using a substring
1742        (configure): Configure in reverse order
1743        (action): Add experimental -index and -select options
1744
1745        * src/cmt_install_area.cxx (setup_current_install_area): Make CMTINSTALLAREA a macro instead of a set
1746
17472004-01-08  Christian Arnault  <arnault@lal.in2p3.fr> 189
1748
1749        * src/cmt_use.cxx (reach_package): Fix bug in version comparison when working in non-version-directory mode
1750        * mgr/requirements: use $(CMTCONFIG) instead of $(tag) for setting PATH etc.. in cmtpath_pattern
1751
17522003-12-19  Christian Arnault  <arnault@lal.in2p3.fr> 188
1753
1754        * src/cmt_use.h (class Use): Remove the project relationship between Use and Project
1755
17562003-12-18    <arnault@lal.in2p3.fr> 187
1757
1758        * src\cmt_constituent.h (class Constituent):
1759        * src\cmt_constituent.cxx (add_for_action): Implement the constituent equivalent to actions
1760        (parse_all): Generate the constituent equivalents for all macros
1761
1762        * fragments\cmt_action_runner:
1763        * fragments\cmt_action_runner_header:
1764        * fragments\nmake\cmt_action_runner_header: The new generic make fragment for running actions
1765
1766        * fragments\nmake\dependencies:
1767        * fragments\dependencies: Suppress dependency computation when the
1768        QUICK macro is defined
1769
1770        * fragments\nmake\library:
1771        * fragments\library:
1772        * fragments\application:
1773        * fragments\nmake\application: Add dependency to requirements to rebuild application
1774
1775        * src\cmt_parser.cxx (do_config): Suppress install area cleanup action from cmt config
1776        (do_setup): idem
1777
17782003-12-16    <arnault@lal.in2p3.fr> 187
1779
1780        * src\cmt_constituent.cxx (class constituents_action_iterator):
1781        Added syntax check on -xxx options for constituents
1782
1783        * src\cmt_parser.cxx: Implement Action support.
1784        Added: (to support Actions)
1785                do_do
1786                do_show_action
1787                do_show_action_names
1788                do_show_action_value
1789                do_show_actions
1790        removed: (after introducing Scope Sections)
1791                get_scope
1792                set_scope
1793                m_scope
1794
1795        * src\cmt_parser.h (enum): Added
1796                CommandAction
1797                CommandEndPrivate
1798                CommandEndPublic
1799
1800                action_show_action_xxx
1801
1802        * src\cmt_constituent.cxx (class constituents_action_iterator):
1803        Added a syntax checking action.
1804
1805        * src\cmt_use.cxx:
1806        * src\cmt_use.h (class Use): Support Scope Section concept.
1807        A Use object holds a vector of ScopeSections
1808        Added functions
1809                push_scope_section
1810                pop_scope_section
1811                get_current_scope
1812        Changed attributes:
1813                scope -> initial_scope
1814
1815        * src\cmt_syntax.cxx (class KwdAction): New keyword
1816        (class KwdEndPrivate): new keyword
1817        (class KwdEndPublic): new keyword
1818        (class KwdPrivate): Ignore this pattern on current use
1819        (class KwdPublic): Ignore this pattern on current use
1820        (CommandParser): Update help texts for new action concepts
1821
1822        * src\cmt_symbol.cxx (class ActionBuilder): new Action objects are
1823        implemented as a new category of symbols. Therefore all mechanisms
1824        have been extended to support the new concept.
1825
1826        old scope attribute is replaced by accesses to Scope Sections from
1827        the Use objects.
1828
1829        * src\cmt_symbol.h (class Symbol): Suppress useless scope attribute and valid () function
1830
1831        * src\cmt_scope_section.cxx: New Support for Scope Sections
1832
1833        * src\cmt_scope_section.h: New Support for Scope Sections
1834
1835        * src\cmt_fragment.cxx (action): Switch to using Scope Sections
1836
1837        * src\cmt.h (class Cmt): Added: (to support Actions)
1838                do_do
1839                do_show_action
1840                do_show_action_names
1841                do_show_action_value
1842                do_show_actions
1843        removed: (after introducing Scope Sections)
1844                get_scope
1845                set_scope
1846                m_scope
1847
1848        * mgr\requirements: Adding support for Scope sections to handle
1849        private or public sections. Now private and public sections can be
1850        ended with the new keywords end_private and end_public. Ending
1851        keywords switch back to the previous scope active before the most
1852        recent opening keyword.
1853
1854        Adding cmt_scope_section.cxx to the sources of the cmt application.
1855       
1856
18572003-12-12  Christian Arnault  <arnault@lal.in2p3.fr> 186
1858
1859        * mgr/cmt_install_action.sh (a): Improve checking of pwd WRT CMTINSTALLAREA
1860        * mgr/cmt_uninstall_action.sh (a): idem
1861
1862        * mgr/cmt_mount_filter: Restore definitions
1863
1864        * src/cmt_syntax.cxx (do_parse): Evolution of the requirements
1865        file syntax: apply_pattern can be omitted (ie. pattern names are
1866        understood as extensions to the basic CMT language)
1867
1868        * src/cmt_pattern.cxx (action): Add error detection when applying the wrong pattern name
1869        Prepare for the next change of the syntax which accepts pattern names as plain CMT keywords
1870
1871        * src/cmt_parser.cxx (find_in_cmt_paths): Fix construction of the
1872        <package>_cmtpath when symlinks exist along pwd
1873
18742003-12-08  Christian Arnault  <arnault@lal.in2p3.fr> 186
1875
1876        * src/cmt_parser.cxx (do_build_library_links): Fix : should make
1877        use of the library_prefix and suffix.
1878
18792003-12-06   Christian Arnault  <arnault@lal.in2p3.fr> 185
1880
1881        * src\cmt_syntax.cxx (do_parse): When a keyword is not found,
1882        expect an implicit pattern application.
1883
1884        * src\cmt_pattern.cxx (action): Add a protection against pattern not found
1885        Support lines starting with pattern-name or with apply_pattern.
1886
18872003-11-21  Christian Arnault  <arnault@lal.in2p3.fr> 185
1888
1889        * mgr/cmt_install_action.bat: Typo
1890
1891        * mgr/requirements: Typo in macro cmt_uninstalldir_action
1892
18932003-11-20  Christian Arnault  <arnault@lal.in2p3.fr> 184
1894
1895        * src/cmt_version.h (CMTVERSION): Preparing new tag v1r14p20031120
1896
1897        * src/cmt_syntax.cxx (CommandParser): Help on cmt build CMT_pacman
1898
1899        * src/cmt_parser.cxx (parse_arguments): Implement cmt build
1900        CMT_pacman command to generate the effective pacman manifest file
1901        for CMT.
1902
1903        * src/cmt.h (class Cmt): Add Cmt::do_build_CMT_pacman function
1904
1905        * src/cmt_parser.h (enum): Add cmt build CMT_pacman command
1906
1907        * src/setup.zsh: Upgrade zsh completion settings
1908
1909        * src/setup.tcsh: Upgrade tcsh completion settings
1910
1911        * fragments/group (all_groups): Add a new standard macro
1912        $(<group>_dependencies) to specify global dependencies for a
1913        group.
1914
1915        * fragments/constituents_trailer (binclean): Dont remove *.make* when cleaning.
1916        Add a message for binclean.
1917
1918        * src/cmt_use.cxx (add): Improve the warning message for package not found
1919        (reduce_path): Display the package path using a reusable format (used by show fragments)
1920
19212003-11-19  Christian Arnault  <arnault@lal.in2p3.fr> 183
1922
1923        * src/cmt_constituent.cxx (class constituents_action_iterator): Empty group means no group.
1924
1925        * src/cmt_parser.cxx (install_library): Factor out the basic
1926        operation for installing a library
1927        (do_build_library_links): Make use of the new install_library
1928        operation. Add special operation for Darwin to install bundles
1929
1930        * src/cmt_syntax.cxx (class KwdBuildStrategy): Fix cumulative settings of the strategies
1931        (class KwdSetupStrategy): idem
1932
1933        * mgr/cmt_make_shlib_common.sh: Add support to generate bundles for Darwin
1934
19352003-11-14  Christian Arnault  <arnault@lal.in2p3.fr> 182
1936
1937        * src/cmt_install_area.cxx (setup): Continue setup even without current installation area
1938        (config): Apply all cmtpath_patterns even  without current installation area
1939        (build_current_install_area): Make use of Cmt::find_in_cmt_paths
1940
1941        * src/cmt_parser.cxx (configure_current_cmtpath): Make use of the
1942        new find_in_cmt_paths function
1943        (do_setup): Always call CmtInstallAreaMgr::setup even if current installation area is empty
1944        (find_in_cmt_paths): first implementation
1945        (get_cmt_path_pwds): first implementation
1946        (class StandardMacroBuilder::fill_for_use_cmtpath): Make use of the
1947        new find_in_cmt_paths function
1948
1949        * src/cmt.h (class Cmt): Adding find_in_cmt_paths to locate a path
1950        from all specified CMTPATH entries (considering the dual flavours
1951        of each entry)
1952        Adding get_cmt_path_pwds to access alternal values of cmtpath entries
1953
19542003-11-12  Christian Arnault  <arnault@lal.in2p3.fr> 181
1955
1956        * fragments/nmake/constituents_trailer (binclean): Fix typo for Windows
1957
19582003-11-06  Christian Arnault  <arnault@lal.in2p3.fr> 180
1959
1960        * mgr/CMT.pacman: Add generic pacman file.
1961        All instances of the "<version>" pattern need to be substituted by
1962        the effective version of CMT to make it a real pacman file
1963
19642003-10-29  Christian Arnault  <arnault@lal.in2p3.fr> 179
1965
1966        * tagging v1r14p20031027
1967
1968        * mgr/cmt_build_release.sh (version): Add the rebuilding of Linux
1969        version at Lyon (without getting the result back)
1970
1971        * doc/documents.html: Install release notes from the documents page
1972
1973        * doc/ReleaseNotes.html: Create ReleaseNotes web page (suppress ReleaseNotes.txt)
1974
1975        * mgr/Makefile (docs):
1976        Add installation of ReleaseNotes.html
1977
19782003-10-27  Christian Arnault  <arnault@lal.in2p3.fr> 178
1979
1980        * src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031027
1981
1982        * mgr/requirements: cmt_installarea_prefix must be defined
1983        externally to the cmtpath_pattern.
1984
19852003-10-22  Christian Arnault  <arnault@lal.in2p3.fr> 177
1986
1987        * src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031022
1988
1989        * mgr/cmt_installdir_excludes.txt: New file containing the list of
1990        patterns to exclude in installing a directory
1991
1992        * fragments/nmake/install_includes_header (install): Add support for exclude files
1993
1994        * mgr/cmt_installdir_action.bat: Add support for exclude files
1995        * mgr/cmt_uninstalldir_action.bat: Add tests
1996        * mgr/cmt_uninstall_action.bat: Add tests
1997        * mgr/cmt_install_action.bat: Add tests
1998
1999        * src/cmt_parser.cxx (set_standard_macros): First define the
2000        current installation area before defining all other standard
2001        symbols (and making the final parsing of constituents)
2002
2003        * src/cmt_install_area.cxx (setup_current_install_area): Implement
2004        the definition of the CMTINSTALLAREA symbol     
2005        (setup): Differentiate the setting of CMTINSTALLAREA symbol from
2006        applying cmtpath patterns
2007
2008        * src/cmt_install_area.h (class CmtInstallAreaMgr): Split setup in
2009        two parts : first define the CMTINSTALLAREA symbol, then apply all
2010        cmtpath patterns
2011
20122003-10-21  Christian Arnault  <arnault@lal.in2p3.fr> 176
2013
2014        * mgr/cmt_build_release.sh: Start a procedure for remotely building a CMT release
2015
2016        * mgr/cmt_installdir_action.bat: Added test on existing result.
2017
2018        * fragments/nmake/install_includes_header (install_dir): Use $() instead of ${}
2019
2020        * mgr/requirements: Add definition for cmt_installdir_action
2021
2022        * src/cmt_parser.cxx (class StandardMacroBuilder): Generate
2023        <package>_cmtpath and <package>_offset macros also for the current
2024        package
2025
2026        * src/cmt_system.cxx (remove_directory): Add a # for error messages
2027        (remove_file): idem
2028
20292003-10-14    <arnault@vmlinux> 175
2030
2031        * src/cmt_version.h (CMTVERSION): Prepare tagging v1r14p20031014
2032
2033        * src/cmt_use.cxx (compare_versions): Add a function to compare
2034        two version strings.
2035        (reach_package): Add the effective version checking for
2036        no_version_directory style when version.cmt exists.
2037
2038        * doc/CMTDoc.xml: Suppress version strategy documentation since
2039        this mechanism is not really maintained.
2040
2041        * src/cmt_use.cxx (reach_package): Add effective check of version
2042        even in no_version_directory style
2043
20442003-10-13    <arnault@vmlinux> 175
2045
2046        * fragments/* : Add start and end markers to all make fragments. 
2047
20482003-10-09    <arnault@lal.in2p3.fr> 175
2049
2050        * src\cmt_parser.cxx (do_broadcast): Suppress the catching of
2051        return status=2 for last executed command
2052
20532003-10-02  Christian Arnault  <arnault@lal.in2p3.fr> 175
2054
2055        * src/cmt_system.cxx (cd): putenv requires that the string is static !!
2056
20572003-10-01    <arnault@vmlinux> 174
2058
2059        * src/cmt_use.cxx (class use_action_iterator): Force auto_imports
2060        to On when context is unspecified.
2061
2062        * src/cmt_use.h (class Use): Add a new set_selected_version
2063        function for switching from one use to another one, better wrt
2064        various criteria. When switching, m_index and auto_imports are
2065        transfered from the unselected to the newly selected.
2066
20672003-09-26    <arnault@vmlinux> 173
2068
2069        * src/cmt_system.cxx (cd): Change the PWD environment variable, in
2070        case it's not done by the underlying OS
2071
20722003-09-24  Christian Arnault  <arnault@lal.in2p3.fr> 172
2073
2074        * src/cmt_use.cxx (show_cycles): optimizing a bit
2075        (find_index): idem
2076        (set_auto_imports_state): idem
2077        (move): idem
2078        (reorder): idem
2079        (unselect_all): idem
2080        (get_selected_version): idem
2081        (get_paths): Improve the algorithm to save multiple vector manipulations
2082
2083        * src/cmt_parser.cxx: Follow all symbol->build_macro_value by
2084        Symbol::expand to really expand all possible macro
2085        references. This caused a bug when inline re-confirguring
2086        CMTUSERCONTEXT (etc.) with a value containing a ref to another
2087        symbol.
2088
2089        * mgr/Makefile (cpp): Add -O2 option for Linux platform
2090        (cpp): Add support for profiling setup for LinuxProf platform
2091
20922003-09-18    <arnault@vmlinux>
2093
2094        * mgr/cmt_uninstall_action.sh (a): Fix the consistency check of pwd vs CMTINSTALLAREA
2095        * mgr/cmt_install_action.sh (a): idem
2096
20972003-09-18  Christian Arnault  <arnault@lal.in2p3.fr> 171
2098
2099        * mgr/Makefile (cpp): Set IGNORE_PWD for OSF1 and LynxOS
2100
2101        * src/cmt_system.cxx (pwd): Add an option to ignore PWD since on
2102        some machines this does not work well with the chdir function.
2103
2104        * doc/CMTDoc.xml: improvements
2105
21062003-09-17  Christian Arnault  <arnault@lal.in2p3.fr> 170
2107
2108        * src/cmt_parser.cxx (class StandardMacroBuilder): Add the
2109        production of the new macros <package>_cmtpath <package>_offset
2110        (class StandardMacroBuilder): Implement the generation of
2111        <package>_cmtpath <package>_offset macros
2112
2113        * fragments/constituent: Add the same dependency list onto
2114        constituent makefile fragment than onto the constituent itself so
2115        as to enforce the build order also for make fragments.
2116
2117        * src/cmt_use.cxx (get_paths, get_selected_version): Remove static
2118        declaration for a local variable (caused a serious bug !!)
2119        Lots of debug prints improved.
2120
21212003-09-16  Christian Arnault  <arnault@lal.in2p3.fr> 170
2122
2123        * src/cmt_symbol.cxx (action): fix setup_script calling mechanism
2124        in no_version style : should get it from ../cmt rather than ../mgr
2125
21262003-09-16    <arnault@vmlinux> 169
2127
2128        * mgr/cmt_uninstall_action.sh (full_source_name): idem
2129
2130        * mgr/cmt_install_action.sh: add a protection when current
2131        directory is outside any installation area
2132
2133       
2134        * mgr/NMake (CMTINSTALLAREA): idem
2135        (cmttag): Improve the filter for VisualC tag file generation
2136        (required to remove all location specific info)
2137        Change the target from cmt to cmttag (ie this is NO LONGER done by default!!)
2138
2139        * mgr/Makefile (CMTINSTALLAREA): Inhibit all INSTALLAREA mechanism
2140        when rebuilding cmt itself
2141
2142        * src/cmt_parser.cxx (get_current_style): First Implementation
2143        (dos_script_prefix): Use current_style rather than
2144        current_structuring_style to select path pattern
2145
2146        * src/cmt.h (class Cmt): Add get function to access m_current_style
2147
21482003-09-16  Christian Arnault  <arnault@lal.in2p3.fr> 168
2149
2150        * src/cmt_use.cxx (find_index): Add a protection when a package
2151        was not found
2152
21532003-08-14  Christian Arnault  <arnault@lal.in2p3.fr> 168
2154
2155        * src/cmt_generators.cxx (LibraryGenerator::build): new syntax for get_all_files
2156        (DocumentGenerator::build): idem
2157        (MSDEVGenerator::build_project): idem
2158        (VSNETGenerator::build_project): idem
2159        (DependencyGenerator::build): idem
2160
2161        * src/cmt_generator.h (class CmtGenerator): Add an argument for
2162        selection patterns.
2163
2164        * src/cmt_generator.cxx (get_all_files): Apply the selection
2165        patterns.  Support wilcarded suffixes (*.*)
2166
2167        * src/cmt_generators.cxx (DocumentGenerator::build): Add path
2168        compression when analyzing file names.
2169        (ConstituentsMakefileGenerator::build): suppress unused declarations
2170
2171        * src/cmt_constituent.cxx (show): display select paterns
2172        (class constituents_action_iterator): Handle the new -k= option for selection pattern
2173        (clear): clear selection patterns
2174
2175        * src/cmt_constituent.h (class Constituent): Add select regexps similar to excludes
2176
21772003-08-13  Christian Arnault  <arnault@lal.in2p3.fr> 168
2178
2179        * src/cmt_use.cxx (show_all): Standardize the output format of
2180        show uses to ensure that we always have in the last part:
2181
2182        use <package> <version> [<offset>] (<path>) (<qualifier>) (...)
2183
2184        or (with -quiet)
2185       
2186        use <package> <version> [<offset>]
2187
2188        Also fix a bug when trying to remove offset from real_path...
2189       
2190
21912003-08-11  Christian Arnault  <arnault@lal.in2p3.fr> 167
2192
2193        * mgr/Makefile (bintar): Dynamically gets the list of binaries
2194        available of this machine. Then constructs CMTDownload.html
2195        accordingly.
2196
2197        * doc/CMTDownload1.html: First part of CMTDownload.html
2198        * doc/CMTDownload2.html: Last part of  CMTDownload.html
2199
2200        * doc/installations.doc: upgrade list of porting machines
2201
2202        * src/cmt_version.h (CMTVERSION): new patch tag v1r14p20030811
2203
2204        * src/cmt_use.cxx (show_sub_uses): Display the original request
2205        instead of the registered sub use (which may be different than the
2206        request)
2207
2208        * src/cmt_use.h (class Use): Add context_use in the argument list
2209        to display the use that created this request
2210       
2211        (class Use): Add a vector of the real requests (well only those that ended up in a sub use)
2212
2213        * src/cmt_use.cxx (need_new): Dispay the incompatibility message
2214        in need_new rather than in the BestFitSelector, since
2215        corresponding uses may have been discarded then.
2216
2217        * src/cmt_system.cxx (is_version_directory): return all -1 values
2218        when version specification is just '*'
2219
22202003-08-08    <arnault@lal.in2p3.fr> 166
2221
2222        * mgr\requirements: Tuning pour CYGWIN
2223
22242003-08-06  Christian Arnault  <arnault@lal.in2p3.fr> 165
2225
2226        * src/cmt_symbol.cxx (create): Same reasons (LynxOS) => convert a
2227        static array of strings into a switch statement (not quite
2228        elegant). May move back in some future if problem is solved on
2229        LynxOS.
2230
2231        * src/cmt_syntax.cxx (CommandParser): Initialze the new help_texts
2232        by filling in a vector rather that from a static array of
2233        cmt_string (too bad...)
2234
2235        * src/cmt_syntax.h (class CommandParser): Need to redefine the
2236        management of static arrays of objects due to a bug in c++
2237        compiler on LynxOS... A Workaround is found by transfering static
2238        arrays into the singleton => m_helps and m_help_texts
2239
22402003-08-06    <arnault@lal.in2p3.fr> 164
2241
2242        * src\cmt_parser.cxx (dos_script_prefix): Adapt the generation of
2243        setup.bat scripts so as to account for the new DOS device constructs
2244        \\xxx\aaa
2245
2246        * src\setup.bat: Add /D to the cd command to support CMT on a
2247        different device
2248
22492003-08-05    <arnault@lal.in2p3.fr> 163
2250
2251        * src/cmt_parser.cxx (dos_script_prefix): remove device from path
2252        when device takes the conventional form. new form (\\xxx\) is not
2253        yet handled.
2254
2255        * src/cmt_install_area.cxx (config): Don't produce output messages in quiet mode
2256
22572003-08-05  Christian Arnault  <arnault@lal.in2p3.fr> 163
2258
2259        * src/cmt_system.cxx (pwd): Make use of the PWD environment
2260        variable when it is defined to detect current directory in place
2261        of getcwd (keep gettcwd when PWD is not defined or on WIN32)
2262
2263        * fragments/install_includes_header (install): Avoid useless
2264        re-installation of include file area
2265
2266        * src/cmt_use.cxx (add): When m_index is exchanged between two
2267        uses, the discarded flag must be upgraded accordingly   
2268        (class use_action_iterator): Suppress trailing slash characters on
2269        package offset specifications.
2270
2271        * src/cmt_parser.cxx (class StandardMacroBuilder): Define
2272        package_cmtpath instead of just cmtpath as the standard macro, in
2273        order to avoid conflict with CMTPATH env. var. on Windows.
2274        (do_broadcast): Define the pattern <package_cmtpath> instead of
2275        <cmtpath> for broadcast command templates
2276
2277        * src/cmt_use.cxx (need_new): first consider the already registered use
2278        (add): Fix a bug in the algorithm for checking registrations of uses.
2279        (class use_action_iterator): Remove trailing slashes from prefix specifications
2280
22812003-06-20  Christian Arnault  <arnault@lal.in2p3.fr> 162
2282
2283        * src/cmt_version.h: new patch id 20030620
2284
2285        * mgr/Makefile (gendoc): Add a target to convert XML doc into HTML
2286        (so far only available at CERN)
2287
2288        * doc/gendoc.py (Book.plain_char_data): improvements.
2289
2290        * src/cmt_parser.cxx (do_broadcast): Fix evaluation of <cmtpath>
2291        <package_offset> in -global mode
2292
22932003-06-19    <arnault@lal.in2p3.fr> 161
2294
2295        * src/cmt_system.cxx (add_cmt_path): Fix cmtpath checking for
2296        devices on Windows
2297
22982003-06-19  Christian Arnault  <arnault@lal.in2p3.fr> 160
2299
2300        * fragments/nmake/library_no_share: Use the @<< syntax of nmake to
2301        cope with long list of OBJS
2302        * fragments/nmake/application: idem
2303        * fragments/nmake/library: idem
2304
23052003-06-18  Christian Arnault  <arnault@lal.in2p3.fr> 159
2306
2307        * mgr/requirements: Use ln -s for the cmt_install_area_command
2308
2309        * fragments/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
2310        * fragments/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
2311        * fragments/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
2312        * fragments/nmake/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
2313        * fragments/nmake/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
2314        * fragments/nmake/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
2315
2316        * mgr/requirements: use cp -s and not cp -l to create symlinks
2317
23182003-06-16  Christian Arnault  <arnault@lal.in2p3.fr> 158
2319
2320        * src/cmt_version.h (CMTVERSION): New Tag 20030616
2321
2322        * src/Makefile.header (common_target): Make use of the mktemp
2323        shell function
2324
2325        * doc/CMTDoc.xml: Doc
2326
2327        * src/cmt.h (class Cmt): Add get_current_cmtpath and
2328        get_current_offset functions.
2329
2330        * src/cmt_parser.cxx (configure_current_cmtpath): Implement (set
2331        m_current_cmtpath and m_current_offset)
2332
2333        * src/cmt.h (class Cmt): Add configure_current_cmtpath function
2334
2335        * src/cmt_parser.cxx (class StandardMacroBuilder): Add standard
2336        macros cmtpath and package_offset
2337        (do_broadcast): Add substitutions of <package>, <version>, <cmtpath>, <package_offset>
2338        (class StandardMacroBuilder): Set m_current_cmtpath and m_current_offset
2339
2340        * src/cmt.h (class Cmt): Adding current value for cmtpath and offset
2341
2342        * mgr/requirements: Use symlink instead of cp as default transfer
2343        action into installation area
2344
23452003-06-12  Christian Arnault  <arnault@lal.in2p3.fr> 157
2346
2347        * src/cmt_pattern.cxx : fix a bug in ApplyPattern::action: macros
2348        should NOT be expanded when parsing the statement. Only the
2349        pattern name may be expanded.
2350        Second fix: when a pattern is re-defined, the Pattern object must be
2351        properly reset.
2352
23532003-06-04    <arnault@vmlinux> 156
2354
2355        * src/cmt_version.h (CMTVERSION): Tag the version to v1r14p20030605
2356
2357        * mgr/build_from_rpm.sh (tempdir): Add a shell script for testing
2358        the source kit (not complete)
2359
2360        * mgr/install_from_rpm.sh: Add a shell script for testing the
2361        generated binary RPM.
2362
2363        * mgr/Makefile (rpm): Add the rpm target to build RPMs into ../rpm
2364
2365        * mgr/CMT.spec: Add an RPM spec file for CMT. Only the binary kit
2366        has been tested successfully
2367
2368        * doc/install.html: Document the usage of the CMT RPM
2369
2370        * src/cmt_parser.cxx (dos_script_prefix): Use %TEMP% instead of
2371        %HOMEDRIVE%%HOMEPATH% for temporary setup files on Windows
2372
23732003-06-04  Christian Arnault  <arnault@lal.in2p3.fr> 155
2374
2375        * fragments/install_includes_header (install): Fixed wrong test on
2376        CMTINSTALLAREA
2377
2378        * src/cmt_syntax.cxx (parse_requirements): Transfer the scoping
2379        algorithm to parse_requirements_text so that patterns supplying
2380        private statements will work nicely.
2381        (parse_requirements_text): see above
2382
23832003-05-23  Christian Arnault  <arnault@lal.in2p3.fr> 154
2384
2385        * src/Makefile.header: removing apparently obsolete MAKEFLAGS
2386        filtering mechanisms on -j option
2387
2388        * src/setup.zsh: Add cmt show cycles zsh expansion
2389
2390        * src/cmt_parser.cxx (parser): Add cmt show cycles parsing and support
2391
2392        * src/cmt_syntax.cxx (CommandParser): Add show_cycles info
2393
2394        * src/cmt_parser.h (enum): Add action_show_cycles
2395
2396        * src/cmt.h (class Cmt): Add cmt show cycles command to display use cycles
2397
23982003-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 153
2399
2400        * src/cmt_std.h: Suppress include ios for new header style
2401
2402        * src/cmt_parser.cxx (parse_arguments): Install a -private option to
2403        the show_use_paths action. When -private is present on the command
2404        line then the private uses are reached.
2405        (parse_arguments): Make the --private or --public option a global
2406        option to control on all CMT commands whether we reach or not the
2407        private uses.
2408
2409        * src/cmt_use.cxx (class use_action_iterator): Detect the new
2410        scope filtering mode to actually reach the private uses
2411
2412        * src/cmt_parser.cxx: Set the scope filtering mode when
2413        appropriate (cmt_show_uses, cmt_show_use_paths, cmt_broadcast,
2414        cmt_set_versions, cmt_show_setup)
2415
2416        * src/cmt.h (class Cmt): Add m_scope_filtering_mode attribute
2417
2418        * src/cmt_parser.cxx (get_scope_filtering_mode): Implement the new function
2419        (set_scope_filtering_mode): Implement the new function
2420
2421        * src/cmt.h (class Cmt): Add set_scope_filtering_mode function
2422          (class Cmt): Add get_scope_filtering_mode function
2423
2424        * src/cmt_parser.h (enum): Add a scope filtering mode to block or
2425        reach private uses
2426
24272003-05-21  Christian Arnault  <arnault@lal.in2p3.fr> 153
2428
2429        * src/cmt_use.cxx (get_all_clients): Public interface to private
2430        get_all_clients
2431        (get_all_clients): Actual recursive implementation for getting all
2432        paths to a given client
2433
2434        * src/cmt_use.h (class Use): Implement two new get_all_clients
2435        functions to acquire all paths to a given client of a package (one
2436        public with simple interface and one private with temporary
2437        storage).
2438
2439        * src/cmt_use.cxx (class use_action_iterator): traverse complete
2440        use graph for action_show_use_paths
2441
2442        * src/cmt_std.h: Set new C++ header style on Linux
2443
2444        * src/setup.zsh: Add cmt show use_paths to auto-expansion definition
2445
2446        * src/cmt_syntax.cxx (CommandParser): Add help for cmt show use_paths
2447        (get_help_texts): idem
2448
2449        * src/cmt_parser.cxx (do_show_use_paths): implement do_show_use_paths function
2450        (parse_arguments): parse cmt show use_paths <package>
2451        (parser): idem
2452
2453        * src/cmt.h (class Cmt): add do_show_use_paths function
2454
2455        * src/cmt_parser.h (enum): Start implementing a new feature: cmt
2456        show use_paths <package> to display all possible paths between the
2457        current package and the specified package.
2458
24592003-05-19    <arnault@lal.in2p3.fr> 152
2460
2461        * mgr\cmt_linux_version.sh: add a script for querying linux
2462        version for various distributions (contribution from Clark McGrew
2463        <clark.mcgrew@sunysb.edu>)
2464
2465        * src\cmt_symbol.cxx (show_macro): re-apply suppress_OS_delimiter
2466        when generating the tag makefile, but only on WIN32 context.
2467
2468        * src\cmt_pattern.cxx (class apply_pattern_action_iterator): Add
2469        action iterator to expand macros before parsing line.
2470
2471        * src\cmt_fragment.cxx (class fragment_action_iterator): Add
2472        action iterator to expand macros before parsing line.
2473
2474        * src\cmt_fragment.cxx (action): Hide make_fragments in private
2475        sections like macros
2476
2477        * mgr\requirements: Introduce the generic Unix tag for all Unix platforms
2478       
2479        * src\cmt_parser.cxx (dos_script_prefix): Factor out the writing
2480        of DOS setup and cleanup scripts.
2481
2482        * mgr\INSTALL.bat: No longer need nmake to generate the setup.bat
2483        script of CMT, thanks to the %~d0%~p0 mechanism (copy from src is enough).
2484
2485        * src\setup.bat: Install a generic mechanism for finding the
2486        current drive letter (unfortunately this mechanism does not work
2487        in any possible Unix shell)
2488
2489        * src\cmt_parser.cxx (install_setup_scripts): Apply the drive
2490        letter mechanism to setup scripts
2491
24922003-05-17    <arnault@lal.in2p3.fr> 151
2493
2494        * mgr\requirements: Typo in the cmtpath_pattern : use_includes
2495
24962003-05-14    <arnault@lal.in2p3.fr> 150
2497
2498        * src\cmt_parser.cxx (restore_all_tags): Bug in managing
2499        -tag=<taglist> argument due to the separator in m_extra_tags :
2500        force a separator before and after all tags in the list
2501        (parse_arguments): idem
2502        (print): idem
2503
25042003-05-13    <arnault@lal.in2p3.fr> 149
2505
2506        * fragments/tex: install correction from Marie Anne
2507
25082003-05-12    <arnault@lal.in2p3.fr> 148
2509
2510        * mgr/cmt_linux_version.sh: Adding a script to retrieve Linux version and distribution
2511
2512        * mgr/requirements: Add declaration of install_includes fragments
2513
2514        * fragments/install_includes_header: Make fragment for installing
2515        include directory but only for those following the standard
2516        pattern of ../<package>
2517
2518        * fragments/install_includes:
2519        * fragments/nmake/install_includes_header:
2520
2521        * mgr/cmt_installdir_action.bat: Special treatment of directory
2522        installation
2523        * mgr/cmt_uninstalldir_action.bat:
2524
2525        * fragments/constituents_trailer (remove_library_links): Add a
2526        remove_library_links target
2527        * fragments/nmake/constituents_trailer: idem
2528
2529        * fragments/constituent (uninstall): Suppress dependencies for
2530        uninstall target
2531        * fragments/nmake/constituent (uninstall): idem
2532
25332003-05-11    <arnault@lal.in2p3.fr> 147
2534
2535        * mgr\requirements: Add search libpath to installarea for WIN32
2536
2537        * fragments\nmake\library (install): bug (typo) in target names
2538
2539        * mgr\cmt_install_action.bat: use rem comments instead of #
2540        * mgr\cmt_uninstall_action.bat: idem
2541
2542        * mgr\NMake (cmt): Filter out the include and lib definitions in
2543        VisualC.nmake for cmt itself.
2544
2545        * src\cmt_parser.cxx (scan_path): Suppress unused variable
2546
2547        * src\cmt_std.h (OLD_HEADERS): Adopt new header style for WIN32
2548
2549        * mgr\requirements: Add compiler option for exception handling in VisualC
2550
25512003-05-05  Christian Arnault  <arnault@lal.in2p3.fr> 146
2552
2553        * src/cmt_use.cxx (add): Set the warning for package not found a real warning.
2554
2555        * src/cmt_parser.cxx (do_setup): Change the info message to be
2556        displayed only when appropriate
2557
25582003-05-05    <arnault@lal.in2p3.fr> 145
2559
2560        * src/cmt_version.h: v1r14
2561
2562        * doc/CMTDoc.xml: Improve the doc
2563
2564        * doc/gendoc.py (Book.syntax_start): Add an attribute name in
2565        syntax for avoiding name conflicts
2566
2567        * fragments/nmake/jar (install):
2568        * fragments/nmake/java_header (install):
2569        * fragments/nmake/library_no_share (install):
2570        * fragments/nmake/library (install):
2571        * fragments/nmake/application (install):
2572
2573        * fragments/jar (install):
2574        * fragments/java_header (install):
2575        * fragments/library_no_share (install):
2576        * fragments/library (install):
2577        * fragments/application (install): apply the centralized scripts
2578
2579        * mgr/cmt_uninstall_action.bat:
2580        * mgr/cmt_install_action.bat:
2581        * mgr/cmt_uninstall_action.sh:
2582        * mgr/cmt_install_action.sh: Scripts for doing
2583        (un)installation into the current installation area
2584
25852003-05-02  Christian Arnault  <arnault@lal.in2p3.fr> 144
2586
2587        * fragments/application (uninstall, install):
2588        * fragments/library (uninstall, install):
2589        * fragments/library_no_share (uninstall, install):
2590        * fragments/java_header (uninstall, install):
2591        * fragments/jar (uninstall, install):
2592        * fragments/constituent (install, uninstall): Add (un)install actions
2593        idem for nmake
2594       
2595
25962003-05-02    <arnault@lal.in2p3.fr> 143
2597
2598        * doc/gendoc.py : Create a new mechanism for generating HTML
2599        documentation from an XML representation.
2600
26012003-04-30  Christian Arnault  <arnault@lal.in2p3.fr> 142
2602
2603        * src/cmt_parser.cxx (do_show_strategies): Display the Setup strategy
2604
2605        * src/cmt_syntax.cxx (class KwdSetupStrategy): Decode the
2606        [no_]cleanup option for the setup_strategy in requirements file
2607
2608        * src/cmt_parser.cxx (parse_arguments): Decode the -no_cleanup option
2609        (do_setup): Apply the cleanup only when the setup strategy permits it
2610        (do_config): idem
2611
2612        * src/cmt_parser.h (enum): Add NoCleanup possibility to the SetupStrategy
2613
26142003-04-16  Christian Arnault  <carnault@lxplus051.cern.ch> 141
2615
2616        * src/cmt_parser.cxx (run): Bug in PackageCollector::run current
2617        directory missed the package name. (for cmt show clients)
2618
26192003-04-12    <arnault@lal.in2p3.fr> 140
2620
2621        * src\cmt_generators.cxx: Add excludes to all calls to get_all_files
2622
2623        * src\cmt_generator.h (class CmtGenerator): Add exclude expressions
2624
2625        * src\cmt_constituent.cxx (class constituents_action_iterator):
2626        Implement the -x=<pattern> option to the constituent to exclude
2627        patterns. Create regexps for each pattern.
2628        (show): Show excludes
2629
2630        * src\cmt_constituent.h (class Constituent): Add a vector of
2631        regexp for exclude specs.
2632
2633        * src\cmt_regexp.cxx (set): Implement the set function.
2634
2635        * src\cmt_regexp.h (class cmt_regexp): Introduce a default
2636        constructor and a set function
2637
2638        * src\cmt_generators.cxx:
2639        * src\cmt_generator.cxx: Strong restruring of generator architecture:
2640          + create a CmtGenerator basic class for all generators
2641          + create derived classes for all categories of generators
2642                 ApplicationGenerator
2643                 LibraryGenerator
2644                 DocumentGenerator
2645                 ReadmeGenerator
2646                 PrototypeGenerator
2647                 DefaultMakefileGenerator
2648                 MSDEVGenerator
2649                 VSNETGenerator
2650                 MakeSetupGenerator
2651                 ConstituentsMakefileGenerator
2652                 DependencyGenerator
2653          + transfer new stuff in cmt_generators.h/.cxx
2654          + transfer all utility functions (get_all_files etc...) into the base class
2655          + optimize handling of Variable and FragmentHandle objects per Generator class
2656       
2657
2658        * src\cmt_install_area.cxx (config): suppress echo in quiet mode
2659
2660        * src\cmt_parser.cxx (install_test_setup_scripts): Protect tempfile against spaces in paths
2661        (install_test_cleanup_scripts): idem
2662        (install_setup_scripts): idem
2663        (install_cleanup_scripts): idem
2664
26652003-04-11  Christian Arnault  <carnault@lxplus051.cern.ch> 139
2666
2667        * src/cmt_parser.cxx (do_run_sequence): Sequences are removed from
2668        cmt.cxx and implemented in a dedicated source file.
2669
2670        * src/cmt_sequence.h (class SequenceRunner): Adding cmt_sequence.h
2671        (defining sequences)
2672
2673        * src/cmt_sequence.cxx (filter): Adding cmt_sequence.cxx (extracted
2674        from cmt.cxx)
2675
2676        * src/cmt_generator.cxx (get_all_files): Return a count of non
2677        empty file names.
2678        (build_library_makefile): Ensure that get_all_files is done only
2679        once.
2680        (build_document_makefile): Ensure that get_all_files is done only
2681        once (not completed yet)
2682        (class DocumentMakefileGenerator): Start creating an object model
2683        for makefile generators. Create derived classes of
2684        MakefileGenerator for Application, Library, document
2685
2686        * src/cmt_constituent.h (class Constituent): Add excludes vector
2687        of exclusions
2688
2689        * src/cmt_constituent.cxx (class constituents_action_iterator):
2690        Start implementing exclusion mechanisms on constituent sources.
2691        We add a -x=<pattern> cumulative option to the constituent syntax
2692       
26932003-04-07    <arnault@lal.in2p3.fr> 138
2694
2695        * src\cmt_generator.cxx: Add DIRNAME Variable
2696        Add new fragments for vcproj
2697
26982003-04-05    <arnault@lal.in2p3.fr> 138
2699
2700        * mgr\requirements: define VC7 VC7debug tags for vsnet
2701
2702        * src\cmt_generator.cxx (class MakefileGenerator): Add vsnetdir variable
2703        Add declarations for vsnet fragments
2704        (reset): Install vsnetdir as ..\VisualC
2705        (pseudoGUID): Implement an algorithm for creating GUIDs
2706        (build_vsnet_workspace):
2707        (build_vsnet):
2708
2709        * src\cmt_generator.h (class Generator): Declare
2710        build_vsnet_workspace and build_vsnet methods
2711
2712        * src\cmt_constituent.cxx (build_all_vsnet_files): Implement for vsnet
2713        (build_vsnet_file): Implement for vsnet
2714
2715        * src\cmt_constituent.h (class Constituent): Add build_all_vsnet_files
2716        (class Constituent): Add build_vsnet_file
2717
2718        * src\cmt_parser.cxx (class StandardMacroBuilder): Add macro
2719        <constituent>_GUID for vsnet.
2720        (parser): Implement cmt build vsnet actions
2721
2722        * src\cmt_syntax.cxx (CommandParser): Add help about cmt build vsnet
2723
2724        * src\cmt_parser.h (enum): Add action_build_vsnet
2725
2726        * src\cmt.h (class Cmt): Add Visual Sudio.Net support (From Toby Burnett)
2727
27282003-04-03  Christian Arnault  <carnault@lxplus051.cern.ch> 137
2729
2730        * src/cmt_parser.cxx (do_setup): Do a config action to the
2731        installation area in order to perform a cleanup operation during
2732        the source setup
2733
2734        * src/cmt_install_area.cxx (config): Display a message when doing
2735        cleanup of installation areas.
2736
2737        * mgr/requirements: Rename cmt_(un)install_command to cmt_(un)install_area_command
2738        Prepare CMTr14 tag from CMTr13
2739
2740        * fragments/java_header (install_java_bin_dir): idem
2741        * fragments/library_no_share (install_lib_dir): idem
2742        * fragments/jar (install_java_lib_dir): idem
2743        * fragments/library (install_lib_dir): idem
2744        * fragments/application (install_bin_dir): idem
2745
27462003-04-02  Christian Arnault  <carnault@lxplus051.cern.ch> 136
2747
2748        * src/cmt_symbol.cxx (build): Bug : the macro_prepend was NOT really prepending.
2749
27502003-03-28  Christian Arnault  <carnault@lxplus051.cern.ch> 136
2751
2752        * src/cmt_parser.cxx (class StandardMacroBuilder): Add CMTVERSION standard macro
2753
27542003-03-28    <arnault@lal.in2p3.fr> 135
2755
2756        * src\cmt_parser.cxx (configure_version_tag): Create three new predefined tags:
2757           CMTv<n>
2758           CMTr<n>
2759           CMTp<n>
2760        to describe the current version, release and patch of CMT.
2761
2762        * src\cmt_parser.h (enum): Adding PriorityVersion for marking the
2763        priority of the new automatic version tag
2764
2765        * src\cmt_parser.cxx (configure_version_tag): Implement
2766        configure_version_tag method to create a tag for the version of
2767        CMT
2768
2769        * src\cmt.h (class Cmt): Adding configure_version_tag method to
2770        create a tag for the version of CMT
2771
2772        * src\cmt_symbol.cxx (all_set): Ensure that all path separators
2773        are back-slash on windows.
2774
2775        * fragments\nmake\jar:  Adapt for the new convention (subdirectory for the CONSTITUENT)
2776        (install_java_lib_dir):  Add installation area mechanisms
2777
2778        * fragments\nmake\java: Adapt for the new convention (subdirectory for the CONSTITUENT)
2779
2780        * fragments\nmake\java_header (install_java_bin_dir): Add installation area mechanisms
2781
27822003-03-21  Christian Arnault  <carnault@lxplus051.cern.ch> 134
2783
2784        * src/cmt_parser.cxx (parser): cmt run must be recursive for used
2785        packages (in order to get all environment variables set)
2786
27872003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 133
2788
2789        * src/cmt_symbol.cxx (show): Implement common SymbolValueList::show method.
2790
2791        * src/cmt_symbol.h (class SymbolValueList): Factor out printing SymbolValues
2792
2793        * src/cmt_symbol.cxx (create): Give use context in warning message
2794
2795        * src/cmt_symbol.h (class Symbol): Add Use* argument to print
2796        context in warning messages
2797
2798        * src/cmt_parser.cxx (vector_to_string): Ignore empty entries to
2799        avoid duplicate separators
2800
28012003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 132
2802
2803        * src/cmt_error.cxx (print): Consistently set the prefix "#CMT> "
2804        to all error messages and print outs
2805        * src/cmt_triggers.cxx (filter): idem
2806        * src/cmt_use.cxx (add): idem
2807        * src/cmt_generator.cxx (build_default_makefile): idem
2808        * src/cmt_symbol.cxx (create): idem
2809        * src/cmt_parser.cxx (do_show_macro): idem
2810
2811        * src/cmt_symbol.cxx (create): Handle the unconsistent multiple
2812        declarations of sets as macros (and vice versa)
2813
2814        * src/cmt_error.cxx (class Error): Add warning error text
2815        * src/cmt_error.h (class CmtError): Add warning error code
2816
2817        * src/cmt_parser.cxx (reach_current_package): Suppress error print
2818        when requirements file is not found
2819        (do_show_macro): Improve the error message in the
2820        "cmt show macro/set" command
2821
28222003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 131
2823
2824        * src/cmt_parser.cxx (reach_current_package):
2825        * src/cmt_install_area.h (class CmtInstallAreaMgr): Factor out the
2826        construction of the current installation area
2827
2828        * src/cmt_install_area.cxx (setup): Filters out "default path" for
2829        constructing the current installation area
2830        (config): idem
2831
2832        * src/cmt_cmtpath_pattern.cxx (apply): Suppress "default path" (ie
2833        CMTPATH of CMT) from application of cmtpath_patterns
2834
2835        * src/cmt_parser.cxx (get_cmt_path_sources): Add accessor to cmtpath_sources
2836
2837        * src/cmt.h (class Cmt): Add accessor to cmtpath_sources
2838
28392003-03-18  Christian Arnault  <carnault@lxplus051.cern.ch> 130
2840
2841        * src/cmt_cmtpath_pattern.cxx (apply): Optimize the substitution
2842        of "<path>" in cmtpath_patterns by avoiding a loop over path items
2843        when the pattern does not contain "<path>" at all
2844
28452003-03-13  Christian Arnault  <carnault@lxplus051.cern.ch> 130
2846
2847        * mgr/requirements: Add -classpath $(src) to java compilation
2848
2849        * src/cmt_generator.cxx (analyze_file): Default copy action for
2850        files with no language is applied only to java contexts
2851
28522003-03-12  Christian Arnault  <carnault@lxplus051.cern.ch> 130
2853
2854        * fragments/java_copy: Use this fragment for default action on
2855        sources with no language
2856
2857        * src/cmt_generator.cxx (module_file_action): Install default
2858        (copy) action for source files with no language.
2859
2860        * fragments/java_header: Building jar files with * rather than *.class
2861
2862        * fragments/jar: Building jar files with * rather than *.class
2863
2864        * fragments/java_header: Syntax fix for generating manifest file
2865
28662003-03-11  Christian Arnault  <carnault@lxplus051.cern.ch> 129
2867
2868        * src/setup.zsh: Add show cmtpath_patterns option
2869
2870        * src/cmt_generator.cxx (analyze_file): Add constituent sub
2871        directory to output for java files
2872
2873        * fragments/jar: Add constituent sub directory to ../classes to
2874        store *.class and jar files
2875
2876        * fragments/java_header (install_java_bin_dir): Apply installation
2877        area mechanisms for java application
2878
2879        * mgr/requirements: Need both share/bin and share/lib for installarea
2880
28812003-03-10  Christian Arnault  <carnault@lxplus051.cern.ch> 129
2882
2883        * src/cmt_cmtpath_pattern.cxx (apply): CMTPATH patterns should be
2884        applied in revers order
2885
2886        * mgr/requirements: bug fix (missing backslash)
2887
2888        * src/cmt_install_area.cxx (config): Bug fix
2889
28902003-03-09    <ARNAULT@lal.in2p3.fr> 128
2891
2892        * src\cmt_install_area.cxx (setup): Make use of the cmt_installarea_prefix macro
2893        (config): idem
2894
28952003-03-08    <ARNAULT@lal.in2p3.fr> 128
2896
2897        * mgr\requirements: Define the cmt_installarea_prefix macro to
2898        parameterize the common prefix to be added to all CMTPATH entries
2899        for installation areas
2900
29012003-03-06    <ARNAULT@lal.in2p3.fr> 127
2902
2903        * src\cmt_install_area.cxx (config): Introduce the new macro
2904        cmt_installarea_paths used to declare all PATHS inside the
2905        installareas that will need to be checked for consistency when
2906        doing cmt config
2907
2908        * src\cmt_install_area.h (class CmtInstallAreaMgr): Remove
2909        set_path, add_path_pattern, apply_path_patterns function since
2910        they are all managed through cmtpath_patterns
2911
2912        * src\cmt_parser.cxx (do_show_cmtpath_patterns): Do set_standard_macros
2913
2914        * src\cmt_install_area.cxx (setup): Launch the CmtPathPattern::apply_all ()
2915
2916        * src\cmt_parser.cxx (parser): Add parsing of cmt show cmtpath_patterns
2917
2918        * src\cmt_syntax.cxx: Add parsing of cmt show cmtpath_patterns
2919
2920        * src\cmt_parser.h (enum): Add action_show_cmtpath_patterns
2921
2922        * src\cmt_database.cxx (cmtpath_patterns): Add CmtPathPatternVector object
2923
2924        * src\cmt_database.h (class Database): Add CmtPathPatternVector
2925
2926        * src\cmt_cmtpath_pattern.cxx: Install partial reproduction of cmt_pattern.cxx
2927
2928        * src\cmt_cmtpath_pattern.h: Create cmt_cmtpath_pattern.h
2929        (class CmtPathPattern): Install partial reproduction of cmt_pattern.h
2930
2931        * mgr\requirements: Add the source file cmt_cmtpath_pattern.cxx
2932
2933        * src\cmt_syntax.cxx (class KwdCmtPathPattern): add parser object
2934        for the new CommandCmtPathPattern.
2935
2936        * src\cmt_parser.h (enum): Add CommandCmtPathPattern to declare
2937        CMTPATH patterns to be applied onto all CMTPATH items.
2938
29392003-03-06    <ARNAULT@lal.in2p3.fr> 126
2940
2941        * src\cmt_symbol.cxx (all_set): Add debug informattion
2942
2943        * src\cmt_parser.cxx (do_run): Do set_standard_macros before
2944        running
2945
29462003-03-06  Christian Arnault  <carnault@lxplus051.cern.ch> 125
2947
2948        * src/cmt_system.h (class CmtSystem): Adding putenv to set environment variables
2949        * src/cmt_system.cxx (putenv): idem
2950
2951        * src/cmt_symbol.cxx (class SetBuilder): The build and clean
2952        function should return string object rather that referencing the
2953        string object attribute (protection against recursive calls)
2954        (class PathBuilder): idem
2955        (class MacroBuilder): idem
2956        (class ScriptBuilder): idem
2957        (resolve_value): Add comments and improve variable naming
2958        (resolve_value): idem
2959        (resolve_value_for_macros): idem
2960        (suppress_OS_delimiters): idem
2961
2962        * src/Makefile.header (common_target): Use /tmp to
2963        create temporary (and disposable) make fragments.  Rearrange
2964
2965        * mgr/Makefile (cpp): Provide support to build on LinuxDebug
2966
2967        * fragments/constituents_header (cmt_lock_setup): Use /tmp to
2968        create temporary (and disposable) make fragments.  Rearrange
2969        statements in the building of $(tag).make so as to ensure that
2970        echo statements are only done when things are ok.
2971
2972        * src/cmt_parser.cxx (install_cleanup_scripts): Define CMTROOT
2973        only if it is NOT defined yet. Goal is to keep user defined
2974        version of CMT.
2975        (install_setup_scripts): idem
2976        (install_test_cleanup_scripts): idem
2977        (install_test_setup_scripts): idem
2978
29792003-02-27  Christian Arnault  <carnault@lxplus051.cern.ch> 125
2980
2981        * src/cmt_symbol.h (class ValueBuilder): due to recursivity,
2982        Builder function cannot share the temporary string value
2983
29842003-02-26  Christian Arnault  <carnault@lxplus051.cern.ch> 125
2985
2986        * src/cmt_parser.cxx (do_run): Add Symbol::all_set
2987        (do_broadcast): idem (before the loop over packages)
2988
2989        * src/cmt_symbol.cxx (all_set): Install the mechanism to set
2990        environment variables (using putenv) into CMT. This function is
2991        called before running the CmtSystem::execute function.
2992       
2993        * src/cmt_symbol.h (class Symbol): Remove the tabs argument of the
2994        print and print_clean methods (obsolete)
2995
2996        * src/cmt_symbol.cxx (resolve_value): rename the argument for the
2997        symbol name (it applies for any symbol, not just for macros)
2998        (resolve_value): Improve comments
2999        (resolve_value_for_macros): Improve comments
3000        (resolve_macro_value): factor out at least one of the resolve macro algorithms
3001
30022003-02-24  Christian Arnault  <carnault@lxplus051.cern.ch> 124
3003
3004        * src/cmt_generator.cxx (build_dependencies): Surrounding
3005        dependencies by quotes does not please gmake. We have to check
3006        what happens on Darwin (ie what about path names with spaces?)
3007       
30082003-02-14    <ARNAULT@lal.in2p3.fr> 123
3009
3010        * mgr\requirements: Use XCOPY instead of copy for the install
3011        commands to support the directory copy
3012
3013        * fragments\installer: Suppress the need to specify install_dir
3014        with trailing slash
3015
3016        * fragments\nmake\installer: Add installer for Windows
3017
3018        * src\cmt_generator.cxx (build_dependencies): Add double quotes to
3019        support file names with non standard characters (eg spaces) (not
3020        only on Windows).       
3021        (filter_path): Add the filter operation to work on one sigle
3022        file. The filter_paths function becomes obsolete and is removed.
3023        (analyze_document_file): Use filter_path instead of filter_paths
3024        (proto_file_action): idem
3025        (module_file_action): idem
3026        (build_library_makefile): idem
3027        (build_document_makefile): idem
3028        (build_dependencies): idem
3029        (build_document_makefile): Support sources being directories
3030        (module_file_action): idem
3031
3032        * mgr\cmt_install_action.bat: idem
3033        * mgr\cmt_uninstall_action.bat: idem
3034        * fragments\nmake\library_no_share (install_lib_dir): idem
3035        * fragments\nmake\library (install_lib_dir): idem
3036        * fragments\nmake\application (install_bin_dir): idem
3037
30382003-02-11  Christian Arnault  <carnault@lxplus051.cern.ch> 122
3039
3040        * src/cmt_cvs.cxx (class CvsImplementation): Adding explicit error
3041        message when base directory cannot be created during the checkout.
3042
30432003-02-06  Christian Arnault  <carnault@lxplus051.cern.ch> 121
3044
3045        * src/Makefile.header (clean): Remove the pseudo config target for
3046        the clean target
3047       
30482003-02-04  Christian Arnault  <carnault@lxplus051.cern.ch> 120
3049
3050        * src/cmt_use.cxx (add): Add protection against recursive use
3051        statement to current_use
3052
30532003-02-04    <ARNAULT@lal.in2p3.fr> 119
3054
3055        * src\cmt_use.cxx (need_new): Add protection against recursive use
3056        statement to current_use
3057
30582003-01-31  Christian Arnault  <carnault@lxplus051.cern.ch> 118
3059
3060        * mgr/requirements : library_prefix should be empty for WIN32
3061
3062        * src/cmt_parser.cxx (install_setup_scripts): Protect the setup
3063        script generation against cases where : structuring style is set
3064        to without_version_directory and verion tag cannot be determined
3065        (eg. if the version file does not exist). Then, the -version=xxx
3066        option is suppressed from the setup script generation.
3067        (install_test_cleanup_scripts): idem
3068
3069        * src/Makefile.header (common_target): Suppress a debug settings
3070
30712003-01-28    <ARNAULT@lal.in2p3.fr> 117
3072
3073        * src\cmt_install_area.cxx (instance): Suppress the production of
3074        LD_LIBRARY_PATH installation specs for WIN32
3075
3076        * fragments\nmake\library_no_share (install_lib_dir):
3077        * fragments\nmake\library (install_lib_dir):   
3078        * fragments\nmake\application (install_bin_dir): Add install area mechanisms for WIN32
3079
30802003-01-24  Christian Arnault  <carnault@lxplus032.cern.ch> 116
3081
3082        * src/cmt_install_area.cxx (instance): The constuction of the
3083        instance also declares the path patterns.
3084
3085        (setup): Make use of the path_patterns to generate CMT statements
3086
3087        (get_install_area): The current install area is preserved in the
3088        InstallAreaMgr instance (singleton).
3089
3090        (set_path): (only used internally) build a path expression from a pattern
3091
3092        (setup): Provide additional -L... options towards the install area
3093        for use_linkopts ad shlibbuilder
3094       
3095        (config): Perform the cleanup operation onto the current installation area:
3096          check the all ref-files still refer to existing files.
3097          if not erase the corresponding installed file.
3098
3099        * src/cmt_install_area.h (class CmtInstallPathPattern): New class
3100        for storing generic patterns for (PATH/directories) duets
3101        generation and management inside install area mechanisms.  The
3102        point is to describe special conventions for things to be
3103        installed within the installation area.
3104
3105        We describe that in terms of a set of :
3106       
3107           o path-like variable names
3108           o subdirectory patterns bellow $CMTINSTALLAREA
3109
3110        All those patterns will be used to configure the installation area
3111        and to expand the specified PATH-like variables.
3112
3113           Ex:
3114              PATH            is associated with ${CMTCONFIG}/bin
3115              LD_LIBRARY_PATH is associated with ${CMTCONFIG}/lib
3116              CLASSPATH       is associated with share/bin
3117
3118           we could think of having those patterns defined in the
3119           requirements file.
3120
3121        * src/cmt_parser.cxx (do_remove_library_links): Handle symlinks
3122        induced by the <package>_libraries macros through INSTALLAREA
3123        mechanisms
3124        (do_build_library_links): (idem)
3125        (set_standard_macros): Setup operations for InstallArea have been
3126        grouped using InstallPathPatterns
3127        (do_config): Add cleanup of install area
3128
31292003-01-23  Christian Arnault  <carnault@lxplus032.cern.ch> 115
3130
3131        * src/cmt_syntax.cxx (class KwdBuildStrategy): Support extension
3132        of build_strategy with install_area mechanisms.
3133
3134        * src/cmt_system.cxx (mkdir): Suppress the error message when one
3135        cannot create a directory
3136
3137        * fragments/application (install_bin_dir):
3138        * fragments/library_no_share (install_lib_dir):
3139        * fragments/library (install_lib_dir): Use CMTINSTALLAREA instead of INSTALLAREA
3140
3141        * src/cmt_parser.cxx (do_build_library_links): Use install area
3142        mechanisms when the build_strategy is active rather than
3143        symlinking into the binary directory of the package.
3144
3145        (set_standard_macros): Add the generation of CMTINSTALLAREA
3146        environment variable, the prepending of PATH, LD_LIBRARY_PATH,
3147        CLASSPATH when install_area is active
3148
3149        * src/cmt_install_area.cxx:
3150        * src/cmt_install_area.h (class CmtInstallAreaMgr): New class for
3151        managing install area mechanisms.
3152
3153        * src/cmt_parser.h (enum): Add InstallArea in BuildStrategy
3154
31552003-01-22  Christian Arnault  <carnault@lxplus032.cern.ch> 114
3156
3157        * src/cmt_use.cxx (find_index): Bad use of a static local variable
3158        implying wrong management of -import= options
3159        (get_index): Adding accessor function to m_index private attribute
3160
3161        * src/Makefile.header (.DEFAULT): Remove temporary debugging action
3162
31632003-01-21  Christian Arnault  <carnault@lxplus032.cern.ch> 113
3164
3165        * src/cmt_symbol.cxx (all_print): Restore two-steps process for
3166        generating setenv calls (first normal env. variables then path-like)
3167        (all_print_clean):
3168
31692002-12-20  Christian Arnault  <carnault@lxplus032.cern.ch> 112
3170
3171        * src/cmt_parser.cxx (do_show_strategies): put a space character
3172
3173        * mgr/Makefile (cpp): Add the -O2 compiler option on default platforms
3174
3175        * mgr/requirements: Privately try the construction of the new CMTCONFIG
3176
3177        * src/cmt_parser.cxx (parse_arguments): Add cmt --version equivalence to cmt version
3178
31792002-12-19  Christian Arnault  <carnault@lxplus032.cern.ch> 111
3180
3181        * mgr/requirements: Change the name of cmt_cc_version.sh to
3182        cmt_dcc_version.sh for case insentivity of Darwin file system
3183
3184        * fragments/application (install_lib_dir):
3185        * fragments/library (install_lib_dir):
3186        * fragments/library_no_share (install_lib_dir):
3187
31882002-12-18  Christian Arnault  <carnault@lxplus032.cern.ch> 110
3189
3190        * src/cmt_symbol.cxx (resolve_value_for_macros): We have to
3191        suppress the conversion from %xxx% to $(xxx) on non-windows
3192        platform, since there were some occurrences of %xxx% patterns,
3193        which have a meaning in unix world!!
3194
3195        * src/Makefile.header (.DEFAULT): Only run once sub-makefile
3196
3197        * src/cmt_symbol.cxx (all_print_clean): Keep order of generation
3198        of sets and paths (instead of sets then paths)
3199
3200        * mgr/cmt_cc_version.sh: Helper scripts for compiler query commands
3201        * mgr/cmt_cxx_version.sh:
3202        * mgr/cmt_CC_version.sh:
3203        * mgr/cmt_gcc_version.sh:
3204
3205        * mgr/cmt_filter_version.sh:
3206
3207        * fragments/constituents_header (first): Make use of cmt show setup
3208       
3209        * src/cmt_parser.cxx (do_show_setup): Display sections rather than from the Makefile
3210       
3211        * src/cmt_use.cxx (class use_action_iterator): action_show_setup
3212        traverses the private subtrees (like show_uses)
3213
3214        * src/cmt.h (class Cmt):
3215        * src/cmt_parser.cxx (do_show_setup):
3216        * src/cmt_parser.h (enum): Add action_show_setup for grouping show uses,tags,path
3217
3218        * mgr/requirements: Manage a common (sh/csh) style for output
3219        redirection for system query commands
3220
3221        * fragments/library_no_share (install_lib_dir):
3222        * fragments/library (install_lib_dir):
3223        * fragments/application (install_bin_dir): Use cmt_install_command
3224        instead of install_command for install area mechanisms to avoit
3225        conflicts with the installer document generator
3226
32272002-12-18    <ARNAULT@lal.in2p3.fr> 109
3228
3229        * src\cmt_parser.cxx (do_show_strategies): Add display of setup strategy
3230        (print_context): Apply the build strategy
3231
3232        * src\cmt.h (class Cmt): Add get/set current_setup_strategy methods
3233        (class Cmt): Add m_current_setup_strategy attribute
3234
3235        * src\cmt_parser.h (enum): Add SetuStrategy enumeration
3236
3237        * src\cmt_syntax.cxx (class KwdSetupStrategy): Add SetupStrategy class
3238
3239        * src\cmt_parser.h (enum): Add setup_strategy keyword to control
3240        the production of <PACKAGE>CONFIG and <PACKAGE>ROOT env. variables
3241
3242        * src\cmt_parser.cxx (class StandardMacroBuilder): Add few debug printouts
3243
3244        * src\cmt_use.cxx (find_index): The returned index must be the
3245        m_index attribute of the Use object rather than the index in the
3246        use list of the package!!
3247
32482002-12-16  Christian Arnault  <carnault@lxplus032.cern.ch> 108
3249
3250        * src/Makefile.header (binclean): Add a quick binclean target
3251        (all): prepend a systematic config target
3252
3253        * fragments/constituents_header (all): Suppress dummy messages in gmake all and config
3254
32552002-12-16    <ARNAULT@lal.in2p3.fr> 107
3256
3257        * src\cmt.h (class Cmt): do_help remembers of the current action
3258        being parsed to have cmt help action
3259
3260        * src\cmt_syntax.h (class CommandParser): Command parsing
3261        mechanisms. So far only the help is handled. General map-based
3262        parsing mechanism is foreseen
3263
3264        * src\cmt_parser.h (enum ActionType): Add global actions for
3265        build, check, show only for error and help management
3266
3267        * src\cmt_syntax.cxx (show): Command Help management introduced (will be improved)
3268
3269        * src\cmt_parser.cxx (parse_arguments): Improve command help with SyntaxParser 
3270
3271        * mgr\requirements: Adding specs for query commands on WIN32
3272
32732002-12-12  Christian Arnault  <carnault@lxplus032.cern.ch> 106
3274
3275        * mgr/Makefile: Remove the mail sending after CMT rebuild... (!!!)
3276
3277        * src/cmt_symbol.cxx (resolve_macro_value): Detects patterns like:
3278        `$(macro-name)` within symbol definitions. The specified macro is expected
3279        to contain a shell command that will then be executed when expanding
3280        the macro.
3281
3282        * mgr/requirements: Add some system information queries:
3283        hardware
3284        system_version
3285        compiler_version
3286
3287        * mgr/cmt_filter_version.sh: Add a filtering script for system version
3288        informations.
3289
32902002-12-12    <ARNAULT@lal.in2p3.fr> 105
3291
3292        * mgr\requirements:  make use of SyntaxParser
3293        * src\cmt_triggers.cxx: idem
3294        * src\cmt_use.cxx: idem
3295        * src\cmt_parser.cxx: idem
3296        * src\cmt_pattern.cxx: idem
3297
3298        * src\cmt_syntax.cxx:
3299        * src\cmt_syntax.h (class Kwd): Introduce the new syntax parsing
3300        mechanism. It is based on a cmt_map of keyword objects. All requirements parsing
3301        operations are now implemented in the SyntaxParser singleton.
3302
3303        * src\cmt_parser.cxx (do_build_library_links): Introduce the
3304        cmt_symlink_cmd macro to override the internal management of
3305        symlink creation in case this is unavailable (eg on Windows)
3306
33072002-12-11  Christian Arnault  <arnault@lal.in2p3.fr> 104
3308
3309        * src/cmt_parser.cxx (do_set_versions): Make use of cmt broadcast
3310        to install version files in all packages. Inherit broadcast syntax.
3311       
3312        (do_broadcast): Add possibility to use template like in patterns
3313        Start with <version>.
3314
3315        * mgr/Makefile (cpp): Add profiling option
3316
3317        * fragments/check_java (check): Add run options
3318
3319        * src/cmt_use.cxx (find): Use Package grouping of uses
3320        (find_index): Use index registration information
3321        (move): Use index registration information
3322        (reorder): idem
3323        (need_new): Revisit the algo to avoid useless multiple reading of requirements files
3324        (add): Use index registration information
3325        (operate): Improve for without version directory style
3326        (Package): Introduce Package grouping of Use objects
3327
3328        * src/cmt_parser.cxx (do_set_versions): Use Package::is_cmt feature.
3329
3330        * src/cmt_string.cxx (replace): Optimize by reducing the calls to strlen.
3331
3332        * src/cmt_generator.cxx (build_dependencies): Use Package::is_cmt feature.
3333
3334        * src/cmt_include.cxx (print_all): Use Package::is_cmt feature.
3335
3336        * src/cmt_script.cxx (all_print_clean): Use Package::is_cmt feature.
3337
3338        * src/cmt_database.cxx (pattern_list_map): Discard dump features
3339
3340        * src/cmt_database.h (class Database): Restore tag management.
3341        Introduce PatternList and Package management
3342
3343        * src/cmt_project.cxx (class ProjectMgr): Suppress tag management
3344        from projects. Make it back to global management (from Database)
3345
3346        * src/cmt_pattern.h (class PatternList): Introduce PatternList
3347        class to group pattern by names. This class contains a list of
3348        Patterns of the same name but originating from different uses.
3349
3350        * src/cmt_use.h (class Use): renaming uses() to get_ordered_uses() and
3351        all_uses() to get_instances ()
3352
33532002-12-10  Christian Arnault  <arnault@lal.in2p3.fr> 103
3354
3355        * src/cmt_project.h (class Project): Add a tag_map to manage tags
3356
3357        * src/cmt_tag.cxx (add): Add a tag_map to manage tags
3358
3359        * src/cmt_tag.h (class Tag): Introduce a map of tags
3360
3361        * src/cmt_database.cxx (symbol_map): install a map of symbols
3362
3363        * src/cmt_database.h (class Database): install a map of symbols
3364
3365        * src/cmt_symbol.cxx (create): Use symbol map to find existing symbols
3366        (find): idem
3367        (symbol_map): access to the map of symbols from the database
3368        (clear_all): clear the database and the map
3369
3370        * src/cmt_symbol.h (class Symbol): Introduce the new typedef
3371        SymbolMap for a cmt_map of Symbols
3372
3373        * src/cmt_map.h: Introduce cmt_map.h implementing a map (binary tree)
3374
3375        * src/cmt_regexp.cxx (cmt_regexp): Rename cmt_node to cmt_regexp_node
3376        * src/cmt_regexp.h: Rename cmt_node to cmt_regexp_node
3377
33782002-12-09  Christian Arnault  <arnault@lal.in2p3.fr> 102
3379
3380        * fragments/check_java (check): Add run options (global and local)
3381
33822002-12-09  Christian Arnault  <carnault@lxplus032.cern.ch> 101
3383
3384        * mgr/requirements: Fix typo (trailing backslash)
3385
3386        * src/cmt_parser.cxx (parser): Add set versions operation to perform a
3387        global set version onto all used packages.
3388        (do_set_versions): Start implementing a draft scenario
3389        (parser): the set versions action require parsing the use graph.
3390
3391        * src/cmt.h (class Cmt): idem.
3392       
3393        * src/cmt_parser.h (enum): idem
3394
3395        * src/cmt_parser.cxx (configure_current_package): Set the default
3396        version expression in absence of both version directory AND
3397        version file to "v*" (instead of "v0")
3398
3399        * src/Makefile.header (binclean): Add new standard target for
3400        erasing at once the $(bin) directory
3401
34022002-12-08    <ARNAULT@lal.in2p3.fr> 100
3403
3404        * src\cmt_parser.cxx (do_set_version):
3405        (scan_path): Improving the management of various structuring styles for the FileScanner.
3406        (do_show_strategies): Displays structuring style in show_strategies
3407        (reach_current_package): Prepare the removal of automatic addition of the
3408        current package area to CMTPATH...
3409        (do_config): Fix discovery of structuring style
3410        (configure_current_package): Fix discovery of structuring style
3411        (class SequenceRunner): Accept version argument in sequence files
3412
3413        * src\cmt.h (class Cmt):
3414        * src\cmt_parser.h (enum): Add set version command to install version.cmt file
3415
3416        * src\cmt_system.cxx (is_version_directory): Handle wild cards in
3417        version ids detection
3418
3419        * mgr\requirements: Add Darwin definitions
3420
3421        * mgr\cmt_make_shlib_common.sh (temp_shlib): Protect against
3422        module files with space in their names
3423
3424        * mgr\requirements: try to remove CMT/v from PATH rather then CMT
3425        only so as to keep subpackages of CMT
3426
3427        * src\cmt_use.cxx (set_auto_imports_state): fix a bug on use pointer comparisons.
3428
3429        * fragments\nmake\constituent:
3430        * fragments\nmake\constituents_header (dirs): fix naming scheme : only .nmake
3431
3432        * mgr\NMake (cmt): protect VisualC.nmake generation against
3433        reminder of the physical location of the rebuild
3434
3435        * src\demo\demoA\requirements: Add PATH towards java on Windows
3436
3437        * mgr\NMake: Add a target to re-generate VisualC.nmake inside CMT
3438        so as to have proper nmake demo
3439
3440        * mgr\requirements: provide debug_option for WIN32 platform
3441
3442        * fragments\nmake\make_header (tags): Suppressed
3443        $(CMTCONFIG),$(CMTEXTRATAGS) and only keep $(CMTEXTRATAGS)
3444
3445        * fragments\nmake\constituents_trailer: added to NMake family
3446        * fragments\nmake\group: added to NMake family
3447
34482002-12-05    <ARNAULT@lal.in2p3.fr> 99
3449
3450        * src\cmt_vector.h (cmt_vector): replace static int frame_size by
3451        enum {frame_size} to C++ ANSI compliance.
3452
3453        * src\cmt_use.cxx (BestFitSelector::operate): When structurig
3454        style is withut-version-directory, the version field of the
3455        package may still contain wild cards. This has to be considered
3456        when checking compatibility.
3457
34582002-12-04  Christian Arnault  <carnault@lxplus032.cern.ch> 98
3459
3460        * src/cmt_use.cxx (set_auto_imports_state): bug fix (corresponding to v1r12p20021129)
3461
34622002-10-30  Christian Arnault  <carnault@lxplus032.cern.ch> 97
3463
3464        * src/cmt_vector.h (cmt_vector): define frame_size as a static
3465        const int instead of enum
3466
34672002-10-15  Christian Arnault  <carnault@lxplus032.cern.ch> 96
3468
3469        * src/cmt_use.cxx: Protect against use objects badly recorded
3470        within auto_imports_state vectors
3471
3472        * src\cmt_parser.cxx (scan_path): Fix algo to scan packages to
3473        cope with no-version style
3474        (class StandardMacroBuilder): Fix no-auto-imports algo
3475
34762002-09-24  Christian Arnault  <arnault@lal.in2p3.fr> 95
3477
3478        * mgr/ChangeLog.php: Introduce the online filter for ChangeLog file
3479
3480        * doc/documents.html: Use PHP to filter out ChangeLog
3481
3482        * mgr/Makefile (docs): Install ChangeLog and ChangeLog.php into web site
3483
3484        * src/setup.zsh: Add an empty leading line to avoid shell problems...
3485
3486        * src/Makefile.header (config): force the rebuild of $(tag).make
3487
34882002-08-06  Christian Arnault  <arnault@lal.in2p3.fr> 94
3489
3490        * fragments/library: Split action list so as to force the rebuild
3491        of shared libraries when it has been lost while shstamp is still
3492        there.
3493
34942002-06-21    <arnault@lal.in2p3.fr> 93
3495
3496        * src/cmt_parser.cxx (class SequenceRunner): Add support for comments in the sequence files
3497        (do_show_macro_names):
3498        (do_show_set_names):
3499        (print_symbol_names):
3500       
3501        (class StandardMacroBuilder): prepare the production of
3502        <constituent>_use_linkopts but let it unsused for the time being
3503
3504        (class StandardMacroBuilder): fix a typo
3505       
3506        (class StandardMacroBuilder): fix a bug
3507
3508        * src/cmt_parser.h (enum):
3509        * src/cmt.h (class Cmt): Adding do_show_macro_names,
3510        do_show_set_names, print_symbol_names functions
3511
3512        * src/setup.tcsh:
3513        * src/setup.zsh: move the -quiet option before verb to avoid confusion with new syntax for show xxxs
3514
3515        * src/demo/tprivate.cmt:
3516        * src/demo/demo1.cmt: improve test sequences
3517
3518        * mgr/requirements: add the macro preproc to prepare new scheme
3519        for dependency generation using cpp -MD
3520
3521        * mgr/Makefile (cpp): Specialize default cpp according to the platform
3522        (hosts): we don't need BOOL hosts anymore
3523        (demo): the demo sequence now exploits the sequence runner of CMT
3524        (tprivate): new test sequence on private uses.
3525
3526        * mgr/ChangeLog.awk: Adding this awk script to convert the ChangeLg file int HTML format
3527
3528        * doc/CMTDownload.html:
3529        * doc/download.html:
3530        * doc/install.html: doc improvements
3531
3532        * fragments/application: Temporarily stop using $(${CONSTITUENT}_use_linkopts)
3533
3534        * src/NMakefile.header (tag):
3535        * src/Makefile.header (tags):
3536        * fragments/nmake/constituents_header (tag):
3537        * fragments/nmake/make_header (tag):
3538        * fragments/constituents_header (tag):
3539        * fragments/make_header (tag): Add $CMTCONFIG to tags
3540
35412002-05-29    <arnault@lal.in2p3.fr> 92
3542
3543        * src\cmt_database.cxx:
3544        * src\cmt_database.h:
3545        * src\cmt_project.h (class Project):
3546        * src\cmt_project.cxx (Project): Introduce Project management
3547
3548        * mgr\requirements: Define the default project CMT
3549
3550        * src\cmt_parser.h (enum):
3551        * src\cmt_parser.cxx (select):
3552                Introduce apply_tag statements<br>
3553                Introduce first iteration on project management
3554       
3555        * src\cmt_symbol.cxx (action): replace direct access to member of
3556        tag objects by accessor functions.
3557
3558        * src\cmt_tag.cxx (add):
3559        * src\cmt_tag.h (class Tag):
3560                Clean up the for private members only<br>
3561                introduce action_apply to activate a tag from a requirements file<br>
3562                introduce tag expressions -> this defines primary tags versus
3563                computed ones. Selection is either obtained from m_selected for
3564                primary tags or computed from operands otherwise.
3565                so far only AND expressions are available.
3566
35672002-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 91
3568
3569        * src/cmt_symbol.cxx (select_last): Make use of Tag::is_selected
3570
3571        * src/cmt_tag.cxx (is_selected):
3572        * src/cmt_tag.h (class Tag): Add and_operands for defining tags
3573        from a bool expression of primary tags. Move selected to private
3574        area to ensure usage of is_selected which may compute the
3575        selection state from operands. The embedded state is now reserved
3576        to primary tags.
3577
35782002-05-28  Christian Arnault  <carnault@lxplus040.cern.ch> 90
3579
3580        * src/cmt_awk.cxx (class Parser): Replace the basic parsing engine
3581        by the local Parser class. It takes care of both EOL styles (Unix
3582        and Win) and of trailing backslashes for continuations.
3583
3584        * src/cmt_awk.h (class Awk): Added a function inc_line_number to
3585        increment the line number from the external text parser.
3586
3587        * src/cmt_cvs.cxx (filter): Added debug messages
3588
3589        * src/cmt_parser.cxx (do_awk):
3590        * src/cmt_parser.h (enum): Added action_awk
3591        * src/cmt.h (class Cmt): Added do_awk function for testing the Awk operator.
3592
35932002-05-27    <arnault@lal.in2p3.fr> 89
3594
3595        * doc\todo.html: Adding entries
3596
35972002-05-24  Christian Arnault  <carnault@lxplus012.cern.ch> 88
3598
3599        * src/cmt_cvs.cxx (class CvsImplementation): fix few problems with
3600        no_version_directory.
3601
36022002-05-23  Christian Arnault  <arnault@lal.in2p3.fr> 87
3603
3604        * src/demo/scenario.awk: Adapt to handle without_version_directory style
3605
3606        * src/demo/demo1.cmt: fix a typo
3607
3608        * src/cmt_parser.cxx (parse_requirements): Fixing bug on private
3609        macros for without_version_directory style
3610
3611        * mgr/Makefile (demo): Improving the demo scenario manager
3612
36132002-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 86
3614
3615        * doc/download.html:
3616        * doc/CMTDownload.html:
3617        * src/cmt_version.h (CMTVERSION): preparing tagging for v1r13...
3618
3619        * src/cmt_use.h (class Use): new helpers
3620
3621        * src/cmt_use.cxx (class use_action_iterator): re-design the scope
3622        hiding for private uses (was buggy for first level private uses)
3623        (reach_package): structuring style
3624        (get_full_path): new helper for centralizing the full package path
3625        computation
3626        (reduce_path): new helper to normal form with $<PACKAGE>ROOT
3627        (get_paths): add debug prints
3628        (show_sub_uses): structuring style
3629
3630        * src/cmt_system.h (class CmtSystem):
3631        * src/cmt_system.cxx (reduce_file_separators): helper to reduce
3632        multiple file separators into one
3633        (is_package_directory): structuring style
3634
3635        * src/cmt_pattern.cxx (apply): add debug prints
3636
3637        * src/cmt_parser.h (enum): Add CmtStructuringStyle options
3638
3639        * src/cmt_parser.cxx:
3640         Introducing support for structuring style.
3641         m_current_structuring_style global variable
3642         (scan_path):
3643         (scan_package):
3644         (run):
3645         (PackageCollector::run):
3646         (configure): calling configure_current_structuring_style
3647         (configure_current_package):
3648         (configure_current_structuring_style): new method
3649         (do_broadcast): use Use::get_full_path
3650         (do_config):
3651         (do_create):
3652         (do_help):
3653         (do_lock): suppress unused local variable
3654         (do_remove):
3655         (do_show_macros): add pattern for selection instead of default '*'
3656         (do_show_sets): idem
3657         (do_unlock): suppress unused local variable
3658         (get_current_strategy): new method
3659         (install_cleanup_scripts): install cleanup scripts on windows
3660         (load):
3661         (parse_arguments): re-number argument array
3662         (parse_arguments): support arguments for cmt show macros
3663         (parse_arguments): support arguments for cmt show sets
3664         (parse_arguments): -with_version_directory option
3665         (parse_arguments): -without_version_directory option
3666         (parse_requirements):
3667         (parser): support arguments for cmt show macros
3668         (parser): support arguments for cmt show sets
3669         (print_context): use Use::get_full_path
3670         (print_macros): selection pattern (reg. expression) on symbols
3671         (reach_current_package):
3672         (set_standard_macros): add getting pwd
3673         (set_standard_macros): structuring style
3674
3675        * src/cmt_generator.cxx
3676         (SourceFile::set): use CmtSystem::reduce_file_separators
3677         (prepare_use_context): idem
3678         (prepare_use_context): use Use::get_full_path
3679         (set_full_name): idem
3680         (build_make_setup): idem
3681
3682        * src/cmt_fragment.cxx
3683         (print): use Use::reduce_path factorization
3684         (locate): use Use::get_full_path factorization
3685         (locate): Support structuring style options
3686
3687        * src/cmt_cvs.cxx:
3688          + need cmt.h for accessing structuring style
3689          + support for structuring style
3690
3691        * src/cmt.h (class Cmt):
3692        Adding support for structuring style
3693       
3694        do_show_macros now accepts arguments
3695
3696        do_show_sets now accepts arguments
3697
3698        print_macros now accepts a pattern for selecting symbols
3699
3700        * src/demo/tprivate.cmt: Scenario for testing private uses and
3701        -no_auto_imports
3702
3703        * src/demo/demo1.cmt: Scenario for the general test/demo sequence.
3704       
3705        * src/demo/scenario.awk: Add a script for installing
3706        scenarios. This script can
3707          - create packages
3708          - install text files relatively to the packages.
3709
3710        * mgr/Makefile (demo): Replace the copy operations for the demo
3711        targets by an awk-based mechanism (only for Unix -> keep old
3712        mechanism for Windows). The scenario.awk script is able to create
3713        packages and install text files into the newly created packages.
3714
3715        Add a target (a scenario) for testing private uses and
3716        -no_auto_imports
3717
3718        Add an help target describing all special targets.
3719
3720        * fragments/constituents_header (first): Differentiate setup.make
3721        with the package name when $(bin) is common.
3722
37232002-05-17  unknown  <arnault@lal.in2p3.fr> 85
3724
3725        * doc/todo.html: Adding a web page for ToDo list, and bug reports.
3726
3727        * src/cmt_parser.cxx (install_test_setup_scripts):
3728        * src/cmt_parser.cxx (install_test_cleanup_scripts): Fix the bug
3729        to "source setup" standalone with a current directory outside the
3730        package itself.
3731
37322002-05-15  Christian Arnault  <arnault@asc.lal.in2p3.fr> 84
3733
3734        * src/cmt_version.h (CMTVERSION): Preparing the new tag v1r12p20020515
3735
3736        * doc/CMTDoc.html: Upgrade the documentation.
3737
3738        * src/setup.tcsh:
3739        * src/setup.zsh: Add all_tags to the list of know show options
3740
3741        * src/cmt_tag.cxx (show_definition):
3742        * src/cmt_tag.h (class Tag): Added Tag::show_definition
3743        (unfiltered show method wrt the selected state)
3744
3745        * src/cmt_parser.cxx (do_help): Implement the new cmt show all_tags command.
3746
3747        * src/cmt.h (class Cmt): Added Cmt::do_show_all_tags ()
3748
3749        * src/cmt_parser.h (enum): Added action_show_all_tags
3750
3751        * mgr/requirements: remove -I$(inc) from default value of ccomp
3752        macro (no longer needed and has side effects)
3753
3754        * src/cmt_use.cxx (add): Protect against null use pointer when not found.
3755
3756        * src/cmt_tag.cxx (action): do increase the tag ref list when
3757        overridden. It used to be un-overridden...
3758
3759        * fragments/constituents_trailer (clean): add a semi-colon between the two shell commands.
3760       
3761        * src/cmt_system.cxx (create_symlink): Explicit .c_str() in system calls.
3762
3763        * doc/table.html: setup a direct URL to CVSWeb rather than through
3764        an intermediate page
3765
37662002-04-12  Christian Arnault  <carnault@lxplus030.cern.ch> 84
3767
3768        * doc/CMTDoc.html:
3769        * src/setup.zsh:
3770        * src/setup.tcsh:
3771        * src/cmt_parser.cxx (do_help):
3772        * src/cmt.h (class Cmt):
3773        * src/cmt_parser.h (enum): introduce action_show_all_tags do
3774        display all defined tags (while action_show_tags only shows all
3775        active tags)
3776
3777        * fragments/constituents_trailer (clean): typo in the clean target.
3778
37792002-04-11    <arnault@lal.in2p3.fr> 83
3780
3781        * src\cmt_parser.cxx (print_clean): Suppress the unset of CMTCONFIG
3782
37832002-04-10    <arnault@lal.in2p3.fr> 82
3784
3785        * fragments\library:
3786        * fragments\library_no_share: Suppress the experimental change for
3787        erasing the object files after filling the library
3788
37892002-04-10  Christian Arnault  <carnault@lxplus044.cern.ch> 81
3790
3791        * src/cmt_version.h: preparing tagging for v1r12
3792
3793
3794       
3795        * mgr/requirements: Adapt to Darwin
3796
3797        * src/cmt_symbol.cxx (action):
3798        * src/cmt_use.cxx (action):
3799        * src/cmt_use.h (class Use): Introduce m_has_native_version
3800
3801        * mgr/requirements: Add standard $(library_prefix) and $(library_suffix) macros
3802
3803        * mgr/cmt_make_shlib_common.sh (temp_shlib): Set verbose mode to
3804        the linker command and control it through the QUIET macro. Fix the
3805        temporary expansion directory
3806       
3807        * mgr/cmt_make_shlib_common.sh (temp_shlib):
3808        * fragments/library_header:
3809        * fragments/cleanup_library: Add standard $(library_prefix) and $(library_suffix) macros
3810
3811        * fragments/constituents_trailer (makefilesclean):
3812        * fragments/constituent: remove specific makefile fragments for
3813        the constituents (instead of *.make)
3814
3815        * fragments/library_no_share:
3816        * fragments/library: erase *.o files after filling the library
3817
3818        * src/cmt_use.h (class Use): Add use::sub_use_auto_imports to save
3819        specifications on sub uses. Add Use::set_auto_imports to possibly
3820        promote auto_imports to sub uses when it is changed from Off to
3821        On.
3822
3823        * src/cmt_parser.h (enum):
3824        * src/cmt_pattern.cxx (show_all_applied_patterns):
3825        * src/cmt_pattern.h (class Pattern): adding Pattern::show_all_applied_patterns ()
3826        * src/setup.tcsh:
3827        * src/setup.zsh:
3828        * src/cmt_parser.cxx (do_help):
3829        * src/cmt.h (class Cmt): Adding Cmt::do_show_applied_patterns for
3830        the new command "cmt show applied_patterns"
3831
38322002-04-04  Christian Arnault  <carnault@lxplus044.cern.ch> 80
3833
3834        * src/cmt_use.cxx (add): Protect against duplicated registration of
3835        current_use.
3836
3837        * src/cmt_parser.cxx (install_setup_scripts): Append an empty line
3838        at the end of the generated setup script (problem on some shells)
3839       
3840        * src/cmt_parser.cxx (do_create):
3841        * src/cmt.h (class Cmt): Change the signature of the do_create
3842        function to receive its arguments from the "arguments" list rather
3843        than changing current_package etc...
3844
3845        * src/Makefile.header: Add a systematic config target (for backward compatibility)
3846
3847        * fragments/constituents_trailer (binclean): added the binclean
3848        target to completely remove the binary directory at once.
3849
3850        * fragments/make_header:
3851        * fragments/constituents_header:
3852        * fragments/nmake/make_header (CMTEXTRATAGS):
3853        * fragments/nmake/constituents_header (CMTEXTRATAGS): Remove the settings of CMTCONFIG
3854
38552002-03-22  Christian Arnault  <carnault@lxplus037.cern.ch> 79
3856
3857        * src/cmt_symbol.cxx (suppress_OS_delimiters): operate on %...%
3858        patterns only on Windows machines.
3859
38602002-03-20  Christian Arnault  <carnault@lxplus042.cern.ch> 78
3861
3862        * mgr/Makefile (Atlas): Suppress HP rebuild for Atlas group
3863
3864        * src/cmt_cvs.cxx (filter): Improve the recursive passes and
3865        handle the new qualifiers of the use statements.
3866
3867        * fragments/cleanup_header (clean): Fix bad insertion of the .DEFAULT target
3868
3869        * src/cmt_symbol.cxx (suppress_OS_delimiters): Introduce this new
3870        function to ensure that only $() syntax is used in tag makefiles
3871        (ie suppress ${} and %% syntaxes)
3872        (show_macro): apply this new function for action_build_tag_makefile
3873
3874        * src/cmt_generator.cxx (reset): Do not generate the Visual
3875        directory on non-windows machines
3876
3877        * fragments/group (clean): Suppress one echo on gmake clean
3878
38792002-03-14  Christian Arnault  <carnault@lxplus037.cern.ch> 77
3880
3881        * src/cmt_parser.cxx (set_standard_macros): Cleanup management of m_current_tag
3882
38832002-03-07  Christian Arnault  <carnault@lxplus048.cern.ch> 76
3884
3885        * src/cmt_parser.cxx (print_context): Suppress the automatic
3886        settings of CMTEXTRATAGS
3887
3888        * src/Makefile.header: Do not change CMTCONFIG
3889        * src/NMakefile.header: Do not change CMTCONFIG
3890
38912002-02-27  Christian Arnault  <carnault@lxplus042.cern.ch> 75
3892
3893        * fragments/jar: Adding removal of jar file for clean target
3894
3895        * src/cmt_use.cxx (show_sub_uses): show no_auto_imports status
3896
3897        * src/cmt_parser.cxx (reach_current_package): reapply global
3898        pattern at once until side effects are solved in user projects.
3899
3900        * fragments/jar: Apply an old fix to Unix fragments (was applied
3901        to Windows only)
3902
39032002-02-26  Christian Arnault  <carnault@lxplus016.cern.ch> 74
3904
3905        * src/cmt_use.cxx (move_to): select_alternate must be applied
3906        after reach_package for searches against an absolute path or
3907        against the current directory.
3908
39092002-02-25    <arnault@lal.in2p3.fr> 73
3910
3911        * fragments/cleanup_header (clean): Add default action
3912
3913        * src/Makefile.header (common_target): Remove debug print
3914
3915        * src\cmt_parser.cxx (parse_requirements): Apply global patterns
3916        right after parsing a requirements file, and only considering the
3917        Use context, one at a time (rather than applying all global
3918        patterns to all Uses at once after reading all requirements file)
3919
3920        * src\cmt_pattern.cxx (apply_all_globals):
3921        * src\cmt_pattern.h (class Pattern): Add a method to apply all
3922        global patterns in the context of only one Use object.
3923
39242002-02-24    <arnault@lal.in2p3.fr> 72
3925
3926        * src\cmt_system.cxx (command_separator): New method for getting
3927        the shell command separator (& or ;)
3928
3929        * src\cmt_cvs.cxx (class CvsImplementation): Add
3930        CmtSystem::command_separator() between cvs co of each branch
3931        (instead of newlines).
3932
3933        * src\cmt_system.cxx (has_device): Accepts the \\xxx\ syntax as a
3934        device name in file paths on windows.
3935
3936        * src\cmt_parser.cxx (configure_cmt_path): Hide show_set action
3937        when recursive definition of CMTCONFIG
3938
3939        * src\cmt_use.cxx (need_new): Some optimizations
3940       
3941        * src\cmt_use.cxx (move_to): Exchange the priority of CMTPATH
3942        versus version when selecting the best version.
3943
3944        * src\cmt_parser.cxx (use_cmt): Hide CMTDEBUG while parsing the
3945        requirements of CMT itself
3946
39472002-02-20  Christian Arnault  <arnault@lal.in2p3.fr> 71
3948
3949        * src/cmt_parser.cxx (do_broadcast): Fix a bug for setting the
3950         style the the Current use. This effect was induced by the new
3951         mechanism for constructing the Current Use object, now a singleton
3952         of the Use class.
3953
39542002-02-07    <arnault@lal.in2p3.fr> 70
3955
3956        * src\cmt_use.cxx (change_path): Add a m_located flag in Use class
3957        to record the success of the package localization. Test against
3958        this info instead of real_path to allow for package found in
3959        current directory (where real_path stays empty)
3960
3961        * src\cmt_parser.cxx (configure):
3962
3963        * src\cmt_use.cxx (show_sub_uses): Ensure that the cmt show uses
3964        displays the correct scoping information for uses and
3965        sub-uses. cmt show uses also displays the full tree even when it
3966        contains private uses.
3967
39682002-02-06    <arnault@lal.in2p3.fr> 69
3969
3970        * src\cmt_use.cxx (class use_action_iterator): Install UseContext
3971        to manage proper propagation of -no_auto_imports
3972
39732002-01-30    <arnault@lal.in2p3.fr> 68
3974
3975        * src/cmt_parser.cxx (parse_arguments): Fix the bug of private
3976        environment variables which could not be set even within the
3977        package (bug in the management of the -pack= -version= -path=
3978        options).
3979
3980        * src/cmt.h : Install all attributes of the Cmt class as private
3981        attributes, and make them follow the convention : m_xxx. This
3982        implies to install few accessor methods.
3983
39842002-01-29    <arnault@lal.in2p3.fr> 67
3985
3986        * src/cmt_use.cxx (class use_action_iterator): The private uses
3987        are accessed for
3988            - broadcast operations
3989            - show uses operations
3990
3991        * src/cmt_symbol.cxx (action): Expands the specified script name
3992        for the setup_script and cleanup_script statement.
3993          Protect against empty script names.
3994
39952002-01-11  Christian Arnault  <carnault@lxplus035.cern.ch> parallelbuilds
3996
3997        * src/Makefile.header: Reorganize basic Makefile fragment
3998        generation to permit better support for parallel & concurrent
3999        builds.  Mimize also the number of makefile fragments generated
4000        and kept : only $(tag).make remains in ../cmt . All other are
4001        thrown away after use.
4002
4003        Make those changes a branch "parallelbuilds"
4004       
4005
40062002-01-09  Christian Arnault  <carnault@lxplus001.cern.ch> 66
4007
4008        * src/NMakefile.header (tags): Apply the fix for tags onto
4009        NMakefile.header
4010
40112002-01-07    <arnault@lal.in2p3.fr> 65
4012
4013        * src/Makefile.header (tags): Attempt to fix the continuity break
4014        between v1r9 and v1r10, by re-installing the possibility to use
4015        gmake tag=<...> rather than having to use source setup.[c]sh
4016        -tag=<...>
4017
4018        (This fix has to be tested before any validation)
4019
40202001-11-26  Christian Arnault  <carnault@atlas50.cern.ch> 64
4021
4022        * Tagging v1r10p20011126
4023       
4024        * src/Makefile.header: tag is now ${CMTCONFIG} and tags ${CMTEXTRATAGS}
4025
4026        * mgr/requirements: Provide the macro tags as ${CMTEXTRATAGS}
4027
4028        * src/cmt_tag.cxx: Various changes in strategy for tags:
4029          - tag inclusion (defined by the "tag" statement) transmits the priority.
4030          - tag selection can be discarded by exclusion specifications. Exclusion
4031          qualifies a set of contradictory tags. Contradictory tags will be selected
4032          according to their priority or to their declaration order in case of
4033          equal priority.
4034
4035        * src/cmt_parser.h (enum Priority): Change the priority list:
4036        Arguments get highest priority
4037        then CMTCONFIG
4038        then user tags (those defined in requirements)
4039
4040        * fragments/make_setup: produce uses.make and tags.make
4041
4042        * src/cmt_parser.cxx (parse_arguments):
4043        * src/cmt.h (class Cmt): Suppress the mechanism of
4044        primary_tag. CMTCONFIG is enough.
4045
40462001-11-21  Christian Arnault  <carnault@lxplus040.cern.ch> 63
4047
4048        * src/cmt_symbol.cxx (add_value_to_list): fix protection on
4049        value_list.size () to start at 1 (not at 2)
4050
4051        * src/cmt_symbol.cxx (build): Reflective values of Sets should
4052        consider previous setenv settings.
4053
4054        * src/cmt_generator.cxx (build_dependencies): Using ../$(tag) for
4055        output base of the dependencies fragment rather then
4056        Cmt::current_tag
4057
4058        * src/Makefile.header (CMTPRIMARYTAG): tag=... argument of gmake
4059        will override CMTPRIMARYTAG. However internal tag macro is only
4060        replaced with ${CMTCONFIG}
4061
4062        * fragments/make_setup (config): create a tags.log (for cmt show
4063        tags)
4064
4065        * mgr/cmt_make_shlib_common.sh: Add the ${lib} prefix to the
4066        temporary expansion directory. Fix a bug in sed filter for all
4067        module files.
4068
4069        * src/cmt_parser.cxx (configure_tags): Add a protection against
4070        absence of CMTPRIMARYTAG
4071
4072        * src/cmt_system.cxx (create_symlink):
4073        * src/cmt_system.h (class CmtSystem): Adding the create_symlink
4074        function.
4075
4076        * src/cmt_parser.cxx (do_build_library_links): Using direct system
4077        calls to create symlinks.
4078
40792001-11-13  Christian Arnault  <carnault@lxplus010.cern.ch> 62
4080
4081        * Tagging v1r10p20011113
4082
4083        * mgr/requirements:
4084        * src/constituents.make (build_library_links): Define macros for
4085        build_library_links and remove_library_links
4086
4087        * fragments/make_setup (config): Add build_library_links target
4088
4089        * src/cmt_parser.cxx (set_standard_macros): Fix bad production of
4090        use_includes when private is used.
4091
4092        * src/cmt_parser.cxx (do_broadcast): Fix -begin=<pattern> error
4093
40942001-11-08  Christian Arnault  <carnault@lxplus028.cern.ch> 61
4095
4096        * src/cmt_version.h: tagging v1r10
4097
4098        * src/cmt_system.cxx (add_cmt_path): Get cwd alias to each selected path.
4099
4100        * src/cmt.h (class Cmt): Add cmt_path_cwd vector of all CMTPATH
4101        entries normalized to getcwd.
4102
4103        * src/cmt_generator.cxx (java_file_action):
4104        * src/cmt_generator.cxx (proto_file_action):
4105        * src/cmt_generator.cxx (module_file_action): Pass reference to the constituent in order
4106        to transmit constituent variables to the fragment.
4107
4108        * src/cmt_parser.cxx (set_standard_macros): Insert a space
4109        character for all generated macro_append operations.
4110
4111        * src/cmt_fragment.cxx (xxxcopy):
4112        * src/cmt_fragment.h (class Variable): Adding the expansion of
4113        fragments variables using both the ${} syntax AND the $() syntax.
4114
4115        * src/cmt_tag.h :
4116        * src/cmt_tag.cxx (is_selected): Change the Tag::selected attribute to bool.
4117
41182001-11-07  Christian Arnault  <carnault@lxplus006.cern.ch> 60
4119
4120        * src/cmt_symbol.cxx (build): Implement the possibilty to have
4121        reflexive asignment to symbols: when a symbol value is exactly
4122        specified (from set, macro or path statements) using $(<name>) or
4123        ${<name>} or %<name>% then the old value is preserved for all
4124        corresponding selectors.
4125
4126        * src/cmt_parser.cxx (set_standard_macros): Re-activate -import
4127        options (that had been discarded!)
4128
4129        * src/cmt_use.cxx (add): Generate an error when a package is not
4130        found (the error was only generated at "cmt show uses")
4131
4132        * src/cmt_constituent.cxx (show): Display -import options
4133
4134        * fragments/dependencies: Force checking $(bin)
4135
4136        * fragments/constituent: Adding some printout to display when
4137        constituent fragment is rebuilt
4138
4139        * src/cmt_parser.cxx (set_standard_macros): Re-validate
4140        -no_auto_imports option for use and -import options for
4141        constituents.
4142
41432001-11-06  Christian Arnault  <carnault@lxplus038.cern.ch> 59
4144
4145        * src/cmt_generator.cxx (build_document_makefile): protect against
4146        missing files (causing infinite loops in Make)
4147
41482001-11-05  Christian Arnault  <carnault@lxplus005.cern.ch> 58
4149
4150        * mgr/Makefile (application_suffix): Define application_suffix in
4151        the CMT's Makefile
4152
4153        * src/cmt_parser.cxx (print_context): Do not generate ROOT and
4154        CONFIG for cmt_standalone packages.
4155
4156        * mgr/requirements: Reomving the cmt_selector.cxx source file.
4157
4158        * src/constituents.make: Force the dirs target for
4159        build_library_links
4160
4161        * src/cmt_parser.cxx (restore_all_tags): Get the value of
4162        CMTPRIMARYTAG to configure Cmt::primary_tag.
4163
4164        Leave unchanged the primary_tag and the extra_tags except if
4165        overridden through the -tagxxx= options
4166
4167        * src/cmt_parser.h (enum): Add PrioritySite in the list of
4168        possible priorities.
4169
4170        * src/cmt.h (class Cmt): Add the restore_all_tags function. Add
4171        the extra_tags attribute . Change the strategy of tag persistency:
4172
4173          o CMTPRIMARYTAG always contains what had been specified using
4174        the -tag= option,
4175
4176          o CMTEXTRATAGS contains what had been manipulated by -tag_add=
4177        and -tag_remove= options.
4178
4179          o CMTCONFIG is setup independently of the primary tag.
4180
4181        * src/Makefile.header (primary_tag): Propagate tags using
4182        CMTPRIMARYTAG instead of CMTCONFIG (except when CMTPRIMARYtAG is
4183        not yet defined)
4184
4185        * src/cmt_constituent.cxx (parse): Fix the word parsing for
4186        constituent specification...
4187
41882001-11-02  Christian Arnault  <arnault@asc.lal.in2p3.fr> 57
4189
4190        * src/cmt.h
4191        * src/cmt_database.cxx
4192        * src/cmt_database.h
4193        * src/cmt_parser.cxx
4194        * src/cmt_parser.h
4195        * src/cmt_selector.cxx
4196        * src/cmt_selector.h
4197        * src/cmt_symbol.cxx
4198        * src/cmt_symbol.h
4199        * src/cmt_tag.cxx
4200
4201        * src/cmt_tag.h:
4202        Suppressing cmt_selector objects (only tags are needed!!)
4203        Add tag_exclude keyword for building tag-exclusions.
4204
42052001-10-31  Christian Arnault  <carnault@atlas50.cern.ch> 56
4206
4207        * mgr/requirements: Don't need to explicitly declare make_fragment
4208        headers (automatically declared in the -header= option)
4209
4210        * src/cmt_symbol.cxx (print_clean): Cleaning up path variables may
4211        be either unsetenv when the result is empty or setenv if not.
4212       
4213        * fragments/application_launcher: evolution
4214
4215        * src/cmt_parser.cxx (configure_tags): protect against empty
4216        declaration of CMTCONFIG : by default will take uname...
4217
42182001-10-30  Christian Arnault  <carnault@atlas50.cern.ch> 55
4219
4220        * src/cmt_symbol.cxx (clean): Implement the cleanup correctly,
4221        with in particular the cleanup of the path variables.
4222
4223        * src/cmt_parser.cxx (print_context): improve output of cmt show tags
4224
4225        * src/cmt_symbol.h (class Symbol): Add clean_macro_value for
4226        building the result of the clean operations induced by this symbol
4227        (only implemented for path_xxx)
4228
4229        * src/cmt_parser.cxx: New post-context requirements file :
4230        user_context in addition to home package.  Added Use* use
4231        arguments to configure_xxx functions to transfer.
4232
4233        * src/cmt_parser.cxx(configure_cmt_path): Attempt to make use of
4234        CMTPATH definitions from requirements files.
4235
4236        * src/cmt_parser.cxx(configure_config_selector): Install context
4237        information for tag creation
4238
4239        * src/cmt_parser.cxx(configure_home): Attempt to make use of
4240        CMTHOME definitions from requirements files.
4241
4242        * src/cmt_parser.cxx(configure_user_context): Install user_context
4243        management
4244
4245        * src/cmt_parser.cxx(configure_site_selector): Get CMTSITE from
4246        requirements as well
4247
4248        * src/cmt_parser.cxx(configure_tags): Add a configure_tags
4249        finction to retreive tags from all possible sources: CMTCONFIG
4250        (from req) then CMTPRIMARYTAG then CMTCONFIG then CMTBIN then
4251        append all CMTEXTRATAGS.
4252
4253        * src/cmt_parser.cxx(parse_arguments): fix parsing bug for the
4254        -home= argument
4255
4256        * src/cmt_parser.cxx(parser): Set action_show_path to be recursive
4257
4258        * src/cmt_parser.cxx(parser): Call the HOME package just after
4259        using CMT. Call the use_context package just after reaching the
4260        current package.
4261
4262        * src/cmt_parser.cxx(print_clean): reformat the output (with
4263        newlines). Clear CMTPRIMARYTAG CMTEXTRATAGS and CMTCONFIG.
4264
4265        * src/cmt_parser.cxx(print_context): set CMTPRIMARYTAG
4266        CMTEXTRATAGS and CMTCONFIG from the current definitions.
4267
4268        * src/cmt_parser.cxx(set_standard_macros): Rationalize the
4269        production of current_tag
4270
4271        * src/cmt_parser.cxx(use_user_context_requirements):
4272
4273        * src/cmt_use.cxx (show_all): Display new user_context package
4274
4275        * src/cmt_use.cxx (class use_action_iterator): query function ok()
4276        includes both home_package and user_context_package
4277
4278        * src/cmt_use.cxx (reach_package): special treatment for
4279        home_package and user_context_package since they do not follow the
4280        standard location scheme.
4281
4282        * src/cmt_use.cxx (add): Improve the detection of packages not found.
4283
4284        * src/cmt_tag.cxx (unmark): Reset the use pointer
4285
4286        * src/cmt_tag.cxx (action): Install the use origin.
4287
4288        * src/cmt_tag.cxx (add): Install the use origin and the context
4289        information. It will be reset to the new context in case of
4290        re-definition. Suppress various excessive debug printouts.
4291
4292        * src/cmt_tag.cxx (clear): clear use and context new information
4293
4294        * src/cmt_tag.cxx (show): Improve the display of tags with
4295        hierarchical display of subtags and context information.
4296
4297        * src/cmt_tag.h (class Tag): Added Use* use parameter to action
4298        and add methods. Store a pointer to the package (Use*) who
4299        originated the definition, and a context string to qualify the
4300        definition.
4301
4302        * src/cmt_system.h (class CmtSystem):
4303        * src/cmt_system.cxx (add_cmt_paths_from_text): Factor out the
4304        code to register a set of CMTPATH entries, with the context
4305        information.
4306       
4307        * src/cmt_system.cxx (is_home_package): Add is_home_package and
4308        is_user_context_package query functions.
4309
4310        * src/cmt_system.cxx (get_cmt_site): Default site is empty
4311        (instead of LAL)
4312
4313        * src/cmt_symbol.cxx (print_clean): Suppress some obsolete
4314        print_tabs () formattings. Apply unset instead of unset for
4315        aliases as well.
4316       
4317        * src/cmt_symbol.cxx (action): Add special treatment for CMTXXX
4318        environment variables : the new setting has to be taken into
4319        account as soon as it is parsed.
4320
4321        * src/cmt_selector.cxx (create): remove some debug code.
4322
4323        * src/cmt_generator.cxx (build_default_makefile): Produce only
4324        Makefile on Unix and only NMake on Windows.
4325
4326        * mgr/requirements: Renaming new script_launcher fragments into
4327        application_launcher
4328
4329        * src/cmt.h (class Cmt): Added Use* use arguments to configure_xxx
4330        functions to transfer.
4331       
4332        Added use_user_context_requirements () to include post-context
4333        requirements file.
4334
4335        Added the static value primary_tag to store the primary tag.
4336       
4337
4338        * src/cmt_generator.cxx (build_default_makefile): Create Makefile
4339        only un Unix and NMake only on WIN32
4340
43412001-10-24  Christian Arnault  <carnault@lxplus038.cern.ch> 55
4342
4343        * src/cmt_parser.cxx (parser): add the recursive property to
4344        action_show_path.
4345
4346        * src/cmt_system.h (class CmtSystem):
4347        * src/cmt_system.cxx (get_user_context_package):
4348        * src/cmt_system.cxx (is_user_context_package):
4349        * src/cmt_use.cxx (add):
4350        (show_all):
4351        (class use_action_iterator):
4352        (reach_package):
4353        (add):
4354        * src/cmt_parser.cxx (configure):
4355        * src/cmt_parser.cxx (parser):
4356        * src/cmt_parser.cxx (parse_arguments):
4357        * src/cmt_parser.cxx (configure_user_context):
4358        * src/cmt.h (class Cmt):
4359
4360        Adding user_context equivalent of CMTHOME support for post
4361        requirements file. The corresponding env. var. is CMTUSERCONTEXT.
4362        The complete scheme for supporting PRE-parsed HOME requirements
4363        file is exactly copied to those POST-parsed files.
4364
4365        * mgr/requirements:
4366        * fragments/script_launcher_header:
4367        * fragments/script_launcher:         
4368        * fragments/script_launcher_trailer: Introduce a new document
4369        generator for launching scripts. The same convention as the
4370        check_application is reused, for pre-action, argument passing and
4371        post-action. Several scripts (specified in the source list of the
4372        document) can be executed in sequence.
4373
4374        * src/cmt_use.cxx (class use_action_iterator):
4375        * src/cmt_system.cxx (is_home_package):
4376        * src/cmt_system.h (class CmtSystem): Add the is_home_package
4377        function to encapsulate the syntax of a HOME package (and apply it
4378        in Use::use_action_iterator)
4379
4380        * src/cmt_symbol.cxx (action): Prepare specific actions when the
4381        parsed symbol is one of the CMTXXX standard symbols. So far
4382           CMTHOME -> re-configure home.
4383
4384        * src/cmt_parser.cxx (parser): apply use_home_requirements right
4385        after reading CMT requirements file (ie. before reading current
4386        package)
4387
4388        * src/cmt_parser.cxx (configure_home): understand the possible
4389        "set CMTHOME" declarations (but keep $CMTHOME)
4390
4391        * src/cmt_parser.cxx (reach_current_package): * src/cmt_system.cxx
4392        (get_cmt_paths): Restore the automatic addition of "current
4393        package" in the CMTPATH list.
4394
4395        * src/cmt_parser.cxx (parse_arguments): bad parsing of the
4396        -home=xxx argument
4397
4398       
4399
44002001-10-23  Christian Arnault  <carnault@lxplus007.cern.ch> 54
4401
4402        * mgr/Makefile (demo): Need to add CMTPATH towards ${CMTROOT}/demo
4403        since CMTPATH to current package is no longer supported !!!
4404
4405        * fragments/nmake/check_application (check):
4406        * fragments/nmake/cleanup_application:
4407        * fragments/nmake/application_header:
4408        * fragments/nmake/application:
4409        * fragments/application:
4410        * fragments/application_header:
4411        * fragments/cleanup_application:
4412        * fragments/check_application (check):
4413        * mgr/requirements: Create a new standard macro
4414        "application_suffix" for making possible to change the .exe
4415        default suffix of applications
4416
44172001-10-22  Christian Arnault  <carnault@lxplus026.cern.ch> 53
4418
4419        * src/cmt_parser.cxx :
4420        * src/cmt_system.cxx : Suppress the automatic addition of current
4421        package's path into CMTPATH.
4422
4423        * mgr/Makefile: Change the method to rebuild
4424        cmt_dependencies by copying what is obtained from CVS. Rebuild it
4425        manually when needed.
4426
44272001-10-19  Christian Arnault  <carnault@lxplus025.cern.ch> 52
4428
4429        * fragments/make_setup (config): Creating uses.log needs to use an
4430        intermediate temporary file
4431
4432        * src\setup.[c]sh : Avoid re-definition of CMTCONFIG
4433
4434        * src\cmt_use.cxx (add): temporarily discard the mecanism by which
4435        uses.log files are read before the requirements files.
4436
4437        * src\cmt_system.cxx (is_version_directory): returns -1 for fields
4438        that were wildcarded
4439
4440        * src\cmt_use.cxx (add):
4441        * src\cmt_use.cxx (need_new):         
4442        * src\cmt_use.cxx (BestFitSelector::operate): Start the
4443        implementation of priority control between explicit use
4444        specification over wildcarded ..
4445
4446        * src\cmt_parser.cxx (reach_current_package): Change the value of
4447        the CMTPATH for the current package once it has been reached (but
4448        before reading its requirements file)
4449       
4450        * src\cmt_parser.cxx (install_setup_scripts): (improvement) Add the transfer of
4451        arguments towards cmt.exe into setup.bat
4452
4453        * src\cmt_system.cxx (get_cmt_paths): (bug fix) path_sources was
4454        not cleared as paths.
4455        Prepend "current path" to the path list under "current package".
4456
4457        * src\cmt_parser.cxx (parse_arguments): (bug fix) Suppress
4458        enclosing quotes around cmt.exe arguments so that setup.bat can
4459        transmit arguments properly
4460
4461        call setup.bat "-tag_add=a,b,c"
4462
44632001-10-18  Christian Arnault  <carnault@lxplus047.cern.ch> 51
4464
4465        * src/cmt_parser.cxx (set_standard_macros): Set current_tag to
4466        CMTBIN when in CMT itself (not complete yet)
4467       
4468        * src/cmt_generator.cxx (build_dependencies): Use CMTBIN for CMT
4469        itself (instead of current_tag) well this should be cured later on
4470        to ensure that current_tag is always set to CMTBIN for CMT itself
4471
4472        * src/cmt_version.h (CMTVERSION): install v1r10 (not tagged yet)
4473
4474        * mgr/cmt_system.sh: Do not try to use AFS on Darwin and LynxOS.
4475
4476        * src/setup.[c]sh: Define CMTBIN as `uname` on Unix and CMTCONFIG
4477        as `cmt_system.sh`
4478
4479        * src/cmt_symbol.cxx (show_macro): the trailing space must be
4480        added only for WIN32 !!
4481
44822001-10-17  Christian Arnault  <carnault@lxplus047.cern.ch> 50
4483
4484        * src/cmt_symbol.cxx (show_macro): add a trailing space on all
4485        macro definitions (to avoid problem of trailing backslash)
4486       
4487        * src/cmt_parser.cxx (set_standard_macro): remove the insertion of
4488        trailing spaces after the last backslash for WIN32/NMake
4489
4490        * src/constituents.make (all): (bug fix) re-install the
4491        build_library_links action for the all target
4492
44932001-10-11  Christian Arnault  <carnault@lxplus021.cern.ch> 49
4494
4495        * src/cmt_version.h: Tagging for v1r9p20011011
4496       
4497        * fragments/library: (bug fix) transmit both -tag=<tag> and
4498        -tag_add=<tag_list> to cmt_make_shlib_common.sh
4499
45002001-10-11  Christian Arnault  <arnault@asc.lal.in2p3.fr> 48
4501
4502        * src/cmt_parser.cxx: remove debug print options
4503
45042001-10-10  Christian Arnault  <arnault@asc.lal.in2p3.fr> 47
4505
4506        * src/cmt_parser.cxx (parse_arguments): fix problems in multiple
4507        tag management.
4508
4509        converge in the question of HOME requirements file to support
4510          - no default
4511          - define the path to the HOME requirements file in ${CMTHOME}
4512
4513        converge in the arguments for manipulating the extra tags
4514          -tag=<tag>
4515          -tag_add=<tag-list>
4516          -tag_remove=<tag-list>
4517
45182001-10-03  Christian Arnault  <carnault@lxplus036.cern.ch> 46
4519
4520        * src/constituents.make (makefilesclean): Make all action lists
4521        run in one single shell (ie. use ;\ everywhere)
4522
4523        Make an explicit target for build_library_links
4524        Make it called before any group
4525
45262001-10-02  Christian Arnault  <carnault@lxplus007.cern.ch> 45
4527
4528        * src/cmt_awk.h (class Awk): add a state variable
4529        (m_continuation_allowed) which when true, take into account the
4530        trailing backslashes, so as to first accumulate continued lines
4531        into one. Add the allow_continuation method to base Awk class.
4532
45332001-10-01  Christian Arnault  <carnault@lxplus034.cern.ch> 44
4534
4535        * src/cmt_cvs.cxx (class CvsImplementation): Bug in
4536        checkout_from_requirements. Did not accept leading spaces on use
4537        statements.
4538
45392001-09-27  Christian Arnault  <carnault@lxplus036.cern.ch> 43
4540
4541        * src/cmt_version.h: Tagging for v1r9p20010927
4542
4543        * src/setup.zsh: add the -begin option to the auto-expansion.
4544
4545        * src/cmt_use.cxx (show_all): Visualize the HOME package when
4546        applicable.
4547
4548        * src/cmt_system.cxx (get_home_package): (also do some formatting
4549        cleanup)
4550       
4551        * src/cmt_system.h (class CmtSystem): Adding get_home_package
4552        function to build the name given to the HOME package (provides the
4553        HOME requirements file)
4554
45552001-09-26  Christian Arnault  <arnault@asc.lal.in2p3.fr> 42
4556
4557        * src/cmt_parser.cxx (do_show_macro): Improving error detection on
4558        cmt show macro/set
4559
4560        * doc/CMTDoc.html: Improve the doc.
4561
4562        * src/cmt_parser.cxx (print): produce the CMTEXTRATAGS environment
4563        variable, at setup time.
4564                             (parse_arguments): take into account this new
4565        env.var. to retreive previous extra tags.
4566
4567        * src/Makefile.header: Add the CMTEXTRATAGS environment variable
4568        to propagate additional tags to Make.
4569       
4570        * fragments/make_setup:
4571        * fragments/constituent:
4572        * src/Makefile.header:
4573        * src/constituents.make: Adding  -tag=$(tags) to all calls to cmtexe
4574
4575        * src/cmt_system.h (class CmtSystem): Adding the bool testenv
4576        (name) function to test if an environment variable is defined or
4577        not.
4578
4579        * src/cmt_parser.cxx (use_home_requirements):
4580        * src/cmt.h (class Cmt): Adding support of CMTHOME environment
4581        variable for specifying home requirements file. Default value will
4582        be ${HOME}. And can be overridden through the -home=<directory>
4583        global option. An explicit empty value (or set to eg. NONE) will
4584        discard the feature
4585
4586        * src/cmt_parser.cxx (parse_arguments): Implement the tag list
4587        (comma separated list of extra tags) option -tag=<tag-list> to
4588        specify a list of tags to validate.
4589
45902001-09-25  Christian Arnault  <carnault@lxplus034.cern.ch> 41
4591
4592        * src/setup.csh: fixed PATH settings (may accept a path with space
4593        characters eg. for Darwin)
4594       
4595        * mgr/cmt_system.sh: Insert the knowledge of Darwin OS (Mac OS
4596        X). The default CMTCONFIG will be Darwin.
4597
4598        * src/constituents.make (makefilesclean): Ensure that removal of
4599        makefile fragments is performed AFTER all cleanup uperations.
4600
4601        * src/cmt_parser.cxx (use_home_requirements): Add the systematic
4602        search for a requirements file located in ${HOME}. This
4603        requirements file when found, is systematically parsed AFTER the
4604        requirements file of the current package has been parsed (so as to
4605        give the highest precedence to its statements)
4606       
4607        (do_remove_library_links): Upgrade "remove library_links" to make
4608        it compliant to the algorithm used in "build library_links"
4609
46102001-09-24  Christian Arnault  <carnault@lxplus014.cern.ch> 40
4611
4612        * src/cmt.h (class Cmt): * src/cmt_parser.cxx (configure): Add a
4613        global configure_error variable to store the possible error
4614        produced during the configuration.
4615        (install_test_setup_scripts): Add the -quiet option to the build
4616        temporary_name command used in setup script generation.
4617
4618        * src/cmt_error.cxx (get_last_error):
4619        * src/cmt_error.h (class CmtError): Add get_last_error to retrieve
4620        the formatted text of the last error.
4621
4622        * src/cmt_symbol.cxx (create):
4623                             (all_print):
4624                             (print):
4625                             (build):
4626        * src/cmt_parser.cxx (select): Understand the "path" statement as
4627        a complete re-definition of a path-like variable.
4628
4629        * src/cmt_system.cxx (add_cmt_path):
4630        * src/cmt_error.cxx (class Error):
4631        * src/cmt_error.h (class CmtError): Adding "path not found" error
4632        code, for CMTPATH checking.
4633
4634        * src/cmt_pattern.cxx ((const cmt_string& name): Return a warning
4635        for pattern not found.
4636
4637        * src/cmt_error.h (class CmtError):
4638        * src/cmt_error.cxx (class Error): Adding "pattern not found" error
4639        code, for showing diagnostics in "cmt show pattern"
4640
4641        * src/cmt_parser.cxx (do_show_macro): Return a warning for symbol
4642        not found.
4643
4644        * src/cmt_error.h (class CmtError):
4645        * src/cmt_error.cxx (class Error): Adding "symbol not found" error
4646        code, for showing diagnostics in "cmt show macro/set"
4647
46482001-09-19  Christian Arnault  <carnault@lxplus045.cern.ch> 39
4649
4650        * mgr/cmt_make_shlib_common.sh : return a status value which
4651        reflects the success or failure of the shared library build
4652        command.
4653
4654        * src/cmt_cvs.cxx (class CvsImplementation): Discard the versions
4655        specified with wild cards in the recursive checkout.
4656
4657        * src/cmt_triggers.cxx: Protect the error messages in the trigger
4658        facility by Cmt::quiet.
4659
4660        * src/cmt_constituent.cxx (class constituents_action_iterator):
4661        temporarily discard the -triggers option.
4662
46632001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38
4664
4665        Tagging v1r9p2001p0824
4666
46672001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38
4668
4669        * mgr/cmt_system.sh: Improve the reliability of the cmt_system.sh
4670        script against variants of "fs sysname"
4671
46722001-08-23  Christian Arnault  <carnault@lxplus030.cern.ch> 37
4673
4674        * src/cmt_cvs.cxx (class CvsImplementation): Since the tag filter
4675        is back to cmtcvs.cxx, the temporary forced tag filter in CMT is
4676        removed.
4677
4678        * src/setup.zsh: upgrade the completion for the broadcast command.
4679
4680        * src/cmt_parser.cxx (do_broadcast): Make the -select independent
4681        of the -local or -global options. This is achieved by adding a
4682        "path_selections" list only managed by the -depth, -local -global
4683        modifiers while the "selections" list is managed by the -select
4684        modifier. The -exclude is left unchanged.
4685
46862001-08-22  Christian Arnault  <carnault@lxplus024.cern.ch> 36
4687
4688        * src/cmt_cvs.cxx (class CvsImplementation): Add the possibility
4689        to transmit a flag to the CVS pluggin, by inserting a /cmtcvstest
4690        in the module name to import. This will have to be decoded by the
4691        CVS pluggin itself !!
4692
46932001-08-21  Christian Arnault  <carnault@lxplus013.cern.ch> 35
4694
4695        * src/setup.tcsh: Improving the tcsh completion mechanism (for cmt co).
4696
4697        * src/setup.zsh: Improving the zsh completion mechanism (for cmt co).
4698
4699        * src/cmt_cvs.cxx (class CvsImplementation): Converging on HEAD
4700        management strategy...
4701
4702        Starting implementation of the Atlas filter for CVS tags right
4703        into cmt_cvs.cxx rather than inside the CVS pluggin...
4704
47052001-08-20  Christian Arnault  <carnault@lxplus028.cern.ch> 34
4706
4707        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
4708        recursive checkout process
4709
47102001-08-20    <arnault@lal.in2p3.fr> 33
4711
4712        * src\cmt_cvs.cxx (class CvsImplementation): Reorganizing some CVS operations:<ul>
4713          <li> Apply the CMTCVSOFFSET env. variable to all actions (tags, branches, subpackages)
4714          <li> cleanup checkout algorithms (remove some obsolete variables)
4715          <li> add the -requirements <requirements-file-path> option to checkout according to
4716            a set of use statements.
4717          <li> remove the inheritance to Awk of CvsImplementation to split the filter into 2
4718            phases (implemented as 2 separated Awk derived classes) RecursivePass1 and
4719            RecursivePass2.</ul>
4720
47212001-08-16  Christian Arnault  <carnault@lxplus046.cern.ch> 32
4722
4723        * src/cmt_symbol.cxx (print): Bug in path_remove when the
4724        specified path variable only contained one item : the remove
4725        operation was not applied.
4726
47272001-07-20  Christian Arnault  <arnault@lal.in2p3.fr> 31
4728
4729        * src/cmt_version.h: setting the patch v1r9p20010720
4730
47312001-07-20  Christian Arnault  <carnault@lxplus019.cern.ch> 30
4732
4733        * src/cmt_regexp.h (cmt_regexp::begin): Add an optional pos
4734        argument to the begin method.
4735
4736        * doc/CMTDoc.html: Improvements, English cleanup...
4737
47382001-07-18  Christian Arnault  <carnault@lxplus041.cern.ch> 29
4739
4740        * src/cmt_cvs.cxx (CvsImplementation::checkout_package): Change
4741        the mechanism to get top files, since the " -d . " does not work
4742        anymore when CVSROOT is set to kserver!!!!
4743
47442001-07-16  Christian Arnault  <carnault@lxplus030.cern.ch> 28
4745
4746        * doc/CMTDoc.html: Old PREFIX fragment variable has been replaced
4747        by FILEPATH long ago. This was not upgraded in the doc.
4748
4749        * fragments/constituent: The -f <file> MUST be specified BEFORE
4750        other Make flags!!
4751
4752        * fragments/dependencies: Tried to comment out the dependencies to
4753        cmt_path.make etc... but it confused the dependencies fragment
4754        production. Uncomment it but need to understand the side effect.
4755
47562001-07-09  Christian Arnault  <carnault@lxplus012.cern.ch> 27
4757
4758        * src/cmt_generator.cxx (build_readme): Bug: the VERSION variable
4759        was not used for installing the readme_trailer (although the
4760        documentation was mentioning it)
4761
47622001-07-04  Christian Arnault  <carnault@lxplus034.cern.ch> 26
4763
4764        * src/cmt_version.h: setting the patch v1r9p20010704
4765
47662001-07-02  Christian Arnault  <carnault@lxplus034.cern.ch> 25
4767
4768        * fragments/dependencies: Cleaning some old debug printouts.
4769
4770        * src/cmt_cvs.cxx (class CvsImplementation): Bug in replacing the
4771        wild card expression. v5r* has to be replaced by v5r0 while v5*
4772        has to be replaced by v5 in case no matching tag exists in the CVS
4773        repository.  Other bug : All split operations should be performed
4774        against " \t" (include tab character)
4775
47762001-06-29  Christian Arnault  <carnault@lxplus047.cern.ch> 24
4777
4778        * src/cmt_cvs.cxx (class CvsImplementation): Final Validation of
4779        the change in the implementation of the m_installed stack used to
4780        avoid recursion due to dependency cycles.
4781
47822001-06-22  Christian Arnault  <carnault@lxplus020.cern.ch> 23
4783
4784        * src/cmt_cvs.cxx (class CvsImplementation): doing some
4785        optimizations for the big checkout operations.
4786
4787        * src/cmt_parser.cxx (do_config): Remove .[n]make files also from
4788        the binary directory.
4789
4790        * src/cmt_cvs.cxx (class CvsImplementation): Always fetch the cmt
4791        branch at HEAD even if the checkout operation is applied to a
4792        required tag (temporary feature).
4793
47942001-06-18    <arnault@lal.in2p3.fr> 22
4795
4796        * src\cmt_cvs.cxx (class CvsImplementation): insert a space
4797        between top tags and other tags.
4798
4799        * mgr\cmt_make_shlib.bat: Write extra options received through
4800        arguments into a temporary option file, used by @<optionfile> to
4801        resolve line-too-long prolems.
4802
4803        * fragments\nmake\cpp_library:
4804        * fragments\nmake\cpp:
4805        Add the /Tp qualifier for allowing non-standard file suffixes.
4806
48072001-06-05  Christian Arnault  <arnault@lal.in2p3.fr> 22
4808
4809        * src/cmt_use.cxx (class use_action_iterator): Default to the
4810        -no_auto_import was to keep the most recent specification. Change
4811        this to always request auto_import by default, (unless otherwise
4812        specified)
4813
48142001-06-01  Christian Arnault  <arnault@lal.in2p3.fr> 22
4815
4816        * src/cmt_parser.cxx (do_broadcast): Bug fix in do_broadcast: the
4817        -begin option wrongly implied the -global option.
4818
48192001-06-13    <arnault@lal.in2p3.fr> 22
4820
4821        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
4822        strategy for getting version tags from the repository:
4823          o If a request specifies a tag which is not applied to the
4824            requirements file, the specified tag is used to create the
4825            version directory but the HEAD is used in the repository.
4826          o CvsImplementation::show_cvs_infos () :
4827            stores all received infos into xxx_info corresponding
4828            local properties. Thus this method is only called once per
4829            package.
4830          o Error messages are really obtained from the error_info field.
4831
48322001-05-30  Christian Arnault  <arnault@lal.in2p3.fr> 22
4833
4834        * src/cmt_generator.cxx (build_document_makefile):
4835        * src/cmt_system.cxx (get_dot_suffix): fix bug for file_names
4836        without any suffix
4837
4838        * src/cmt.h & src/cmt_parser.cxx (set_standard_macros): Add a
4839        state standard_macros_done to protect against multiple calls to
4840        set_standard_macros.
4841
48422001-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 22
4843
4844        * src/cmt_cvs.cxx (class CvsImplementation): display the tags in a
4845        one-per-line basis instead of space separated when doing cmt
4846        cvstags.
4847
4848        * src/cmt_use.cxx (operate): Make the version selector operator a
4849        little bit more quiet...
4850
48512001-05-25  Christian Arnault  <arnault@lal.in2p3.fr> 22
4852
4853        * mgr/Makefile (demo): improve the gmake check action in the demo
4854        target.
4855
4856        * src/cmt_use.cxx (fill_macro_all): build use_xxx standard macros
4857        using macro_append instead of macro.
4858
48592001-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 22
4860
4861        * src/cmt_parser.cxx (do_broadcast): Fix the default (-local)
4862        option to act as -depth=1.
4863        Improve some error messages.
4864
48652001-05-21    <arnault@lal.in2p3.fr> 21
4866
4867        * src\setup.bat: Improved skeleton for setup.bat. Base it on
4868        CMTBIN rather than on CMTCONFIG. Do not override CMTCONFIG if
4869        defined by the user. Do not care about PATH for Visual tools.
4870
4871        * mgr\install.mak: change the strategy for building the setup.bat
4872        script for CMT itself at INSTALL time. Now copy ..\src\setup.bat
4873        skeleton.
4874
4875        * mgr\requirements: Fix WIN32/VisualC tag definitions and PATH
4876        settings for cleaner handling of default tag overriding.
4877
4878        * src\cmt_use.cxx (operate): Implement the algorithm for using
4879        aliases to alternate version specification in uses.
4880
4881-------------------------------------------------------------------------------------
48822001-05-18  Christian Arnault  <arnault@lal.in2p3.fr> 21
4883
4884        -> Tag CMTv1r9p20010521
4885
4886        * src/cmt_use.cxx (show_sub_uses): Start the implementation of
4887        version_alias and path_alias for equivalencing two version naming
4888        policies.
4889
4890        * src/cmt_cvs.cxx (class CvsImplementation): Adding the -o offset
4891        option to cmt checkout for specifying a global offset to the base
4892        CVS repository. This offset will be prepended to all modules
4893        during the various CVS operations.
4894
4895        the m_offset attribute is added to the CvsImplementation class.
4896
4897        (class CvsImplementation): Improve protection against CVS modules
4898        not found.
4899       
4900        (class CvsImplementation): Added the --help option the cmt checkout.
4901
49022001-07-10  Christian Arnault  <carnault@lxplus017.cern.ch> b-21
4903
4904        * mgr/requirements: add the -tag=$(tag) option to the
4905        build_dependencies macro.
4906
4907        * fragments/dependencies: take the improvements into account.
4908
4909        * src/cmt_generator.cxx (build_dependencies): Improve the
4910        dependency builder: re-generate all entries of the
4911        <constituent>_dependencies.make that are missing from the complete
4912        source list (thus regenerate it when it is empty).
4913        Optimize the file scan for getting the new source list.
4914
4915        * src/cmt_parser.cxx (do_build_dependencies): Dynamically shifts
4916        arguments of the build dependencies command to keep only the
4917        new-source-list. The complete command being
4918        "cmt <args> build dependencies <constituent-name> <new-source-list>"
4919       
4920        (do_config): drop all makefile fragments from the mgr/cmt
4921        directory AND from the binary directory.
4922
49232001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 20
4924
4925        * Moving to v1r8
4926       
4927       
49282001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 19
4929
4930        * src/cmt_deps_builder.cxx (): Augmented local internal
4931        line buffer (from 1024 to 16384).
4932
4933        * doc/CMTDoc.html: document the new &lt;package>_root macro
4934
4935        * src/cmt_parser.cxx (set_standard_macros) (get_best_form): Define
4936        a new set of standard macros using the pattern <package>_root
4937        similar to <PACKAGE>ROOT except that this new definition uses the
4938        get_best_form, with a relative path to the package. The
4939        <PACKAGE>ROOT macro is restored to the previous convention, that
4940        it uses the absolute path.
4941       
4942        * src/cmt_use.cxx (fill_includes_macro): Adapt the
4943        fill_includes_macro to use the new <package>_root standard macro
4944
4945
49462001-05-10  Christian Arnault  <arnault@lal.in2p3.fr> 18
4947
4948        * src/cmt_parser.cxx (do_broadcast): Add the -begin=<pattern>
4949        option to start the broadcast loop from a given package. This
4950        option can be combined with other options such as -select or
4951        -exclude.
4952
4953        * src/cmt_generator.cxx (filter_paths): Suppress two unused
4954        variables.
4955
4956        * src/cmt_use.cxx (add): Bug fixing: during the discovery of
4957        versions requested for a given package, the discarded versions
4958        were not correctly replaced by the finally selected version,
4959        especially in the Use::get_paths method. The
4960        Use::get_selected_version has been added to obtain the effective
4961        replacement for a discarded version.
4962
4963        * fragments/check_application: suppress the ". setup.sh" before
4964        application run.
4965
49662001-05-04  Christian Arnault  <carnault@lxplus023.cern.ch> 17
4967
4968        * src/cmt_parser.cxx (set_standard_macros): The production of all
4969        use_xxx standard macros now is based on a "macro_append" keyword
4970        instead of "macro", since "macro" resets all previous
4971        definitions. Therefore if the user's requirements did augment
4972        those use_xxx macros, these specifications would be ignored.
4973       
4974        (do_broadcast): Set the -local option to broadcast the
4975        default. Add the -global option to revert to the old default (with
4976        no selection and to any depth)
4977
49782001-05-03  Christian Arnault  <carnault@lxplus019.cern.ch> 17
4979
4980        * src/cmt_symbol.cxx (add_value_to_list): A new macro or set
4981        keyword resets (discards) all previous definitions for the
4982        corresponding symbol.
4983
4984        * src/cmt_symbol.h (class SymbolValueList): Added an attribute
4985        discarded for symbol resetting.
4986
4987        * src/cmt_parser.cxx (print_macros): Exclude scripts from macros
4988        defined in the $(tag).make file.
4989
49902001-04-27  Christian Arnault  <carnault@lxplus022.cern.ch> 16
4991
4992        * src/cmt_parser.cxx (get_best_form): Validate the compression
4993        algorithm for paths to packages (only for the macro <PACKAGE>ROOT
4994        - this is still not true for the <PACKAGE>ROOT environment
4995        variable) into a relative form when it is shorter than the
4996        absolute form.
4997
4998        * src/cmt_system.cxx (compress_path): Fix the algorithm for
4999        compressing the patterns "aaaa/xxxx/../bbbb" into aaaa/bbbb.
5000
5001        * src/cmt_generator.cxx (filter_paths): use
5002        CmtSystem::compress_path instead of duplicating its algorithm for
5003        erasing "/aaa/.." patterns
5004
50052001-04-25  Christian Arnault  <carnault@lxplus022.cern.ch> 15
5006
5007        * src/cmt_parser.cxx (set_standard_macros): Prepare the production
5008        of <PACKAGE>ROOT macros as relative paths rather than absolute
5009        ones, when the relative expression is shorter than the absolute
5010        one. Temporarily, trigger that feature by setting the
5011        CMTTESTPREFIX environment variable until absence of side effects
5012        is confirmed.
5013
50142001-04-18  Christian Arnault  <carnault@atlas009.cern.ch> 15
5015
5016        * src/cmt_generator.cxx (build_readme): bug when generating the
5017        readme_trailer fragment : the PACKAGE variable should be reset to
5018        current.
5019
50202001-04-11  Christian Arnault  <arnault@lal.in2p3.fr> 15
5021
5022        * src/cmt_generator.h (class Generator):
5023        * src/cmt_parser.cxx (do_build_readme):
5024        * src/cmt.h (class Cmt): do_build_readme now propagates argument list
5025
5026        * fragments/readme_trailer:
5027        * src/cmt_generator.cxx (build_readme): Added DATE and USER information when building the README.html file. readme_trailer fragment updated accordingly.
5028       
5029        (build_readme): Add the -url=<url> argument to the cmt build
5030        readme command. The specified URL will be used in place of the
5031        package path when generating the URL for used packages.
5032
50332001-04-18  Christian Arnault  <arnault@lal.in2p3.fr> 14
5034
5035        * src/cmt_symbol.cxx (build): In all builder objects, symbol value
5036        lists registered by discarded Uses are now ignored.
5037
5038        * src/cmt_symbol.h (class SymbolValue): cleanup a comment.
5039
5040        * src/cmt_symbol.cxx (print): protect setup script execution
5041        against missing files.
5042
50432001-04-10  Christian Arnault  <arnault@lal.in2p3.fr> 13
5044
5045        * src/cmt_generator.cxx (build_readme):
5046        * fragments/readme_use: building readme.html requires to know the
5047        mgr/cmt style of each used package. This fragment now requires a
5048        fourth variable MGRSTYLE which reflects the use->mgr_style
5049        attribute. Generator::build_readme fills in this new variable.
5050
50512001-04-06  Christian Arnault  <arnault@lal.in2p3.fr> 12
5052
5053        * src/cmt_parser.cxx
5054        (reach_current_package): Use CmtSystem::getenv instead of base getenv
5055       
5056        * src/cmt_symbol.cxx (action): Now really private stuff is
5057        selected when access is at UserMode and scope is Private.
5058
5059        * src/cmt_use.cxx (add): This method does not need to maintain
5060        current scope and access mode any longer.
5061
5062        * src/cmt_parser.cxx (parse_requirements): Cmt::parse_requirements
5063        now manages the AccessMode and Scope when recursing into
5064        requirements files of used packages.
5065
5066        Cmt::scope          handles the sticky state provided by private/public statements
5067        Cmt::current_access handles the access mode that reflects the situation of the user
5068
5069        * src/cmt_parser.h (enum): introduce the AccessMode to distinguish
5070        between DeveloperMode (when pwd is in the current package
5071        directory) and UserMode (otherwise).
5072
5073        * src/cmt.h (class Cmt): Cmt::current_mode is now current_access
5074        and is of type AccessMode
5075
5076        * src/cmt_parser.cxx (reach_current_package): Use
5077        CmtSystem::getenv instead of base getenv
5078
5079        * src/cmt_use.cxx (Use::get_paths):
5080        * src/cmt_pattern.cxx (Pattern::apply ()) : bug in computing the
5081        path between two Uses. The result now includes the current Use.
5082
50832001-04-05    <arnault@lal.in2p3.fr> 12
5084
5085        * src\cmt_tag.cxx (Tag::add(const cmt_string& name, int priority):
5086        clear a newly created Tag object (to deal with the reuse of old
5087        objects)
5088
5089        * src\cmt_pattern.cxx (Pattern::add) : clear a newly created
5090        pattern object (to deal with the reuse of old objects)
5091
5092        * src\cmt_use.h (class Use): Add Use::author_action and
5093        Use::manager_action to fill in the author and manager information.
5094
5095        * src\cmt_parser.cxx (select): fill in author and manager values
5096        with the complete line. When several author and manager statements
5097        are provided, fill in as several lines (separated with a new-line).
5098
5099        * src\cmt_generator.cxx (analyze_file (const Constituent&
5100        constituent, const cmt_string& file) : production of objects for
5101        libraries and applications is strictly identical.
5102
51032001-04-03  Christian Arnault  <arnault@lal.in2p3.fr> 11
5104
5105        * src/cmt_constituent.cxx (clear): constituent.parameters was not
5106        cleared in Constituent::clear
5107
5108        * src/cmt_symbol.cxx (build): add cleanup ValueList objects after
5109        their addition for ensuring a really new value (due to cmt_string
5110        optimizing)
5111
51122001-04-03  Christian Arnault  <carnault@atlas006.cern.ch> 10
5113
5114        * mgr/Makefile: Operate the demo targets on different make action
5115        lines
5116
5117        * src/Makefile.header: Added -tag=$(tag) to cmt actions
5118
5119        * fragments/generator_header: create the output directory if
5120        needed
5121
51222001-04-02    <arnault@lal.in2p3.fr> 9
5123
5124        * fragments\nmake\constituent: added the -tag=$(tag) option to cmt
5125        build actions
5126
5127        * src\cmt_parser.cxx (parser): show_constituentxxx recursively
5128        reads used requirements files
5129
5130        * src\cmt_pattern.cxx (Pattern::apply () const): protection added
5131        for the case where the pattern is applied to the package that
5132        defines it.
5133
51342001-03-29  Christian Arnault  <carnault@atlas005.cern.ch> 8
5135
5136        * src/cmt_use.cxx (get_paths):
5137        * src/cmt_use.h (class Use):
5138        * src/cmt_pattern.h (class IgnorePattern):
5139        * src/cmt_pattern.cxx (const apply): Bug in apply global patterns
5140        : a pattern defined in one package should only be applied to the
5141        Uses that are on one of the paths between the current Use and the
5142        one wher the pattern is defined (and not to the Uses that never
5143        pretend to inherit that pattern!!!)
5144
5145        This required to implement the Use::get_paths which fills in the
5146        inclusive list of all Uses that are between two Uses.
5147
51482001-03-27  Christian Arnault  <carnault@lxplus017.cern.ch> 7
5149
5150        * fragments/dependencies: protection against missing dependency
5151        make fragment during clean operations.
5152
5153        * src/cmt_constituent.cxx (class constituents_action_iterator):
5154        the -suffix= option was hidden by the user variable specification
5155        while parsing the constituent parameters.
5156
51572001-03-23  Christian Arnault  <carnault@atlas007.cern.ch> 6
5158
5159        * mgr/requirements: clean up WIN32 tag variants definitions
5160
5161        * src/Makefile.header (setup.make): Display of the target in case
5162        of target not found (.DEFAULT)
5163
5164        * fragments/make_setup (csh): few checks
5165
5166        * fragments/installer: add the creation of $(install_dir) if
5167        needed
5168
51692001-03-21  Christian Arnault  <arnault@lal.in2p3.fr> 5
5170
5171        * src/cmt_parser.cxx (parse_arguments): When the tag specified in
5172        the command line arguments (using -tag=<tag>) is the same as
5173        CMTCONFIG, then still validate the tag given by uname
5174
5175        * fragments/dependencies: generate
5176        ${CONSTITUENT}_dependencies.make into $(bin)
5177
5178        * fragments/constituent: generate ${CONSTITUENT}.make into $(bin)
5179
5180        * src/cmt_constituent.cxx (parse):
5181        * src/cmt_constituent.h (class Constituent): Added the two-step
5182        parsing of the constituents specifications : first stage during
5183        parsing of the requirements file, parameters are simply stored in
5184        the constituent object and not interpreted. Second stage : after
5185        building the standard macros (once requirements files have
5186        entirely been read) then constituent objects are parsed.
5187
5188        * src/cmt_parser.cxx: Add Constituent::parse_all in
5189        Cmt::set_standard_macros to finalize the constituent
5190        parsing. Install set_standard_macros in several additional actions
5191
5192
5193
51942001-03-16  Christian Arnault  <arnault@lal.in2p3.fr> 4
5195
5196        * src/cmt_cvs.cxx (class CvsImplementation): Get the files at the
5197        top directory when doing a cmt checkout. 
5198
5199        Only checkout at head for the top package (ie do not recurse at
5200        head) and when -r is not specified.
5201
5202        * src/cmt_symbol.cxx (resolve_value_for_macros): Perform the
5203        substitution of ${} to %% (or reverse) even if the env. var. is
5204        not defined in CMT.
5205
5206        * src/cmt_parser.cxx (install_setup_scripts): Setup scripts on
5207        Windows generate the temporary expansion script in
5208        %HOMEDRIVE%%HOMEPATH%.
5209
52102001-03-16  Christian Arnault  <carnault@atlas009.cern.ch> 3
5211
5212        * mgr/requirements: clean up variants for VisualC and
5213        VisualC/debug
5214
52152001-03-15    <arnault@lal.in2p3.fr> 2
5216
5217        * src\cmt_use.cxx (class use_action_iterator): Strange name
5218        conflict: the use_action_iterator::set method is in conflict with
5219        something else when the class is named "action_iterator" (is it a
5220        conflict with the same private class defined in Symbol.cxx ??)
5221
5222        * src\NMakefile.header (cmtexe): Fix for re-building cmt when
5223        cmt.exe does not exist.
5224
52252001-03-13  Christian Arnault  <arnault@lal.in2p3.fr> 1
5226
5227        * src/cmt_use.cxx (class action_iterator): Introducing the
5228        action_iterator class for managing the local expansion of macros
5229        in the syntax parser (similart to what was done in Symbol::action)
5230
5231        * src/cmt_generator.cxx (Generator::build_make_setup) when
5232        generating setup.make, the default value for constituents is
5233        extracted from the constituents macro.
5234
52352001-03-06  Christian Arnault  <arnault@lal.in2p3.fr>
5236
5237        * src/cmt_cvs.cxx (class CvsImplementation): Show both top tags
5238        and non-top tags in cmt cvstags.
5239
5240        * doc/CMT.htm: Addition of several slide shows (from Atlas)
5241
5242        * mgr/cmt_buildcvsinfos2.sh (error): The awk script had to be
5243        protected against multiple ocurrences of the /symbols/,/locks/
5244        pattern.
5245
5246        Implement both in python and in shell script the differntiated
5247        production of top tags and non-top tags. Top tags are the set of
5248        tags sharing the most recent CVS tagged version id (ie. the HEAD
5249        may be more recent)
5250
52512001-03-05    <arnault@lal.in2p3.fr>
5252
5253        * src\cmt_parser.cxx (do_build_library_links): Handle libraries
5254        specified as a full path in <package>_libraries
5255
5256        * src\cmt_parser.cxx (print_context):
5257        * src\cmt_symbol.cxx (all_print): Use one line per
5258        env. var. assignment when generating setup scripts (instead of ;
5259        separated instructions) . The latter style should be no longer
5260        needed since we use temporary files.
5261
5262        * src\cmt_parser.cxx (set_standard_macros): Add CMTCONFIG to the
5263        standard sets, so as to let it known as a plain "symbol"
5264
52652001-03-02    <arnault@lal.in2p3.fr>
5266
5267        * src\cmt_system.h: introduce the CmtSystem::ev_open () and
5268        CmtSystem::ev_close () to get the OS-dependent pattern for
5269        environment variable definition.
5270
5271        * src\cmt_symbol.cxx (resolve_value_for_macros): Substitute
5272        patterns ${xxx} or %xxx% to the appropriate OS-dependent pattern
5273        when producing "set" values only (this is only done when the
5274        pattern is not already the good one)
5275
5276        * src\cmt_parser.cxx (install_setup_scripts): Changed
5277        >>${tempfile} into >${tempfile} in setup scripts (fix a constraint
5278        in csh)
5279
52802001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>
5281
5282        * src/cmt_parser.cxx (do_build_temporary_name): Add the build
5283        temporary_name command to supply that missing function on various
5284        shells.
5285        (install_test_setup_scripts): Apply this new build service to
5286        setup scripts generation.
5287
5288        * src/Makefile.header: Needed a trailing end-of-line
5289
52902001-02-15  Christian Arnault  <arnault@lal.in2p3.fr>
5291
5292        * src/cmt_cvs.cxx (class CvsImplementation): Fix misuse of
5293        checkout_package arguments (confusion between package path and
5294        checkout directory)
5295
52962001-02-26    <arnault@lal.in2p3.fr>
5297
5298        * src\cmt_parser.cxx (install_test_setup_scripts): use mktemp for
5299        setup scripts.
5300
5301        * mgr\requirements: Suppress local private configuration of
5302        MSVC++. It has to be done previously to operate on CMT (even
5303        before making the INSTALL.bat)
5304
53052001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>
5306
5307        * src/cmt_deps_builder.cxx ((char* ptr,
5308                              state_def& state,
5309                              const cmt_string& dir_name,
5310                              int current_path_index,
5311                              const CmtSystem::cmt_string_vector& include_paths,
5312                              const CmtSystem::cmt_string_vector& substitutions,
5313                              CmtSystem::cmt_string_vector& all_deps,
5314                              CmtSystem::cmt_string_vector& deps)
5315        * src/cmt_generator.cxx ((const cmt_string& file_name)
5316
5317        Rollback recent change to work on cmt_strings rather than char* to
5318        restore speed.
5319
53202001-02-15  Christian Arnault  <arnault@lal.in2p3.fr>
5321
5322        * src/cmt_generator.cxx (build_dependencies): Restore the
5323        mechanism that takes into account the arguments, and the source
5324        list when -all_sources option is provided.
5325
5326        * mgr/requirements: change /machine:I386 into /machine:IX86 as
5327        link option for VisualC
5328
53292001-02-13    <arnault@lal.in2p3.fr>
5330
5331        * src\cmt_generator.cxx (build_dependencies): Do not require the
5332        source list from the arguments. Instead, get the sources directly
5333        from the constituents definition.
5334
5335        The "cmt build dependencies" now only requires the constituent name.
5336
5337        * src\cmt_deps_builder.cxx: Read files at once into a cmt_string
5338        and work from the text instead of reainf line by line from the file.
5339
5340        Install the detection of fortran include statements
5341
53422001-02-06    <arnault@lal.in2p3.fr>
5343
5344        * src\cmt_use.cxx: clean up space & tabs
5345
5346        * cmt_parser.cxx (parse_requirements_text): Abort the parser in
5347        case of error, but only for check configuration command.
5348
5349        * NMakefile.header (lex_echo): Add -quiet option to cmt command
5350        except cmt check configuration
5351       
5352        * constituents.nmake: Add -quiet option to cmt command
5353
53542001-01-30    <arnault@lal.in2p3.fr>
5355
5356        * all dsp fragments : suppress the Win32 Release
5357        configuration. Only keep the Win32 Debug. This makes possible the
5358        generation of msdev using the syntax cmt build msdev
5359        -tag=VisualCdbg
5360
53612001-01-30    <arnault@lal.in2p3.fr>
5362
5363        * mgr/cmt_buildcvsinfos.py: first attempt to make the cvs script
5364        written in Python
5365
5366        * mgr/requirements: Consistently base Windows tag on VisualC rather
5367        than WIN32
5368
5369        upgraded setup.tcsh setup.zsh
5370
5371        introduced cmt show include_dirs
5372       
5373        introduced cmt show constituent <name>
5374
5375        bug in Pattern::add : overridden patterns were not cleared.
5376
5377        cmt config must recursively get used packages (at least to get patterns)
5378
5379        introduced cmt show pattern_names (at least for completion mechanisms)       
5380          new action : action_show_pattern_names
5381
5382        experimental work started on build triggers
5383       
5384          macro build_triggers
5385                implied_library_prefix
5386                implied_library_sufffix
5387
5388          new library option -triggers
5389          new constituent attribute build_triggers
5390          new fragment dependencies_and_triggers for libraries
5391
5392        bug in cmt_system.cxx::scan_dir
5393
5394        Recursively get all requirements file in cmt config action
5395
5396
5397        Changed strategy for argument parsing error detection
5398       
53992001-01-30    <arnault@lal.in2p3.fr>
5400
5401        * cmt_use.cxx ((const cmt_string& from_path) : bug in detection of
5402        "use pack " without version specification at all (ie equiv. to
5403        *). We needed to check we are on a real CMT package.
5404
5405        * cmt_constituent.cxx (class action_iterator): Expand the macros
5406        before acting upon a constituent specification. Each expanded word
5407        may then result in several words. Thus the line parser is
5408        re-implemented through a local operator class "action_iterator",
5409        in charge of filling up a new constituent object from the expanded
5410        statement. (Note that this mechanism could perfectly be reused for
5411        other statements eg "use" !!!)
5412
5413        * cmt_parser.cxx (set_standard_macros): Implement all_constituents
5414        and all_constituentsclean unconditionally.
5415
5416        * NMakefile.header (checkuses): if defined statements require that
5417        the macro to test is provided without quotes.
5418
5419        * cmt_generator.cxx: Apply the new convention of installing object
5420        files into $(bin)${CONSTITUENTS} also for applications (was only
5421        done for libraries)
5422
5423        * cmt_parser.cxx (print_context): Take the current CONFIG name
5424        from CmtSystem::get_cmt_config rather than recursively calling
5425        "cmt system", when generating setup scripts.
5426
5427        * cmt_cvs.cxx (class CvsImplementation): Use '/' ínstead of
5428        CmtSystem::file_separator for CVS-only file specs.
5429
54302000-12-26    <arnault@lal.in2p3.fr>
5431
5432        * cmt_fragment.h (class Fragment and FragmentHandle): Install all
5433        variants of (win)copy methods that act upon a cmt_string instead
5434        of a FILE*.
5435
5436        * cmt_model.cxx: Create the implementation file for CmtModel
5437
5438        * cmt_model.h (class CmtModel): Create the CmtModel class
5439
5440        * cmt_parser.cxx (do_expand_model): Add the new command verb :
5441        'expand model' and all associated features
5442        (do_expand_model): call the CmtModel::expand
5443
Note: See TracBrowser for help on using the repository browser.