source: CMT/v1r20b1/ChangeLog @ 346

Last change on this file since 346 was 325, checked in by garonne, 18 years ago

see C.L. 320

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