source: CMT/HEAD/ChangeLog @ 451

Last change on this file since 451 was 451, checked in by rybkin, 16 years ago

See C.L. 352

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