source: CMT/v1r14p20031120/ChangeLog @ 1

Last change on this file since 1 was 1, checked in by arnault, 19 years ago

Import all tags

File size: 136.5 KB
Line 
12003-11-21  Christian Arnault  <arnault@lal.in2p3.fr> 185
2
3        * mgr/cmt_install_action.bat: Typo
4
5        * mgr/requirements: Typo in macro cmt_uninstalldir_action
6
72003-11-20  Christian Arnault  <arnault@lal.in2p3.fr> 184
8
9        * src/cmt_version.h (CMTVERSION): Preparing new tag v1r14p20031120
10
11        * src/cmt_syntax.cxx (CommandParser): Help on cmt build CMT_pacman
12
13        * src/cmt_parser.cxx (parse_arguments): Implement cmt build
14        CMT_pacmane command to generate the effective pacman manifest file
15        for CMT.
16
17        * src/cmt.h (class Cmt): Add Cmt::do_build_CMT_pacman function
18
19        * src/cmt_parser.h (enum): Add cmt build CMT_pacman command
20
21        * src/setup.zsh: Upgrade zsh completion settings
22
23        * src/setup.tcsh: Upgrade tcsh completion settings
24
25        * fragments/group (all_groups): Add a new standard macro
26        $(<group>_dependencies) to specify global dependencies for a
27        group.
28
29        * fragments/constituents_trailer (binclean): Dont remove *.make* when cleaning.
30        Add a message for binclean.
31
32        * src/cmt_use.cxx (add): Improve the warning message for package not found
33        (reduce_path): Display the package path using a reusable format (used by show fragments)
34
352003-11-19  Christian Arnault  <arnault@lal.in2p3.fr> 183
36
37        * src/cmt_constituent.cxx (class constituents_action_iterator): Empty group means no group.
38
39        * src/cmt_parser.cxx (install_library): Factor out the basic
40        operation for installing a library
41        (do_build_library_links): Make use of the new install_library
42        operation. Add special operation for Darwin to install bundles
43
44        * src/cmt_syntax.cxx (class KwdBuildStrategy): Fix cumulative settings of the strategies
45        (class KwdSetupStrategy): idem
46
47        * mgr/cmt_make_shlib_common.sh: Add support to generate bundles for Darwin
48
492003-11-14  Christian Arnault  <arnault@lal.in2p3.fr> 182
50
51        * src/cmt_install_area.cxx (setup): Continue setup even without current installation area
52        (config): Apply all cmtpath_patterns even  without current installation area
53        (build_current_install_area): Make use of Cmt::find_in_cmt_paths
54
55        * src/cmt_parser.cxx (configure_current_cmtpath): Make use of the
56        new find_in_cmt_paths function
57        (do_setup): Always call CmtInstallAreaMgr::setup even if current installation area is empty
58        (find_in_cmt_paths): first implementation
59        (get_cmt_path_pwds): first implementation
60        (class StandardMacroBuilder::fill_for_use_cmtpath): Make use of the
61        new find_in_cmt_paths function
62
63        * src/cmt.h (class Cmt): Adding find_in_cmt_paths to locate a path
64        from all specified CMTPATH entries (considering the dual flavours
65        of each entry)
66        Adding get_cmt_path_pwds to access alternal values of cmtpath entries
67
682003-11-12  Christian Arnault  <arnault@lal.in2p3.fr> 181
69
70        * fragments/nmake/constituents_trailer (binclean): Fix typo for Windows
71
722003-11-06  Christian Arnault  <arnault@lal.in2p3.fr> 180
73
74        * mgr/CMT.pacman: Add generic pacman file.
75        All instances of the "<version>" pattern need to be substituted by
76        the effective version of CMT to make it a real pacman file
77
782003-10-29  Christian Arnault  <arnault@lal.in2p3.fr> 179
79
80        * tagging v1r14p20031027
81
82        * mgr/cmt_build_release.sh (version): Add the rebuilding of Linux
83        version at Lyon (without getting the result back)
84
85        * doc/documents.html: Install release notes from the documents page
86
87        * doc/ReleaseNotes.html: Create ReleaseNotes web page (suppress ReleaseNotes.txt)
88
89        * mgr/Makefile (docs):
90        Add installation of ReleaseNotes.html
91
922003-10-27  Christian Arnault  <arnault@lal.in2p3.fr> 178
93
94        * src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031027
95
96        * mgr/requirements: cmt_installarea_prefix must be defined
97        externally to the cmtpath_pattern.
98
992003-10-22  Christian Arnault  <arnault@lal.in2p3.fr> 177
100
101        * src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031022
102
103        * mgr/cmt_installdir_excludes.txt: New file containing the list of
104        patterns to exclude in installing a directory
105
106        * fragments/nmake/install_includes_header (install): Add support for exclude files
107
108        * mgr/cmt_installdir_action.bat: Add support for exclude files
109        * mgr/cmt_uninstalldir_action.bat: Add tests
110        * mgr/cmt_uninstall_action.bat: Add tests
111        * mgr/cmt_install_action.bat: Add tests
112
113        * src/cmt_parser.cxx (set_standard_macros): First define the
114        current installation area before defining all other standard
115        symbols (and making the final parsing of constituents)
116
117        * src/cmt_install_area.cxx (setup_current_install_area): Implement
118        the definition of the CMTINSTALLAREA symbol     
119        (setup): Differentiate the setting of CMTINSTALLAREA symbol from
120        applying cmtpath patterns
121
122        * src/cmt_install_area.h (class CmtInstallAreaMgr): Split setup in
123        two parts : first define the CMTINSTALLAREA symbol, then apply all
124        cmtpath patterns
125
1262003-10-21  Christian Arnault  <arnault@lal.in2p3.fr> 176
127
128        * mgr/cmt_build_release.sh: Start a procedure for remotely building a CMT release
129
130        * mgr/cmt_installdir_action.bat: Added test on existing result.
131
132        * fragments/nmake/install_includes_header (install_dir): Use $() instead of ${}
133
134        * mgr/requirements: Add definition for cmt_installdir_action
135
136        * src/cmt_parser.cxx (class StandardMacroBuilder): Generate
137        <package>_cmtpath and <package>_offset macros also for the current
138        package
139
140        * src/cmt_system.cxx (remove_directory): Add a # for error messages
141        (remove_file): idem
142
1432003-10-14    <arnault@vmlinux> 175
144
145        * src/cmt_version.h (CMTVERSION): Prepare tagging v1r14p20031014
146
147        * src/cmt_use.cxx (compare_versions): Add a function to compare
148        two version strings.
149        (reach_package): Add the effective version checking for
150        no_version_directory style when version.cmt exists.
151
152        * doc/CMTDoc.xml: Suppress version strategy documentation since
153        this mechanism is not really maintained.
154
155        * src/cmt_use.cxx (reach_package): Add effective check of version
156        even in no_version_directory style
157
1582003-10-13    <arnault@vmlinux> 175
159
160        * fragments/* : Add start and end markers to all make fragments. 
161
1622003-10-09    <arnault@lal.in2p3.fr> 175
163
164        * src\cmt_parser.cxx (do_broadcast): Suppress the catching of
165        return status=2 for last executed command
166
1672003-10-02  Christian Arnault  <arnault@lal.in2p3.fr> 175
168
169        * src/cmt_system.cxx (cd): putenv requires that the string is static !!
170
1712003-10-01    <arnault@vmlinux> 174
172
173        * src/cmt_use.cxx (class use_action_iterator): Force auto_imports
174        to On when context is unspecified.
175
176        * src/cmt_use.h (class Use): Add a new set_selected_version
177        function for switching from one use to another one, better wrt
178        various criteria. When switching, m_index and auto_imports are
179        transfered from the unselected to the newly selected.
180
1812003-09-26    <arnault@vmlinux> 173
182
183        * src/cmt_system.cxx (cd): Change the PWD environment variable, in
184        case it's not done by the underlying OS
185
1862003-09-24  Christian Arnault  <arnault@lal.in2p3.fr> 172
187
188        * src/cmt_use.cxx (show_cycles): optimizing a bit
189        (find_index): idem
190        (set_auto_imports_state): idem
191        (move): idem
192        (reorder): idem
193        (unselect_all): idem
194        (get_selected_version): idem
195        (get_paths): Improve the algorithm to save multiple vector manipulations
196
197        * src/cmt_parser.cxx: Follow all symbol->build_macro_value by
198        Symbol::expand to really expand all possible macro
199        references. This caused a bug when inline re-confirguring
200        CMTUSERCONTEXT (etc.) with a value containing a ref to another
201        symbol.
202
203        * mgr/Makefile (cpp): Add -O2 option for Linux platform
204        (cpp): Add support for profiling setup for LinuxProf platform
205
2062003-09-18    <arnault@vmlinux>
207
208        * mgr/cmt_uninstall_action.sh (a): Fix the consistency check of pwd vs CMTINSTALLAREA
209        * mgr/cmt_install_action.sh (a): idem
210
2112003-09-18  Christian Arnault  <arnault@lal.in2p3.fr> 171
212
213        * mgr/Makefile (cpp): Set IGNORE_PWD for OSF1 and LynxOS
214
215        * src/cmt_system.cxx (pwd): Add an option to ignore PWD since on
216        some machines this does not work well with the chdir function.
217
218        * doc/CMTDoc.xml: improvements
219
2202003-09-17  Christian Arnault  <arnault@lal.in2p3.fr> 170
221
222        * src/cmt_parser.cxx (class StandardMacroBuilder): Add the
223        production of the new macros <package>_cmtpath <package>_offset
224        (class StandardMacroBuilder): Implement the generation of
225        <package>_cmtpath <package>_offset macros
226
227        * fragments/constituent: Add the same dependency list onto
228        constituent makefile fragment than onto the constituent itself so
229        as to enforce the build order also for make fragments.
230
231        * src/cmt_use.cxx (get_paths, get_selected_version): Remove static
232        declaration for a local variable (caused a serious bug !!)
233        Lots of debug prints improved.
234
2352003-09-16  Christian Arnault  <arnault@lal.in2p3.fr> 170
236
237        * src/cmt_symbol.cxx (action): fix setup_script calling mechanism
238        in no_version style : should get it from ../cmt rather than ../mgr
239
2402003-09-16    <arnault@vmlinux> 169
241
242        * mgr/cmt_uninstall_action.sh (full_source_name): idem
243
244        * mgr/cmt_install_action.sh: add a protection when current
245        directory is outside any installation area
246
247       
248        * mgr/NMake (CMTINSTALLAREA): idem
249        (cmttag): Improve the filter for VisualC tag file generation
250        (required to remove all location specific info)
251        Change the target from cmt to cmttag (ie this is NO LONGER done by default!!)
252
253        * mgr/Makefile (CMTINSTALLAREA): Inhibit all INSTALLAREA mechanism
254        when rebuilding cmt itself
255
256        * src/cmt_parser.cxx (get_current_style): First Implementation
257        (dos_script_prefix): Use current_style rather than
258        current_structuring_style to select path pattern
259
260        * src/cmt.h (class Cmt): Add get function to access m_current_style
261
2622003-09-16  Christian Arnault  <arnault@lal.in2p3.fr> 168
263
264        * src/cmt_use.cxx (find_index): Add a protection when a package
265        was not found
266
2672003-08-14  Christian Arnault  <arnault@lal.in2p3.fr> 168
268
269        * src/cmt_generators.cxx (LibraryGenerator::build): new syntax for get_all_files
270        (DocumentGenerator::build): idem
271        (MSDEVGenerator::build_project): idem
272        (VSNETGenerator::build_project): idem
273        (DependencyGenerator::build): idem
274
275        * src/cmt_generator.h (class CmtGenerator): Add an argument for
276        selection patterns.
277
278        * src/cmt_generator.cxx (get_all_files): Apply the selection
279        patterns.  Support wilcarded suffixes (*.*)
280
281        * src/cmt_generators.cxx (DocumentGenerator::build): Add path
282        compression when analyzing file names.
283        (ConstituentsMakefileGenerator::build): suppress unused declarations
284
285        * src/cmt_constituent.cxx (show): display select paterns
286        (class constituents_action_iterator): Handle the new -k= option for selection pattern
287        (clear): clear selection patterns
288
289        * src/cmt_constituent.h (class Constituent): Add select regexps similar to excludes
290
2912003-08-13  Christian Arnault  <arnault@lal.in2p3.fr> 168
292
293        * src/cmt_use.cxx (show_all): Standardize the output format of
294        show uses to ensure that we always have in the last part:
295
296        use <package> <version> [<offset>] (<path>) (<qualifier>) (...)
297
298        or (with -quiet)
299       
300        use <package> <version> [<offset>]
301
302        Also fix a bug when trying to remove offset from real_path...
303       
304
3052003-08-11  Christian Arnault  <arnault@lal.in2p3.fr> 167
306
307        * mgr/Makefile (bintar): Dynamically gets the list of binaries
308        available of this machine. Then constructs CMTDownload.html
309        accordingly.
310
311        * doc/CMTDownload1.html: First part of CMTDownload.html
312        * doc/CMTDownload2.html: Last part of  CMTDownload.html
313
314        * doc/installations.doc: upgrade list of porting machines
315
316        * src/cmt_version.h (CMTVERSION): new patch tag v1r14p20030811
317
318        * src/cmt_use.cxx (show_sub_uses): Display the original request
319        instead of the registered sub use (which may be different than the
320        request)
321
322        * src/cmt_use.h (class Use): Add context_use in the argument list
323        to display the use that created this request
324       
325        (class Use): Add a vector of the real requests (well only those that ended up in a sub use)
326
327        * src/cmt_use.cxx (need_new): Dispay the incompatibility message
328        in need_new rather than in the BestFitSelector, since
329        corresponding uses may have been discarded then.
330
331        * src/cmt_system.cxx (is_version_directory): return all -1 values
332        when version specification is just '*'
333
3342003-08-08    <arnault@lal.in2p3.fr> 166
335
336        * mgr\requirements: Tuning pour CYGWIN
337
3382003-08-06  Christian Arnault  <arnault@lal.in2p3.fr> 165
339
340        * src/cmt_symbol.cxx (create): Same reasons (LynxOS) => convert a
341        static array of strings into a switch statement (not quite
342        elegant). May move back in some future if problem is solved on
343        LynxOS.
344
345        * src/cmt_syntax.cxx (CommandParser): Initialze the new help_texts
346        by filling in a vector rather that from a static array of
347        cmt_string (too bad...)
348
349        * src/cmt_syntax.h (class CommandParser): Need to redefine the
350        management of static arrays of objects due to a bug in c++
351        compiler on LynxOS... A Workaround is found by transfering static
352        arrays into the singleton => m_helps and m_help_texts
353
3542003-08-06    <arnault@lal.in2p3.fr> 164
355
356        * src\cmt_parser.cxx (dos_script_prefix): Adapt the generation of
357        setup.bat scripts so as to account for the new DOS device constructs
358        \\xxx\aaa
359
360        * src\setup.bat: Add /D to the cd command to support CMT on a
361        different device
362
3632003-08-05    <arnault@lal.in2p3.fr> 163
364
365        * src/cmt_parser.cxx (dos_script_prefix): remove device from path
366        when device takes the conventional form. new form (\\xxx\) is not
367        yet handled.
368
369        * src/cmt_install_area.cxx (config): Don't produce output messages in quiet mode
370
3712003-08-05  Christian Arnault  <arnault@lal.in2p3.fr> 163
372
373        * src/cmt_system.cxx (pwd): Make use of the PWD environment
374        variable when it is defined to detect current directory in place
375        of getcwd (keep gettcwd when PWD is not defined or on WIN32)
376
377        * fragments/install_includes_header (install): Avoid useless
378        re-installation of include file area
379
380        * src/cmt_use.cxx (add): When m_index is exchanged between two
381        uses, the discarded flag must be upgraded accordingly   
382        (class use_action_iterator): Suppress trailing slash characters on
383        package offset specifications.
384
385        * src/cmt_parser.cxx (class StandardMacroBuilder): Define
386        package_cmtpath instead of just cmtpath as the standard macro, in
387        order to avoid conflict with CMTPATH env. var. on Windows.
388        (do_broadcast): Define the pattern <package_cmtpath> instead of
389        <cmtpath> for broadcast command templates
390
391        * src/cmt_use.cxx (need_new): first consider the already registered use
392        (add): Fix a bug in the algorithm for checking registrations of uses.
393        (class use_action_iterator): Remove trailing slashes from prefix specifications
394
3952003-06-20  Christian Arnault  <arnault@lal.in2p3.fr> 162
396
397        * src/cmt_version.h: new patch id 20030620
398
399        * mgr/Makefile (gendoc): Add a target to convert XML doc into HTML
400        (so far only available at CERN)
401
402        * doc/gendoc.py (Book.plain_char_data): improvements.
403
404        * src/cmt_parser.cxx (do_broadcast): Fix evaluation of <cmtpath>
405        <package_offset> in -global mode
406
4072003-06-19    <arnault@lal.in2p3.fr> 161
408
409        * src/cmt_system.cxx (add_cmt_path): Fix cmtpath checking for
410        devices on Windows
411
4122003-06-19  Christian Arnault  <arnault@lal.in2p3.fr> 160
413
414        * fragments/nmake/library_no_share: Use the @<< syntax of nmake to
415        cope with long list of OBJS
416        * fragments/nmake/application: idem
417        * fragments/nmake/library: idem
418
4192003-06-18  Christian Arnault  <arnault@lal.in2p3.fr> 159
420
421        * mgr/requirements: Use ln -s for the cmt_install_area_command
422
423        * fragments/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
424        * fragments/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
425        * fragments/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
426        * fragments/nmake/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
427        * fragments/nmake/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
428        * fragments/nmake/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
429
430        * mgr/requirements: use cp -s and not cp -l to create symlinks
431
4322003-06-16  Christian Arnault  <arnault@lal.in2p3.fr> 158
433
434        * src/cmt_version.h (CMTVERSION): New Tag 20030616
435
436        * src/Makefile.header (common_target): Make use of the mktemp
437        shell function
438
439        * doc/CMTDoc.xml: Doc
440
441        * src/cmt.h (class Cmt): Add get_current_cmtpath and
442        get_current_offset functions.
443
444        * src/cmt_parser.cxx (configure_current_cmtpath): Implement (set
445        m_current_cmtpath and m_current_offset)
446
447        * src/cmt.h (class Cmt): Add configure_current_cmtpath function
448
449        * src/cmt_parser.cxx (class StandardMacroBuilder): Add standard
450        macros cmtpath and package_offset
451        (do_broadcast): Add substitutions of <package>, <version>, <cmtpath>, <package_offset>
452        (class StandardMacroBuilder): Set m_current_cmtpath and m_current_offset
453
454        * src/cmt.h (class Cmt): Adding current value for cmtpath and offset
455
456        * mgr/requirements: Use symlink instead of cp as default transfer
457        action into installation area
458
4592003-06-12  Christian Arnault  <arnault@lal.in2p3.fr> 157
460
461        * src/cmt_pattern.cxx : fix a bug in ApplyPattern::action: macros
462        should NOT be expanded when parsing the statement. Only the
463        pattern name may be expanded.
464        Second fix: when a pattern is re-defined, the Pattern object must be
465        properly reset.
466
4672003-06-04    <arnault@vmlinux> 156
468
469        * src/cmt_version.h (CMTVERSION): Tag the version to v1r14p20030605
470
471        * mgr/build_from_rpm.sh (tempdir): Add a shell script for testing
472        the source kit (not complete)
473
474        * mgr/install_from_rpm.sh: Add a shell script for testing the
475        generated binary RPM.
476
477        * mgr/Makefile (rpm): Add the rpm target to build RPMs into ../rpm
478
479        * mgr/CMT.spec: Add an RPM spec file for CMT. Only the binary kit
480        has been tested successfully
481
482        * doc/install.html: Document the usage of the CMT RPM
483
484        * src/cmt_parser.cxx (dos_script_prefix): Use %TEMP% instead of
485        %HOMEDRIVE%%HOMEPATH% for temporary setup files on Windows
486
4872003-06-04  Christian Arnault  <arnault@lal.in2p3.fr> 155
488
489        * fragments/install_includes_header (install): Fixed wrong test on
490        CMTINSTALLAREA
491
492        * src/cmt_syntax.cxx (parse_requirements): Transfer the scoping
493        algorithm to parse_requirements_text so that patterns supplying
494        private statements will work nicely.
495        (parse_requirements_text): see above
496
4972003-05-23  Christian Arnault  <arnault@lal.in2p3.fr> 154
498
499        * src/Makefile.header: removing apparently obsolete MAKEFLAGS
500        filtering mechanisms on -j option
501
502        * src/setup.zsh: Add cmt show cycles zsh expansion
503
504        * src/cmt_parser.cxx (parser): Add cmt show cycles parsing and support
505
506        * src/cmt_syntax.cxx (CommandParser): Add show_cycles info
507
508        * src/cmt_parser.h (enum): Add action_show_cycles
509
510        * src/cmt.h (class Cmt): Add cmt show cycles command to display use cycles
511
5122003-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 153
513
514        * src/cmt_std.h: Suppress include ios for new header style
515
516        * src/cmt_parser.cxx (parse_arguments): Install a -private option to
517        the show_use_paths action. When -private is present on the command
518        line then the private uses are reached.
519        (parse_arguments): Make the --private or --public option a global
520        option to control on all CMT commands whether we reach or not the
521        private uses.
522
523        * src/cmt_use.cxx (class use_action_iterator): Detect the new
524        scope filtering mode to actually reach the private uses
525
526        * src/cmt_parser.cxx: Set the scope filtering mode when
527        appropriate (cmt_show_uses, cmt_show_use_paths, cmt_broadcast,
528        cmt_set_versions, cmt_show_setup)
529
530        * src/cmt.h (class Cmt): Add m_scope_filtering_mode attribute
531
532        * src/cmt_parser.cxx (get_scope_filtering_mode): Implement the new function
533        (set_scope_filtering_mode): Implement the new function
534
535        * src/cmt.h (class Cmt): Add set_scope_filtering_mode function
536          (class Cmt): Add get_scope_filtering_mode function
537
538        * src/cmt_parser.h (enum): Add a scope filtering mode to block or
539        reach private uses
540
5412003-05-21  Christian Arnault  <arnault@lal.in2p3.fr> 153
542
543        * src/cmt_use.cxx (get_all_clients): Public interface to private
544        get_all_clients
545        (get_all_clients): Actual recursive implementation for getting all
546        paths to a given client
547
548        * src/cmt_use.h (class Use): Implement two new get_all_clients
549        functions to acquire all paths to a given client of a package (one
550        public with simple interface and one private with temporary
551        storage).
552
553        * src/cmt_use.cxx (class use_action_iterator): traverse complete
554        use graph for action_show_use_paths
555
556        * src/cmt_std.h: Set new C++ header style on Linux
557
558        * src/setup.zsh: Add cmt show use_paths to auto-expansion definition
559
560        * src/cmt_syntax.cxx (CommandParser): Add help for cmt show use_paths
561        (get_help_texts): idem
562
563        * src/cmt_parser.cxx (do_show_use_paths): implement do_show_use_paths function
564        (parse_arguments): parse cmt show use_paths <package>
565        (parser): idem
566
567        * src/cmt.h (class Cmt): add do_show_use_paths function
568
569        * src/cmt_parser.h (enum): Start implementing a new feature: cmt
570        show use_paths <package> to display all possible paths between the
571        current package and the specified package.
572
5732003-05-19    <arnault@lal.in2p3.fr> 152
574
575        * mgr\cmt_linux_version.sh: add a script for querying linux
576        version for various distributions (contribution from Clark McGrew
577        <clark.mcgrew@sunysb.edu>)
578
579        * src\cmt_symbol.cxx (show_macro): re-apply suppress_OS_delimiter
580        when generating the tag makefile, but only on WIN32 context.
581
582        * src\cmt_pattern.cxx (class apply_pattern_action_iterator): Add
583        action iterator to expand macros before parsing line.
584
585        * src\cmt_fragment.cxx (class fragment_action_iterator): Add
586        action iterator to expand macros before parsing line.
587
588        * src\cmt_fragment.cxx (action): Hide make_fragments in private
589        sections like macros
590
591        * mgr\requirements: Introduce the generic Unix tag for all Unix platforms
592       
593        * src\cmt_parser.cxx (dos_script_prefix): Factor out the writing
594        of DOS setup and cleanup scripts.
595
596        * mgr\INSTALL.bat: No longer need nmake to generate the setup.bat
597        script of CMT, thanks to the %~d0%~p0 mechanism (copy from src is enough).
598
599        * src\setup.bat: Install a generic mechanism for finding the
600        current drive letter (unfortunately this mechanism does not work
601        in any possible Unix shell)
602
603        * src\cmt_parser.cxx (install_setup_scripts): Apply the drive
604        letter mechanism to setup scripts
605
6062003-05-17    <arnault@lal.in2p3.fr> 151
607
608        * mgr\requirements: Typo in the cmtpath_pattern : use_includes
609
6102003-05-14    <arnault@lal.in2p3.fr> 150
611
612        * src\cmt_parser.cxx (restore_all_tags): Bug in managing
613        -tag=<taglist> argument due to the separator in m_extra_tags :
614        force a separator before and after all tags in the list
615        (parse_arguments): idem
616        (print): idem
617
6182003-05-13    <arnault@lal.in2p3.fr> 149
619
620        * fragments/tex: install correction from Marie Anne
621
6222003-05-12    <arnault@lal.in2p3.fr> 148
623
624        * mgr/cmt_linux_version.sh: Adding a script to retrieve Linux version and distribution
625
626        * mgr/requirements: Add declaration of install_includes fragments
627
628        * fragments/install_includes_header: Make fragment for installing
629        include directory but only for those following the standard
630        pattern of ../<package>
631
632        * fragments/install_includes:
633        * fragments/nmake/install_includes_header:
634
635        * mgr/cmt_installdir_action.bat: Special treatment of directory
636        installation
637        * mgr/cmt_uninstalldir_action.bat:
638
639        * fragments/constituents_trailer (remove_library_links): Add a
640        remove_library_links target
641        * fragments/nmake/constituents_trailer: idem
642
643        * fragments/constituent (uninstall): Suppress dependencies for
644        uninstall target
645        * fragments/nmake/constituent (uninstall): idem
646
6472003-05-11    <arnault@lal.in2p3.fr> 147
648
649        * mgr\requirements: Add search libpath to installarea for WIN32
650
651        * fragments\nmake\library (install): bug (typo) in target names
652
653        * mgr\cmt_install_action.bat: use rem comments instead of #
654        * mgr\cmt_uninstall_action.bat: idem
655
656        * mgr\NMake (cmt): Filter out the include and lib definitions in
657        VisualC.nmake for cmt itself.
658
659        * src\cmt_parser.cxx (scan_path): Suppress unused variable
660
661        * src\cmt_std.h (OLD_HEADERS): Adopt new header style for WIN32
662
663        * mgr\requirements: Add compiler option for exception handling in VisualC
664
6652003-05-05  Christian Arnault  <arnault@lal.in2p3.fr> 146
666
667        * src/cmt_use.cxx (add): Set the warning for package not found a real warning.
668
669        * src/cmt_parser.cxx (do_setup): Change the info message to be
670        displayed only when appropriate
671
6722003-05-05    <arnault@lal.in2p3.fr> 145
673
674        * src/cmt_version.h: v1r14
675
676        * doc/CMTDoc.xml: Improve the doc
677
678        * doc/gendoc.py (Book.syntax_start): Add an attribute name in
679        syntax for avoiding name conflicts
680
681        * fragments/nmake/jar (install):
682        * fragments/nmake/java_header (install):
683        * fragments/nmake/library_no_share (install):
684        * fragments/nmake/library (install):
685        * fragments/nmake/application (install):
686
687        * fragments/jar (install):
688        * fragments/java_header (install):
689        * fragments/library_no_share (install):
690        * fragments/library (install):
691        * fragments/application (install): apply the centralized scripts
692
693        * mgr/cmt_uninstall_action.bat:
694        * mgr/cmt_install_action.bat:
695        * mgr/cmt_uninstall_action.sh:
696        * mgr/cmt_install_action.sh: Scripts for doing
697        (un)installation into the current installation area
698
6992003-05-02  Christian Arnault  <arnault@lal.in2p3.fr> 144
700
701        * fragments/application (uninstall, install):
702        * fragments/library (uninstall, install):
703        * fragments/library_no_share (uninstall, install):
704        * fragments/java_header (uninstall, install):
705        * fragments/jar (uninstall, install):
706        * fragments/constituent (install, uninstall): Add (un)install actions
707        idem for nmake
708       
709
7102003-05-02    <arnault@lal.in2p3.fr> 143
711
712        * doc/gendoc.py : Create a new mechanism for generating HTML
713        documentation from an XML representation.
714
7152003-04-30  Christian Arnault  <arnault@lal.in2p3.fr> 142
716
717        * src/cmt_parser.cxx (do_show_strategies): Display the Setup strategy
718
719        * src/cmt_syntax.cxx (class KwdSetupStrategy): Decode the
720        [no_]cleanup option for the setup_strategy in requirements file
721
722        * src/cmt_parser.cxx (parse_arguments): Decode the -no_cleanup option
723        (do_setup): Apply the cleanup only when the setup strategy permits it
724        (do_config): idem
725
726        * src/cmt_parser.h (enum): Add NoCleanup possibility to the SetupStrategy
727
7282003-04-16  Christian Arnault  <carnault@lxplus051.cern.ch> 141
729
730        * src/cmt_parser.cxx (run): Bug in PackageCollector::run current
731        directory missed the package name. (for cmt show clients)
732
7332003-04-12    <arnault@lal.in2p3.fr> 140
734
735        * src\cmt_generators.cxx: Add excludes to all calls to get_all_files
736
737        * src\cmt_generator.h (class CmtGenerator): Add exclude expressions
738
739        * src\cmt_constituent.cxx (class constituents_action_iterator):
740        Implement the -x=<pattern> option to the constituent to exclude
741        patterns. Create regexps for each pattern.
742        (show): Show excludes
743
744        * src\cmt_constituent.h (class Constituent): Add a vector of
745        regexp for exclude specs.
746
747        * src\cmt_regexp.cxx (set): Implement the set function.
748
749        * src\cmt_regexp.h (class cmt_regexp): Introduce a default
750        constructor and a set function
751
752        * src\cmt_generators.cxx:
753        * src\cmt_generator.cxx: Strong restruring of generator architecture:
754          + create a CmtGenerator basic class for all generators
755          + create derived classes for all categories of generators
756                 ApplicationGenerator
757                 LibraryGenerator
758                 DocumentGenerator
759                 ReadmeGenerator
760                 PrototypeGenerator
761                 DefaultMakefileGenerator
762                 MSDEVGenerator
763                 VSNETGenerator
764                 MakeSetupGenerator
765                 ConstituentsMakefileGenerator
766                 DependencyGenerator
767          + transfer new stuff in cmt_generators.h/.cxx
768          + transfer all utility functions (get_all_files etc...) into the base class
769          + optimize handling of Variable and FragmentHandle objects per Generator class
770       
771
772        * src\cmt_install_area.cxx (config): suppress echo in quiet mode
773
774        * src\cmt_parser.cxx (install_test_setup_scripts): Protect tempfile against spaces in paths
775        (install_test_cleanup_scripts): idem
776        (install_setup_scripts): idem
777        (install_cleanup_scripts): idem
778
7792003-04-11  Christian Arnault  <carnault@lxplus051.cern.ch> 139
780
781        * src/cmt_parser.cxx (do_run_sequence): Sequences are removed from
782        cmt.cxx and implemented in a dedicated source file.
783
784        * src/cmt_sequence.h (class SequenceRunner): Adding cmt_sequence.h
785        (defining sequences)
786
787        * src/cmt_sequence.cxx (filter): Adding cmt_sequence.cxx (extracted
788        from cmt.cxx)
789
790        * src/cmt_generator.cxx (get_all_files): Return a count of non
791        empty file names.
792        (build_library_makefile): Ensure that get_all_files is done only
793        once.
794        (build_document_makefile): Ensure that get_all_files is done only
795        once (not completed yet)
796        (class DocumentMakefileGenerator): Start creating an object model
797        for makefile generators. Create derived classes of
798        MakefileGenerator for Application, Library, document
799
800        * src/cmt_constituent.h (class Constituent): Add excludes vector
801        of exclusions
802
803        * src/cmt_constituent.cxx (class constituents_action_iterator):
804        Start implementing exclusion mechanisms on constituent sources.
805        We add a -x=<pattern> cumulative option to the constituent syntax
806       
8072003-04-07    <arnault@lal.in2p3.fr> 138
808
809        * src\cmt_generator.cxx: Add DIRNAME Variable
810        Add new fragments for vcproj
811
8122003-04-05    <arnault@lal.in2p3.fr> 138
813
814        * mgr\requirements: define VC7 VC7debug tags for vsnet
815
816        * src\cmt_generator.cxx (class MakefileGenerator): Add vsnetdir variable
817        Add declarations for vsnet fragments
818        (reset): Install vsnetdir as ..\VisualC
819        (pseudoGUID): Implement an algorithm for creating GUIDs
820        (build_vsnet_workspace):
821        (build_vsnet):
822
823        * src\cmt_generator.h (class Generator): Declare
824        build_vsnet_workspace and build_vsnet methods
825
826        * src\cmt_constituent.cxx (build_all_vsnet_files): Implement for vsnet
827        (build_vsnet_file): Implement for vsnet
828
829        * src\cmt_constituent.h (class Constituent): Add build_all_vsnet_files
830        (class Constituent): Add build_vsnet_file
831
832        * src\cmt_parser.cxx (class StandardMacroBuilder): Add macro
833        <constituent>_GUID for vsnet.
834        (parser): Implement cmt build vsnet actions
835
836        * src\cmt_syntax.cxx (CommandParser): Add help about cmt build vsnet
837
838        * src\cmt_parser.h (enum): Add action_build_vsnet
839
840        * src\cmt.h (class Cmt): Add Visual Sudio.Net support (From Toby Burnett)
841
8422003-04-03  Christian Arnault  <carnault@lxplus051.cern.ch> 137
843
844        * src/cmt_parser.cxx (do_setup): Do a config action to the
845        installation area in order to perform a cleanup operation during
846        the source setup
847
848        * src/cmt_install_area.cxx (config): Display a message when doing
849        cleanup of installation areas.
850
851        * mgr/requirements: Rename cmt_(un)install_command to cmt_(un)install_area_command
852        Prepare CMTr14 tag from CMTr13
853
854        * fragments/java_header (install_java_bin_dir): idem
855        * fragments/library_no_share (install_lib_dir): idem
856        * fragments/jar (install_java_lib_dir): idem
857        * fragments/library (install_lib_dir): idem
858        * fragments/application (install_bin_dir): idem
859
8602003-04-02  Christian Arnault  <carnault@lxplus051.cern.ch> 136
861
862        * src/cmt_symbol.cxx (build): Bug : the macro_prepend was NOT really prepending.
863
8642003-03-28  Christian Arnault  <carnault@lxplus051.cern.ch> 136
865
866        * src/cmt_parser.cxx (class StandardMacroBuilder): Add CMTVERSION standard macro
867
8682003-03-28    <arnault@lal.in2p3.fr> 135
869
870        * src\cmt_parser.cxx (configure_version_tag): Create three new predefined tags:
871           CMTv<n>
872           CMTr<n>
873           CMTp<n>
874        to describe the current version, release and patch of CMT.
875
876        * src\cmt_parser.h (enum): Adding PriorityVersion for marking the
877        priority of the new automatic version tag
878
879        * src\cmt_parser.cxx (configure_version_tag): Implement
880        configure_version_tag method to create a tag for the version of
881        CMT
882
883        * src\cmt.h (class Cmt): Adding configure_version_tag method to
884        create a tag for the version of CMT
885
886        * src\cmt_symbol.cxx (all_set): Ensure that all path separators
887        are back-slash on windows.
888
889        * fragments\nmake\jar:  Adapt for the new convention (subdirectory for the CONSTITUENT)
890        (install_java_lib_dir):  Add installation area mechanisms
891
892        * fragments\nmake\java: Adapt for the new convention (subdirectory for the CONSTITUENT)
893
894        * fragments\nmake\java_header (install_java_bin_dir): Add installation area mechanisms
895
8962003-03-21  Christian Arnault  <carnault@lxplus051.cern.ch> 134
897
898        * src/cmt_parser.cxx (parser): cmt run must be recursive for used
899        packages (in order to get all environment variables set)
900
9012003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 133
902
903        * src/cmt_symbol.cxx (show): Implement common SymbolValueList::show method.
904
905        * src/cmt_symbol.h (class SymbolValueList): Factor out printing SymbolValues
906
907        * src/cmt_symbol.cxx (create): Give use context in warning message
908
909        * src/cmt_symbol.h (class Symbol): Add Use* argument to print
910        context in warning messages
911
912        * src/cmt_parser.cxx (vector_to_string): Ignore empty entries to
913        avoid duplicate separators
914
9152003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 132
916
917        * src/cmt_error.cxx (print): Consistently set the prefix "#CMT> "
918        to all error messages and print outs
919        * src/cmt_triggers.cxx (filter): idem
920        * src/cmt_use.cxx (add): idem
921        * src/cmt_generator.cxx (build_default_makefile): idem
922        * src/cmt_symbol.cxx (create): idem
923        * src/cmt_parser.cxx (do_show_macro): idem
924
925        * src/cmt_symbol.cxx (create): Handle the unconsistent multiple
926        declarations of sets as macros (and vice versa)
927
928        * src/cmt_error.cxx (class Error): Add warning error text
929        * src/cmt_error.h (class CmtError): Add warning error code
930
931        * src/cmt_parser.cxx (reach_current_package): Suppress error print
932        when requirements file is not found
933        (do_show_macro): Improve the error message in the
934        "cmt show macro/set" command
935
9362003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 131
937
938        * src/cmt_parser.cxx (reach_current_package):
939        * src/cmt_install_area.h (class CmtInstallAreaMgr): Factor out the
940        construction of the current installation area
941
942        * src/cmt_install_area.cxx (setup): Filters out "default path" for
943        constructing the current installation area
944        (config): idem
945
946        * src/cmt_cmtpath_pattern.cxx (apply): Suppress "default path" (ie
947        CMTPATH of CMT) from application of cmtpath_patterns
948
949        * src/cmt_parser.cxx (get_cmt_path_sources): Add accessor to cmtpath_sources
950
951        * src/cmt.h (class Cmt): Add accessor to cmtpath_sources
952
9532003-03-18  Christian Arnault  <carnault@lxplus051.cern.ch> 130
954
955        * src/cmt_cmtpath_pattern.cxx (apply): Optimize the substitution
956        of "<path>" in cmtpath_patterns by avoiding a loop over path items
957        when the pattern does not contain "<path>" at all
958
9592003-03-13  Christian Arnault  <carnault@lxplus051.cern.ch> 130
960
961        * mgr/requirements: Add -classpath $(src) to java compilation
962
963        * src/cmt_generator.cxx (analyze_file): Default copy action for
964        files with no language is applied only to java contexts
965
9662003-03-12  Christian Arnault  <carnault@lxplus051.cern.ch> 130
967
968        * fragments/java_copy: Use this fragment for default action on
969        sources with no language
970
971        * src/cmt_generator.cxx (module_file_action): Install default
972        (copy) action for source files with no language.
973
974        * fragments/java_header: Building jar files with * rather than *.class
975
976        * fragments/jar: Building jar files with * rather than *.class
977
978        * fragments/java_header: Syntax fix for generating manifest file
979
9802003-03-11  Christian Arnault  <carnault@lxplus051.cern.ch> 129
981
982        * src/setup.zsh: Add show cmtpath_patterns option
983
984        * src/cmt_generator.cxx (analyze_file): Add constituent sub
985        directory to output for java files
986
987        * fragments/jar: Add constituent sub directory to ../classes to
988        store *.class and jar files
989
990        * fragments/java_header (install_java_bin_dir): Apply installation
991        area mechanisms for java application
992
993        * mgr/requirements: Need both share/bin and share/lib for installarea
994
9952003-03-10  Christian Arnault  <carnault@lxplus051.cern.ch> 129
996
997        * src/cmt_cmtpath_pattern.cxx (apply): CMTPATH patterns should be
998        applied in revers order
999
1000        * mgr/requirements: bug fix (missing backslash)
1001
1002        * src/cmt_install_area.cxx (config): Bug fix
1003
10042003-03-09    <ARNAULT@lal.in2p3.fr> 128
1005
1006        * src\cmt_install_area.cxx (setup): Make use of the cmt_installarea_prefix macro
1007        (config): idem
1008
10092003-03-08    <ARNAULT@lal.in2p3.fr> 128
1010
1011        * mgr\requirements: Define the cmt_installarea_prefix macro to
1012        parameterize the common prefix to be added to all CMTPATH entries
1013        for installation areas
1014
10152003-03-06    <ARNAULT@lal.in2p3.fr> 127
1016
1017        * src\cmt_install_area.cxx (config): Introduce the new macro
1018        cmt_installarea_paths used to declare all PATHS inside the
1019        installareas that will need to be checked for consistency when
1020        doing cmt config
1021
1022        * src\cmt_install_area.h (class CmtInstallAreaMgr): Remove
1023        set_path, add_path_pattern, apply_path_patterns function since
1024        they are all managed through cmtpath_patterns
1025
1026        * src\cmt_parser.cxx (do_show_cmtpath_patterns): Do set_standard_macros
1027
1028        * src\cmt_install_area.cxx (setup): Launch the CmtPathPattern::apply_all ()
1029
1030        * src\cmt_parser.cxx (parser): Add parsing of cmt show cmtpath_patterns
1031
1032        * src\cmt_syntax.cxx: Add parsing of cmt show cmtpath_patterns
1033
1034        * src\cmt_parser.h (enum): Add action_show_cmtpath_patterns
1035
1036        * src\cmt_database.cxx (cmtpath_patterns): Add CmtPathPatternVector object
1037
1038        * src\cmt_database.h (class Database): Add CmtPathPatternVector
1039
1040        * src\cmt_cmtpath_pattern.cxx: Install partial reproduction of cmt_pattern.cxx
1041
1042        * src\cmt_cmtpath_pattern.h: Create cmt_cmtpath_pattern.h
1043        (class CmtPathPattern): Install partial reproduction of cmt_pattern.h
1044
1045        * mgr\requirements: Add the source file cmt_cmtpath_pattern.cxx
1046
1047        * src\cmt_syntax.cxx (class KwdCmtPathPattern): add parser object
1048        for the new CommandCmtPathPattern.
1049
1050        * src\cmt_parser.h (enum): Add CommandCmtPathPattern to declare
1051        CMTPATH patterns to be applied onto all CMTPATH items.
1052
10532003-03-06    <ARNAULT@lal.in2p3.fr> 126
1054
1055        * src\cmt_symbol.cxx (all_set): Add debug informattion
1056
1057        * src\cmt_parser.cxx (do_run): Do set_standard_macros before
1058        running
1059
10602003-03-06  Christian Arnault  <carnault@lxplus051.cern.ch> 125
1061
1062        * src/cmt_system.h (class CmtSystem): Adding putenv to set environment variables
1063        * src/cmt_system.cxx (putenv): idem
1064
1065        * src/cmt_symbol.cxx (class SetBuilder): The build and clean
1066        function should return string object rather that referencing the
1067        string object attribute (protection against recursive calls)
1068        (class PathBuilder): idem
1069        (class MacroBuilder): idem
1070        (class ScriptBuilder): idem
1071        (resolve_value): Add comments and improve variable naming
1072        (resolve_value): idem
1073        (resolve_value_for_macros): idem
1074        (suppress_OS_delimiters): idem
1075
1076        * src/Makefile.header (common_target): Use /tmp to
1077        create temporary (and disposable) make fragments.  Rearrange
1078
1079        * mgr/Makefile (cpp): Provide support to build on LinuxDebug
1080
1081        * fragments/constituents_header (cmt_lock_setup): Use /tmp to
1082        create temporary (and disposable) make fragments.  Rearrange
1083        statements in the building of $(tag).make so as to ensure that
1084        echo statements are only done when things are ok.
1085
1086        * src/cmt_parser.cxx (install_cleanup_scripts): Define CMTROOT
1087        only if it is NOT defined yet. Goal is to keep user defined
1088        version of CMT.
1089        (install_setup_scripts): idem
1090        (install_test_cleanup_scripts): idem
1091        (install_test_setup_scripts): idem
1092
10932003-02-27  Christian Arnault  <carnault@lxplus051.cern.ch> 125
1094
1095        * src/cmt_symbol.h (class ValueBuilder): due to recursivity,
1096        Builder function cannot share the temporary string value
1097
10982003-02-26  Christian Arnault  <carnault@lxplus051.cern.ch> 125
1099
1100        * src/cmt_parser.cxx (do_run): Add Symbol::all_set
1101        (do_broadcast): idem (before the loop over packages)
1102
1103        * src/cmt_symbol.cxx (all_set): Install the mechanism to set
1104        environment variables (using putenv) into CMT. This function is
1105        called before running the CmtSystem::execute function.
1106       
1107        * src/cmt_symbol.h (class Symbol): Remove the tabs argument of the
1108        print and print_clean methods (obsolete)
1109
1110        * src/cmt_symbol.cxx (resolve_value): rename the argument for the
1111        symbol name (it applies for any symbol, not just for macros)
1112        (resolve_value): Improve comments
1113        (resolve_value_for_macros): Improve comments
1114        (resolve_macro_value): factor out at least one of the resolve macro algorithms
1115
11162003-02-24  Christian Arnault  <carnault@lxplus051.cern.ch> 124
1117
1118        * src/cmt_generator.cxx (build_dependencies): Surrounding
1119        dependencies by quotes does not please gmake. We have to check
1120        what happens on Darwin (ie what about path names with spaces?)
1121       
11222003-02-14    <ARNAULT@lal.in2p3.fr> 123
1123
1124        * mgr\requirements: Use XCOPY instead of copy for the install
1125        commands to support the directory copy
1126
1127        * fragments\installer: Suppress the need to specify install_dir
1128        with trailing slash
1129
1130        * fragments\nmake\installer: Add installer for Windows
1131
1132        * src\cmt_generator.cxx (build_dependencies): Add double quotes to
1133        support file names with non standard characters (eg spaces) (not
1134        only on Windows).       
1135        (filter_path): Add the filter operation to work on one sigle
1136        file. The filter_paths function becomes obsolete and is removed.
1137        (analyze_document_file): Use filter_path instead of filter_paths
1138        (proto_file_action): idem
1139        (module_file_action): idem
1140        (build_library_makefile): idem
1141        (build_document_makefile): idem
1142        (build_dependencies): idem
1143        (build_document_makefile): Support sources being directories
1144        (module_file_action): idem
1145
1146        * mgr\cmt_install_action.bat: idem
1147        * mgr\cmt_uninstall_action.bat: idem
1148        * fragments\nmake\library_no_share (install_lib_dir): idem
1149        * fragments\nmake\library (install_lib_dir): idem
1150        * fragments\nmake\application (install_bin_dir): idem
1151
11522003-02-11  Christian Arnault  <carnault@lxplus051.cern.ch> 122
1153
1154        * src/cmt_cvs.cxx (class CvsImplementation): Adding explicit error
1155        message when base directory cannot be created during the checkout.
1156
11572003-02-06  Christian Arnault  <carnault@lxplus051.cern.ch> 121
1158
1159        * src/Makefile.header (clean): Remove the pseudo config target for
1160        the clean target
1161       
11622003-02-04  Christian Arnault  <carnault@lxplus051.cern.ch> 120
1163
1164        * src/cmt_use.cxx (add): Add protection against recursive use
1165        statement to current_use
1166
11672003-02-04    <ARNAULT@lal.in2p3.fr> 119
1168
1169        * src\cmt_use.cxx (need_new): Add protection against recursive use
1170        statement to current_use
1171
11722003-01-31  Christian Arnault  <carnault@lxplus051.cern.ch> 118
1173
1174        * mgr/requirements : library_prefix should be empty for WIN32
1175
1176        * src/cmt_parser.cxx (install_setup_scripts): Protect the setup
1177        script generation against cases where : structuring style is set
1178        to without_version_directory and verion tag cannot be determined
1179        (eg. if the version file does not exist). Then, the -version=xxx
1180        option is suppressed from the setup script generation.
1181        (install_test_cleanup_scripts): idem
1182
1183        * src/Makefile.header (common_target): Suppress a debug settings
1184
11852003-01-28    <ARNAULT@lal.in2p3.fr> 117
1186
1187        * src\cmt_install_area.cxx (instance): Suppress the production of
1188        LD_LIBRARY_PATH installation specs for WIN32
1189
1190        * fragments\nmake\library_no_share (install_lib_dir):
1191        * fragments\nmake\library (install_lib_dir):   
1192        * fragments\nmake\application (install_bin_dir): Add install area mechanisms for WIN32
1193
11942003-01-24  Christian Arnault  <carnault@lxplus032.cern.ch> 116
1195
1196        * src/cmt_install_area.cxx (instance): The constuction of the
1197        instance also declares the path patterns.
1198
1199        (setup): Make use of the path_patterns to generate CMT statements
1200
1201        (get_install_area): The current install area is preserved in the
1202        InstallAreaMgr instance (singleton).
1203
1204        (set_path): (only used internally) build a path expression from a pattern
1205
1206        (setup): Provide additional -L... options towards the install area
1207        for use_linkopts ad shlibbuilder
1208       
1209        (config): Perform the cleanup operation onto the current installation area:
1210          check the all ref-files still refer to existing files.
1211          if not erase the corresponding installed file.
1212
1213        * src/cmt_install_area.h (class CmtInstallPathPattern): New class
1214        for storing generic patterns for (PATH/directories) duets
1215        generation and management inside install area mechanisms.  The
1216        point is to describe special conventions for things to be
1217        installed within the installation area.
1218
1219        We describe that in terms of a set of :
1220       
1221           o path-like variable names
1222           o subdirectory patterns bellow $CMTINSTALLAREA
1223
1224        All those patterns will be used to configure the installation area
1225        and to expand the specified PATH-like variables.
1226
1227           Ex:
1228              PATH            is associated with ${CMTCONFIG}/bin
1229              LD_LIBRARY_PATH is associated with ${CMTCONFIG}/lib
1230              CLASSPATH       is associated with share/bin
1231
1232           we could think of having those patterns defined in the
1233           requirements file.
1234
1235        * src/cmt_parser.cxx (do_remove_library_links): Handle symlinks
1236        induced by the <package>_libraries macros through INSTALLAREA
1237        mechanisms
1238        (do_build_library_links): (idem)
1239        (set_standard_macros): Setup operations for InstallArea have been
1240        grouped using InstallPathPatterns
1241        (do_config): Add cleanup of install area
1242
12432003-01-23  Christian Arnault  <carnault@lxplus032.cern.ch> 115
1244
1245        * src/cmt_syntax.cxx (class KwdBuildStrategy): Support extension
1246        of build_strategy with install_area mechanisms.
1247
1248        * src/cmt_system.cxx (mkdir): Suppress the error message when one
1249        cannot create a directory
1250
1251        * fragments/application (install_bin_dir):
1252        * fragments/library_no_share (install_lib_dir):
1253        * fragments/library (install_lib_dir): Use CMTINSTALLAREA instead of INSTALLAREA
1254
1255        * src/cmt_parser.cxx (do_build_library_links): Use install area
1256        mechanisms when the build_strategy is active rather than
1257        symlinking into the binary directory of the package.
1258
1259        (set_standard_macros): Add the generation of CMTINSTALLAREA
1260        environment variable, the prepending of PATH, LD_LIBRARY_PATH,
1261        CLASSPATH when install_area is active
1262
1263        * src/cmt_install_area.cxx:
1264        * src/cmt_install_area.h (class CmtInstallAreaMgr): New class for
1265        managing install area mechanisms.
1266
1267        * src/cmt_parser.h (enum): Add InstallArea in BuildStrategy
1268
12692003-01-22  Christian Arnault  <carnault@lxplus032.cern.ch> 114
1270
1271        * src/cmt_use.cxx (find_index): Bad use of a static local variable
1272        implying wrong management of -import= options
1273        (get_index): Adding accessor function to m_index private attribute
1274
1275        * src/Makefile.header (.DEFAULT): Remove temporary debugging action
1276
12772003-01-21  Christian Arnault  <carnault@lxplus032.cern.ch> 113
1278
1279        * src/cmt_symbol.cxx (all_print): Restore two-steps process for
1280        generating setenv calls (first normal env. variables then path-like)
1281        (all_print_clean):
1282
12832002-12-20  Christian Arnault  <carnault@lxplus032.cern.ch> 112
1284
1285        * src/cmt_parser.cxx (do_show_strategies): put a space character
1286
1287        * mgr/Makefile (cpp): Add the -O2 compiler option on default platforms
1288
1289        * mgr/requirements: Privately try the construction of the new CMTCONFIG
1290
1291        * src/cmt_parser.cxx (parse_arguments): Add cmt --version equivalence to cmt version
1292
12932002-12-19  Christian Arnault  <carnault@lxplus032.cern.ch> 111
1294
1295        * mgr/requirements: Change the name of cmt_cc_version.sh to
1296        cmt_dcc_version.sh for case insentivity of Darwin file system
1297
1298        * fragments/application (install_lib_dir):
1299        * fragments/library (install_lib_dir):
1300        * fragments/library_no_share (install_lib_dir):
1301
13022002-12-18  Christian Arnault  <carnault@lxplus032.cern.ch> 110
1303
1304        * src/cmt_symbol.cxx (resolve_value_for_macros): We have to
1305        suppress the conversion from %xxx% to $(xxx) on non-windows
1306        platform, since there were some occurrences of %xxx% patterns,
1307        which have a meaning in unix world!!
1308
1309        * src/Makefile.header (.DEFAULT): Only run once sub-makefile
1310
1311        * src/cmt_symbol.cxx (all_print_clean): Keep order of generation
1312        of sets and paths (instead of sets then paths)
1313
1314        * mgr/cmt_cc_version.sh: Helper scripts for compiler query commands
1315        * mgr/cmt_cxx_version.sh:
1316        * mgr/cmt_CC_version.sh:
1317        * mgr/cmt_gcc_version.sh:
1318
1319        * mgr/cmt_filter_version.sh:
1320
1321        * fragments/constituents_header (first): Make use of cmt show setup
1322       
1323        * src/cmt_parser.cxx (do_show_setup): Display sections rather than from the Makefile
1324       
1325        * src/cmt_use.cxx (class use_action_iterator): action_show_setup
1326        traverses the private subtrees (like show_uses)
1327
1328        * src/cmt.h (class Cmt):
1329        * src/cmt_parser.cxx (do_show_setup):
1330        * src/cmt_parser.h (enum): Add action_show_setup for grouping show uses,tags,path
1331
1332        * mgr/requirements: Manage a common (sh/csh) style for output
1333        redirection for system query commands
1334
1335        * fragments/library_no_share (install_lib_dir):
1336        * fragments/library (install_lib_dir):
1337        * fragments/application (install_bin_dir): Use cmt_install_command
1338        instead of install_command for install area mechanisms to avoit
1339        conflicts with the installer document generator
1340
13412002-12-18    <ARNAULT@lal.in2p3.fr> 109
1342
1343        * src\cmt_parser.cxx (do_show_strategies): Add display of setup strategy
1344        (print_context): Apply the build strategy
1345
1346        * src\cmt.h (class Cmt): Add get/set current_setup_strategy methods
1347        (class Cmt): Add m_current_setup_strategy attribute
1348
1349        * src\cmt_parser.h (enum): Add SetuStrategy enumeration
1350
1351        * src\cmt_syntax.cxx (class KwdSetupStrategy): Add SetupStrategy class
1352
1353        * src\cmt_parser.h (enum): Add setup_strategy keyword to control
1354        the production of <PACKAGE>CONFIG and <PACKAGE>ROOT env. variables
1355
1356        * src\cmt_parser.cxx (class StandardMacroBuilder): Add few debug printouts
1357
1358        * src\cmt_use.cxx (find_index): The returned index must be the
1359        m_index attribute of the Use object rather than the index in the
1360        use list of the package!!
1361
13622002-12-16  Christian Arnault  <carnault@lxplus032.cern.ch> 108
1363
1364        * src/Makefile.header (binclean): Add a quick binclean target
1365        (all): prepend a systematic config target
1366
1367        * fragments/constituents_header (all): Suppress dummy messages in gmake all and config
1368
13692002-12-16    <ARNAULT@lal.in2p3.fr> 107
1370
1371        * src\cmt.h (class Cmt): do_help remembers of the current action
1372        being parsed to have cmt help action
1373
1374        * src\cmt_syntax.h (class CommandParser): Command parsing
1375        mechanisms. So far only the help is handled. General map-based
1376        parsing mechanism is foreseen
1377
1378        * src\cmt_parser.h (enum ActionType): Add global actions for
1379        build, check, show only for error and help management
1380
1381        * src\cmt_syntax.cxx (show): Command Help management introduced (will be improved)
1382
1383        * src\cmt_parser.cxx (parse_arguments): Improve command help with SyntaxParser 
1384
1385        * mgr\requirements: Adding specs for query commands on WIN32
1386
13872002-12-12  Christian Arnault  <carnault@lxplus032.cern.ch> 106
1388
1389        * mgr/Makefile: Remove the mail sending after CMT rebuild... (!!!)
1390
1391        * src/cmt_symbol.cxx (resolve_macro_value): Detects patterns like:
1392        `$(macro-name)` within symbol definitions. The specified macro is expected
1393        to contain a shell command that will then be executed when expanding
1394        the macro.
1395
1396        * mgr/requirements: Add some system information queries:
1397        hardware
1398        system_version
1399        compiler_version
1400
1401        * mgr/cmt_filter_version.sh: Add a filtering script for system version
1402        informations.
1403
14042002-12-12    <ARNAULT@lal.in2p3.fr> 105
1405
1406        * mgr\requirements:  make use of SyntaxParser
1407        * src\cmt_triggers.cxx: idem
1408        * src\cmt_use.cxx: idem
1409        * src\cmt_parser.cxx: idem
1410        * src\cmt_pattern.cxx: idem
1411
1412        * src\cmt_syntax.cxx:
1413        * src\cmt_syntax.h (class Kwd): Introduce the new syntax parsing
1414        mechanism. It is based on a cmt_map of keyword objects. All requirements parsing
1415        operations are now implemented in the SyntaxParser singleton.
1416
1417        * src\cmt_parser.cxx (do_build_library_links): Introduce the
1418        cmt_symlink_cmd macro to override the internal management of
1419        symlink creation in case this is unavailable (eg on Windows)
1420
14212002-12-11  Christian Arnault  <arnault@lal.in2p3.fr> 104
1422
1423        * src/cmt_parser.cxx (do_set_versions): Make use of cmt broadcast
1424        to install version files in all packages. Inherit broadcast syntax.
1425       
1426        (do_broadcast): Add possibility to use template like in patterns
1427        Start with <version>.
1428
1429        * mgr/Makefile (cpp): Add profiling option
1430
1431        * fragments/check_java (check): Add run options
1432
1433        * src/cmt_use.cxx (find): Use Package grouping of uses
1434        (find_index): Use index registration information
1435        (move): Use index registration information
1436        (reorder): idem
1437        (need_new): Revisit the algo to avoid useless multiple reading of requirements files
1438        (add): Use index registration information
1439        (operate): Improve for without version directory style
1440        (Package): Introduce Package grouping of Use objects
1441
1442        * src/cmt_parser.cxx (do_set_versions): Use Package::is_cmt feature.
1443
1444        * src/cmt_string.cxx (replace): Optimize by reducing the calls to strlen.
1445
1446        * src/cmt_generator.cxx (build_dependencies): Use Package::is_cmt feature.
1447
1448        * src/cmt_include.cxx (print_all): Use Package::is_cmt feature.
1449
1450        * src/cmt_script.cxx (all_print_clean): Use Package::is_cmt feature.
1451
1452        * src/cmt_database.cxx (pattern_list_map): Discard dump features
1453
1454        * src/cmt_database.h (class Database): Restore tag management.
1455        Introduce PatternList and Package management
1456
1457        * src/cmt_project.cxx (class ProjectMgr): Suppress tag management
1458        from projects. Make it back to global management (from Database)
1459
1460        * src/cmt_pattern.h (class PatternList): Introduce PatternList
1461        class to group pattern by names. This class contains a list of
1462        Patterns of the same name but originating from different uses.
1463
1464        * src/cmt_use.h (class Use): renaming uses() to get_ordered_uses() and
1465        all_uses() to get_instances ()
1466
14672002-12-10  Christian Arnault  <arnault@lal.in2p3.fr> 103
1468
1469        * src/cmt_project.h (class Project): Add a tag_map to manage tags
1470
1471        * src/cmt_tag.cxx (add): Add a tag_map to manage tags
1472
1473        * src/cmt_tag.h (class Tag): Introduce a map of tags
1474
1475        * src/cmt_database.cxx (symbol_map): install a map of symbols
1476
1477        * src/cmt_database.h (class Database): install a map of symbols
1478
1479        * src/cmt_symbol.cxx (create): Use symbol map to find existing symbols
1480        (find): idem
1481        (symbol_map): access to the map of symbols from the database
1482        (clear_all): clear the database and the map
1483
1484        * src/cmt_symbol.h (class Symbol): Introduce the new typedef
1485        SymbolMap for a cmt_map of Symbols
1486
1487        * src/cmt_map.h: Introduce cmt_map.h implementing a map (binary tree)
1488
1489        * src/cmt_regexp.cxx (cmt_regexp): Rename cmt_node to cmt_regexp_node
1490        * src/cmt_regexp.h: Rename cmt_node to cmt_regexp_node
1491
14922002-12-09  Christian Arnault  <arnault@lal.in2p3.fr> 102
1493
1494        * fragments/check_java (check): Add run options (global and local)
1495
14962002-12-09  Christian Arnault  <carnault@lxplus032.cern.ch> 101
1497
1498        * mgr/requirements: Fix typo (trailing backslash)
1499
1500        * src/cmt_parser.cxx (parser): Add set versions operation to perform a
1501        global set version onto all used packages.
1502        (do_set_versions): Start implementing a draft scenario
1503        (parser): the set versions action require parsing the use graph.
1504
1505        * src/cmt.h (class Cmt): idem.
1506       
1507        * src/cmt_parser.h (enum): idem
1508
1509        * src/cmt_parser.cxx (configure_current_package): Set the default
1510        version expression in absence of both version directory AND
1511        version file to "v*" (instead of "v0")
1512
1513        * src/Makefile.header (binclean): Add new standard target for
1514        erasing at once the $(bin) directory
1515
15162002-12-08    <ARNAULT@lal.in2p3.fr> 100
1517
1518        * src\cmt_parser.cxx (do_set_version):
1519        (scan_path): Improving the management of various structuring styles for the FileScanner.
1520        (do_show_strategies): Displays structuring style in show_strategies
1521        (reach_current_package): Prepare the removal of automatic addition of the
1522        current package area to CMTPATH...
1523        (do_config): Fix discovery of structuring style
1524        (configure_current_package): Fix discovery of structuring style
1525        (class SequenceRunner): Accept version argument in sequence files
1526
1527        * src\cmt.h (class Cmt):
1528        * src\cmt_parser.h (enum): Add set version command to install version.cmt file
1529
1530        * src\cmt_system.cxx (is_version_directory): Handle wild cards in
1531        version ids detection
1532
1533        * mgr\requirements: Add Darwin definitions
1534
1535        * mgr\cmt_make_shlib_common.sh (temp_shlib): Protect against
1536        module files with space in their names
1537
1538        * mgr\requirements: try to remove CMT/v from PATH rather then CMT
1539        only so as to keep subpackages of CMT
1540
1541        * src\cmt_use.cxx (set_auto_imports_state): fix a bug on use pointer comparisons.
1542
1543        * fragments\nmake\constituent:
1544        * fragments\nmake\constituents_header (dirs): fix naming scheme : only .nmake
1545
1546        * mgr\NMake (cmt): protect VisualC.nmake generation against
1547        reminder of the physical location of the rebuild
1548
1549        * src\demo\demoA\requirements: Add PATH towards java on Windows
1550
1551        * mgr\NMake: Add a target to re-generate VisualC.nmake inside CMT
1552        so as to have proper nmake demo
1553
1554        * mgr\requirements: provide debug_option for WIN32 platform
1555
1556        * fragments\nmake\make_header (tags): Suppressed
1557        $(CMTCONFIG),$(CMTEXTRATAGS) and only keep $(CMTEXTRATAGS)
1558
1559        * fragments\nmake\constituents_trailer: added to NMake family
1560        * fragments\nmake\group: added to NMake family
1561
15622002-12-05    <ARNAULT@lal.in2p3.fr> 99
1563
1564        * src\cmt_vector.h (cmt_vector): replace static int frame_size by
1565        enum {frame_size} to C++ ANSI compliance.
1566
1567        * src\cmt_use.cxx (BestFitSelector::operate): When structurig
1568        style is withut-version-directory, the version field of the
1569        package may still contain wild cards. This has to be considered
1570        when checking compatibility.
1571
15722002-12-04  Christian Arnault  <carnault@lxplus032.cern.ch> 98
1573
1574        * src/cmt_use.cxx (set_auto_imports_state): bug fix (corresponding to v1r12p20021129)
1575
15762002-10-30  Christian Arnault  <carnault@lxplus032.cern.ch> 97
1577
1578        * src/cmt_vector.h (cmt_vector): define frame_size as a static
1579        const int instead of enum
1580
15812002-10-15  Christian Arnault  <carnault@lxplus032.cern.ch> 96
1582
1583        * src/cmt_use.cxx: Protect against use objects badly recorded
1584        within auto_imports_state vectors
1585
1586        * src\cmt_parser.cxx (scan_path): Fix algo to scan packages to
1587        cope with no-version style
1588        (class StandardMacroBuilder): Fix no-auto-imports algo
1589
15902002-09-24  Christian Arnault  <arnault@lal.in2p3.fr> 95
1591
1592        * mgr/ChangeLog.php: Introduce the online filter for ChangeLog file
1593
1594        * doc/documents.html: Use PHP to filter out ChangeLog
1595
1596        * mgr/Makefile (docs): Install ChangeLog and ChangeLog.php into web site
1597
1598        * src/setup.zsh: Add an empty leading line to avoid shell problems...
1599
1600        * src/Makefile.header (config): force the rebuild of $(tag).make
1601
16022002-08-06  Christian Arnault  <arnault@lal.in2p3.fr> 94
1603
1604        * fragments/library: Split action list so as to force the rebuild
1605        of shared libraries when it has been lost while shstamp is still
1606        there.
1607
16082002-06-21    <arnault@lal.in2p3.fr> 93
1609
1610        * src/cmt_parser.cxx (class SequenceRunner): Add support for comments in the sequence files
1611        (do_show_macro_names):
1612        (do_show_set_names):
1613        (print_symbol_names):
1614       
1615        (class StandardMacroBuilder): prepare the production of
1616        <constituent>_use_linkopts but let it unsused for the time being
1617
1618        (class StandardMacroBuilder): fix a typo
1619       
1620        (class StandardMacroBuilder): fix a bug
1621
1622        * src/cmt_parser.h (enum):
1623        * src/cmt.h (class Cmt): Adding do_show_macro_names,
1624        do_show_set_names, print_symbol_names functions
1625
1626        * src/setup.tcsh:
1627        * src/setup.zsh: move the -quiet option before verb to avoid confusion with new syntax for show xxxs
1628
1629        * src/demo/tprivate.cmt:
1630        * src/demo/demo1.cmt: improve test sequences
1631
1632        * mgr/requirements: add the macro preproc to prepare new scheme
1633        for dependency generation using cpp -MD
1634
1635        * mgr/Makefile (cpp): Specialize default cpp according to the platform
1636        (hosts): we don't need BOOL hosts anymore
1637        (demo): the demo sequence now exploits the sequence runner of CMT
1638        (tprivate): new test sequence on private uses.
1639
1640        * mgr/ChangeLog.awk: Adding this awk script to convert the ChangeLg file int HTML format
1641
1642        * doc/CMTDownload.html:
1643        * doc/download.html:
1644        * doc/install.html: doc improvements
1645
1646        * fragments/application: Temporarily stop using $(${CONSTITUENT}_use_linkopts)
1647
1648        * src/NMakefile.header (tag):
1649        * src/Makefile.header (tags):
1650        * fragments/nmake/constituents_header (tag):
1651        * fragments/nmake/make_header (tag):
1652        * fragments/constituents_header (tag):
1653        * fragments/make_header (tag): Add $CMTCONFIG to tags
1654
16552002-05-29    <arnault@lal.in2p3.fr> 92
1656
1657        * src\cmt_database.cxx:
1658        * src\cmt_database.h:
1659        * src\cmt_project.h (class Project):
1660        * src\cmt_project.cxx (Project): Introduce Project management
1661
1662        * mgr\requirements: Define the default project CMT
1663
1664        * src\cmt_parser.h (enum):
1665        * src\cmt_parser.cxx (select):
1666                Introduce apply_tag statements<br>
1667                Introduce first iteration on project management
1668       
1669        * src\cmt_symbol.cxx (action): replace direct access to member of
1670        tag objects by accessor functions.
1671
1672        * src\cmt_tag.cxx (add):
1673        * src\cmt_tag.h (class Tag):
1674                Clean up the for private members only<br>
1675                introduce action_apply to activate a tag from a requirements file<br>
1676                introduce tag expressions -> this defines primary tags versus
1677                computed ones. Selection is either obtained from m_selected for
1678                primary tags or computed from operands otherwise.
1679                so far only AND expressions are available.
1680
16812002-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 91
1682
1683        * src/cmt_symbol.cxx (select_last): Make use of Tag::is_selected
1684
1685        * src/cmt_tag.cxx (is_selected):
1686        * src/cmt_tag.h (class Tag): Add and_operands for defining tags
1687        from a bool expression of primary tags. Move selected to private
1688        area to ensure usage of is_selected which may compute the
1689        selection state from operands. The embedded state is now reserved
1690        to primary tags.
1691
16922002-05-28  Christian Arnault  <carnault@lxplus040.cern.ch> 90
1693
1694        * src/cmt_awk.cxx (class Parser): Replace the basic parsing engine
1695        by the local Parser class. It takes care of both EOL styles (Unix
1696        and Win) and of trailing backslashes for continuations.
1697
1698        * src/cmt_awk.h (class Awk): Added a function inc_line_number to
1699        increment the line number from the external text parser.
1700
1701        * src/cmt_cvs.cxx (filter): Added debug messages
1702
1703        * src/cmt_parser.cxx (do_awk):
1704        * src/cmt_parser.h (enum): Added action_awk
1705        * src/cmt.h (class Cmt): Added do_awk function for testing the Awk operator.
1706
17072002-05-27    <arnault@lal.in2p3.fr> 89
1708
1709        * doc\todo.html: Adding entries
1710
17112002-05-24  Christian Arnault  <carnault@lxplus012.cern.ch> 88
1712
1713        * src/cmt_cvs.cxx (class CvsImplementation): fix few problems with
1714        no_version_directory.
1715
17162002-05-23  Christian Arnault  <arnault@lal.in2p3.fr> 87
1717
1718        * src/demo/scenario.awk: Adapt to handle without_version_directory style
1719
1720        * src/demo/demo1.cmt: fix a typo
1721
1722        * src/cmt_parser.cxx (parse_requirements): Fixing bug on private
1723        macros for without_version_directory style
1724
1725        * mgr/Makefile (demo): Improving the demo scenario manager
1726
17272002-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 86
1728
1729        * doc/download.html:
1730        * doc/CMTDownload.html:
1731        * src/cmt_version.h (CMTVERSION): preparing tagging for v1r13...
1732
1733        * src/cmt_use.h (class Use): new helpers
1734
1735        * src/cmt_use.cxx (class use_action_iterator): re-design the scope
1736        hiding for private uses (was buggy for first level private uses)
1737        (reach_package): structuring style
1738        (get_full_path): new helper for centralizing the full package path
1739        computation
1740        (reduce_path): new helper to normal form with $<PACKAGE>ROOT
1741        (get_paths): add debug prints
1742        (show_sub_uses): structuring style
1743
1744        * src/cmt_system.h (class CmtSystem):
1745        * src/cmt_system.cxx (reduce_file_separators): helper to reduce
1746        multiple file separators into one
1747        (is_package_directory): structuring style
1748
1749        * src/cmt_pattern.cxx (apply): add debug prints
1750
1751        * src/cmt_parser.h (enum): Add CmtStructuringStyle options
1752
1753        * src/cmt_parser.cxx:
1754         Introducing support for structuring style.
1755         m_current_structuring_style global variable
1756         (scan_path):
1757         (scan_package):
1758         (run):
1759         (PackageCollector::run):
1760         (configure): calling configure_current_structuring_style
1761         (configure_current_package):
1762         (configure_current_structuring_style): new method
1763         (do_broadcast): use Use::get_full_path
1764         (do_config):
1765         (do_create):
1766         (do_help):
1767         (do_lock): suppress unused local variable
1768         (do_remove):
1769         (do_show_macros): add pattern for selection instead of default '*'
1770         (do_show_sets): idem
1771         (do_unlock): suppress unused local variable
1772         (get_current_strategy): new method
1773         (install_cleanup_scripts): install cleanup scripts on windows
1774         (load):
1775         (parse_arguments): re-number argument array
1776         (parse_arguments): support arguments for cmt show macros
1777         (parse_arguments): support arguments for cmt show sets
1778         (parse_arguments): -with_version_directory option
1779         (parse_arguments): -without_version_directory option
1780         (parse_requirements):
1781         (parser): support arguments for cmt show macros
1782         (parser): support arguments for cmt show sets
1783         (print_context): use Use::get_full_path
1784         (print_macros): selection pattern (reg. expression) on symbols
1785         (reach_current_package):
1786         (set_standard_macros): add getting pwd
1787         (set_standard_macros): structuring style
1788
1789        * src/cmt_generator.cxx
1790         (SourceFile::set): use CmtSystem::reduce_file_separators
1791         (prepare_use_context): idem
1792         (prepare_use_context): use Use::get_full_path
1793         (set_full_name): idem
1794         (build_make_setup): idem
1795
1796        * src/cmt_fragment.cxx
1797         (print): use Use::reduce_path factorization
1798         (locate): use Use::get_full_path factorization
1799         (locate): Support structuring style options
1800
1801        * src/cmt_cvs.cxx:
1802          + need cmt.h for accessing structuring style
1803          + support for structuring style
1804
1805        * src/cmt.h (class Cmt):
1806        Adding support for structuring style
1807       
1808        do_show_macros now accepts arguments
1809
1810        do_show_sets now accepts arguments
1811
1812        print_macros now accepts a pattern for selecting symbols
1813
1814        * src/demo/tprivate.cmt: Scenario for testing private uses and
1815        -no_auto_imports
1816
1817        * src/demo/demo1.cmt: Scenario for the general test/demo sequence.
1818       
1819        * src/demo/scenario.awk: Add a script for installing
1820        scenarios. This script can
1821          - create packages
1822          - install text files relatively to the packages.
1823
1824        * mgr/Makefile (demo): Replace the copy operations for the demo
1825        targets by an awk-based mechanism (only for Unix -> keep old
1826        mechanism for Windows). The scenario.awk script is able to create
1827        packages and install text files into the newly created packages.
1828
1829        Add a target (a scenario) for testing private uses and
1830        -no_auto_imports
1831
1832        Add an help target describing all special targets.
1833
1834        * fragments/constituents_header (first): Differentiate setup.make
1835        with the package name when $(bin) is common.
1836
18372002-05-17  unknown  <arnault@lal.in2p3.fr> 85
1838
1839        * doc/todo.html: Adding a web page for ToDo list, and bug reports.
1840
1841        * src/cmt_parser.cxx (install_test_setup_scripts):
1842        * src/cmt_parser.cxx (install_test_cleanup_scripts): Fix the bug
1843        to "source setup" standalone with a current directory outside the
1844        package itself.
1845
18462002-05-15  Christian Arnault  <arnault@asc.lal.in2p3.fr> 84
1847
1848        * src/cmt_version.h (CMTVERSION): Preparing the new tag v1r12p20020515
1849
1850        * doc/CMTDoc.html: Upgrade the documentation.
1851
1852        * src/setup.tcsh:
1853        * src/setup.zsh: Add all_tags to the list of know show options
1854
1855        * src/cmt_tag.cxx (show_definition):
1856        * src/cmt_tag.h (class Tag): Added Tag::show_definition
1857        (unfiltered show method wrt the selected state)
1858
1859        * src/cmt_parser.cxx (do_help): Implement the new cmt show all_tags command.
1860
1861        * src/cmt.h (class Cmt): Added Cmt::do_show_all_tags ()
1862
1863        * src/cmt_parser.h (enum): Added action_show_all_tags
1864
1865        * mgr/requirements: remove -I$(inc) from default value of ccomp
1866        macro (no longer needed and has side effects)
1867
1868        * src/cmt_use.cxx (add): Protect against null use pointer when not found.
1869
1870        * src/cmt_tag.cxx (action): do increase the tag ref list when
1871        overridden. It used to be un-overridden...
1872
1873        * fragments/constituents_trailer (clean): add a semi-colon between the two shell commands.
1874       
1875        * src/cmt_system.cxx (create_symlink): Explicit .c_str() in system calls.
1876
1877        * doc/table.html: setup a direct URL to CVSWeb rather than through
1878        an intermediate page
1879
18802002-04-12  Christian Arnault  <carnault@lxplus030.cern.ch> 84
1881
1882        * doc/CMTDoc.html:
1883        * src/setup.zsh:
1884        * src/setup.tcsh:
1885        * src/cmt_parser.cxx (do_help):
1886        * src/cmt.h (class Cmt):
1887        * src/cmt_parser.h (enum): introduce action_show_all_tags do
1888        display all defined tags (while action_show_tags only shows all
1889        active tags)
1890
1891        * fragments/constituents_trailer (clean): typo in the clean target.
1892
18932002-04-11    <arnault@lal.in2p3.fr> 83
1894
1895        * src\cmt_parser.cxx (print_clean): Suppress the unset of CMTCONFIG
1896
18972002-04-10    <arnault@lal.in2p3.fr> 82
1898
1899        * fragments\library:
1900        * fragments\library_no_share: Suppress the experimental change for
1901        erasing the object files after filling the library
1902
19032002-04-10  Christian Arnault  <carnault@lxplus044.cern.ch> 81
1904
1905        * src/cmt_version.h: preparing tagging for v1r12
1906
1907
1908       
1909        * mgr/requirements: Adapt to Darwin
1910
1911        * src/cmt_symbol.cxx (action):
1912        * src/cmt_use.cxx (action):
1913        * src/cmt_use.h (class Use): Introduce m_has_native_version
1914
1915        * mgr/requirements: Add standard $(library_prefix) and $(library_suffix) macros
1916
1917        * mgr/cmt_make_shlib_common.sh (temp_shlib): Set verbose mode to
1918        the linker command and control it through the QUIET macro. Fix the
1919        temporary expansion directory
1920       
1921        * mgr/cmt_make_shlib_common.sh (temp_shlib):
1922        * fragments/library_header:
1923        * fragments/cleanup_library: Add standard $(library_prefix) and $(library_suffix) macros
1924
1925        * fragments/constituents_trailer (makefilesclean):
1926        * fragments/constituent: remove specific makefile fragments for
1927        the constituents (instead of *.make)
1928
1929        * fragments/library_no_share:
1930        * fragments/library: erase *.o files after filling the library
1931
1932        * src/cmt_use.h (class Use): Add use::sub_use_auto_imports to save
1933        specifications on sub uses. Add Use::set_auto_imports to possibly
1934        promote auto_imports to sub uses when it is changed from Off to
1935        On.
1936
1937        * src/cmt_parser.h (enum):
1938        * src/cmt_pattern.cxx (show_all_applied_patterns):
1939        * src/cmt_pattern.h (class Pattern): adding Pattern::show_all_applied_patterns ()
1940        * src/setup.tcsh:
1941        * src/setup.zsh:
1942        * src/cmt_parser.cxx (do_help):
1943        * src/cmt.h (class Cmt): Adding Cmt::do_show_applied_patterns for
1944        the new command "cmt show applied_patterns"
1945
19462002-04-04  Christian Arnault  <carnault@lxplus044.cern.ch> 80
1947
1948        * src/cmt_use.cxx (add): Protect against duplicated registration of
1949        current_use.
1950
1951        * src/cmt_parser.cxx (install_setup_scripts): Append an empty line
1952        at the end of the generated setup script (problem on some shells)
1953       
1954        * src/cmt_parser.cxx (do_create):
1955        * src/cmt.h (class Cmt): Change the signature of the do_create
1956        function to receive its arguments from the "arguments" list rather
1957        than changing current_package etc...
1958
1959        * src/Makefile.header: Add a systematic config target (for backward compatibility)
1960
1961        * fragments/constituents_trailer (binclean): added the binclean
1962        target to completely remove the binary directory at once.
1963
1964        * fragments/make_header:
1965        * fragments/constituents_header:
1966        * fragments/nmake/make_header (CMTEXTRATAGS):
1967        * fragments/nmake/constituents_header (CMTEXTRATAGS): Remove the settings of CMTCONFIG
1968
19692002-03-22  Christian Arnault  <carnault@lxplus037.cern.ch> 79
1970
1971        * src/cmt_symbol.cxx (suppress_OS_delimiters): operate on %...%
1972        patterns only on Windows machines.
1973
19742002-03-20  Christian Arnault  <carnault@lxplus042.cern.ch> 78
1975
1976        * mgr/Makefile (Atlas): Suppress HP rebuild for Atlas group
1977
1978        * src/cmt_cvs.cxx (filter): Improve the recursive passes and
1979        handle the new qualifiers of the use statements.
1980
1981        * fragments/cleanup_header (clean): Fix bad insertion of the .DEFAULT target
1982
1983        * src/cmt_symbol.cxx (suppress_OS_delimiters): Introduce this new
1984        function to ensure that only $() syntax is used in tag makefiles
1985        (ie suppress ${} and %% syntaxes)
1986        (show_macro): apply this new function for action_build_tag_makefile
1987
1988        * src/cmt_generator.cxx (reset): Do not generate the Visual
1989        directory on non-windows machines
1990
1991        * fragments/group (clean): Suppress one echo on gmake clean
1992
19932002-03-14  Christian Arnault  <carnault@lxplus037.cern.ch> 77
1994
1995        * src/cmt_parser.cxx (set_standard_macros): Cleanup management of m_current_tag
1996
19972002-03-07  Christian Arnault  <carnault@lxplus048.cern.ch> 76
1998
1999        * src/cmt_parser.cxx (print_context): Suppress the automatic
2000        settings of CMTEXTRATAGS
2001
2002        * src/Makefile.header: Do not change CMTCONFIG
2003        * src/NMakefile.header: Do not change CMTCONFIG
2004
20052002-02-27  Christian Arnault  <carnault@lxplus042.cern.ch> 75
2006
2007        * fragments/jar: Adding removal of jar file for clean target
2008
2009        * src/cmt_use.cxx (show_sub_uses): show no_auto_imports status
2010
2011        * src/cmt_parser.cxx (reach_current_package): reapply global
2012        pattern at once until side effects are solved in user projects.
2013
2014        * fragments/jar: Apply an old fix to Unix fragments (was applied
2015        to Windows only)
2016
20172002-02-26  Christian Arnault  <carnault@lxplus016.cern.ch> 74
2018
2019        * src/cmt_use.cxx (move_to): select_alternate must be applied
2020        after reach_package for searches against an absolute path or
2021        against the current directory.
2022
20232002-02-25    <arnault@lal.in2p3.fr> 73
2024
2025        * fragments/cleanup_header (clean): Add default action
2026
2027        * src/Makefile.header (common_target): Remove debug print
2028
2029        * src\cmt_parser.cxx (parse_requirements): Apply global patterns
2030        right after parsing a requirements file, and only considering the
2031        Use context, one at a time (rather than applying all global
2032        patterns to all Uses at once after reading all requirements file)
2033
2034        * src\cmt_pattern.cxx (apply_all_globals):
2035        * src\cmt_pattern.h (class Pattern): Add a method to apply all
2036        global patterns in the context of only one Use object.
2037
20382002-02-24    <arnault@lal.in2p3.fr> 72
2039
2040        * src\cmt_system.cxx (command_separator): New method for getting
2041        the shell command separator (& or ;)
2042
2043        * src\cmt_cvs.cxx (class CvsImplementation): Add
2044        CmtSystem::command_separator() between cvs co of each branch
2045        (instead of newlines).
2046
2047        * src\cmt_system.cxx (has_device): Accepts the \\xxx\ syntax as a
2048        device name in file paths on windows.
2049
2050        * src\cmt_parser.cxx (configure_cmt_path): Hide show_set action
2051        when recursive definition of CMTCONFIG
2052
2053        * src\cmt_use.cxx (need_new): Some optimizations
2054       
2055        * src\cmt_use.cxx (move_to): Exchange the priority of CMTPATH
2056        versus version when selecting the best version.
2057
2058        * src\cmt_parser.cxx (use_cmt): Hide CMTDEBUG while parsing the
2059        requirements of CMT itself
2060
20612002-02-20  Christian Arnault  <arnault@lal.in2p3.fr> 71
2062
2063        * src/cmt_parser.cxx (do_broadcast): Fix a bug for setting the
2064         style the the Current use. This effect was induced by the new
2065         mechanism for constructing the Current Use object, now a singleton
2066         of the Use class.
2067
20682002-02-07    <arnault@lal.in2p3.fr> 70
2069
2070        * src\cmt_use.cxx (change_path): Add a m_located flag in Use class
2071        to record the success of the package localization. Test against
2072        this info instead of real_path to allow for package found in
2073        current directory (where real_path stays empty)
2074
2075        * src\cmt_parser.cxx (configure):
2076
2077        * src\cmt_use.cxx (show_sub_uses): Ensure that the cmt show uses
2078        displays the correct scoping information for uses and
2079        sub-uses. cmt show uses also displays the full tree even when it
2080        contains private uses.
2081
20822002-02-06    <arnault@lal.in2p3.fr> 69
2083
2084        * src\cmt_use.cxx (class use_action_iterator): Install UseContext
2085        to manage proper propagation of -no_auto_imports
2086
20872002-01-30    <arnault@lal.in2p3.fr> 68
2088
2089        * src/cmt_parser.cxx (parse_arguments): Fix the bug of private
2090        environment variables which could not be set even within the
2091        package (bug in the management of the -pack= -version= -path=
2092        options).
2093
2094        * src/cmt.h : Install all attributes of the Cmt class as private
2095        attributes, and make them follow the convention : m_xxx. This
2096        implies to install few accessor methods.
2097
20982002-01-29    <arnault@lal.in2p3.fr> 67
2099
2100        * src/cmt_use.cxx (class use_action_iterator): The private uses
2101        are accessed for
2102            - broadcast operations
2103            - show uses operations
2104
2105        * src/cmt_symbol.cxx (action): Expands the specified script name
2106        for the setup_script and cleanup_script statement.
2107          Protect against empty script names.
2108
21092002-01-11  Christian Arnault  <carnault@lxplus035.cern.ch> parallelbuilds
2110
2111        * src/Makefile.header: Reorganize basic Makefile fragment
2112        generation to permit better support for parallel & concurrent
2113        builds.  Mimize also the number of makefile fragments generated
2114        and kept : only $(tag).make remains in ../cmt . All other are
2115        thrown away after use.
2116
2117        Make those changes a branch "parallelbuilds"
2118       
2119
21202002-01-09  Christian Arnault  <carnault@lxplus001.cern.ch> 66
2121
2122        * src/NMakefile.header (tags): Apply the fix for tags onto
2123        NMakefile.header
2124
21252002-01-07    <arnault@lal.in2p3.fr> 65
2126
2127        * src/Makefile.header (tags): Attempt to fix the continuity break
2128        between v1r9 and v1r10, by re-installing the possibility to use
2129        gmake tag=<...> rather than having to use source setup.[c]sh
2130        -tag=<...>
2131
2132        (This fix has to be tested before any validation)
2133
21342001-11-26  Christian Arnault  <carnault@atlas50.cern.ch> 64
2135
2136        * Tagging v1r10p20011126
2137       
2138        * src/Makefile.header: tag is now ${CMTCONFIG} and tags ${CMTEXTRATAGS}
2139
2140        * mgr/requirements: Provide the macro tags as ${CMTEXTRATAGS}
2141
2142        * src/cmt_tag.cxx: Various changes in strategy for tags:
2143          - tag inclusion (defined by the "tag" statement) transmits the priority.
2144          - tag selection can be discarded by exclusion specifications. Exclusion
2145          qualifies a set of contradictory tags. Contradictory tags will be selected
2146          according to their priority or to their declaration order in case of
2147          equal priority.
2148
2149        * src/cmt_parser.h (enum Priority): Change the priority list:
2150        Arguments get highest priority
2151        then CMTCONFIG
2152        then user tags (those defined in requirements)
2153
2154        * fragments/make_setup: produce uses.make and tags.make
2155
2156        * src/cmt_parser.cxx (parse_arguments):
2157        * src/cmt.h (class Cmt): Suppress the mechanism of
2158        primary_tag. CMTCONFIG is enough.
2159
21602001-11-21  Christian Arnault  <carnault@lxplus040.cern.ch> 63
2161
2162        * src/cmt_symbol.cxx (add_value_to_list): fix protection on
2163        value_list.size () to start at 1 (not at 2)
2164
2165        * src/cmt_symbol.cxx (build): Reflective values of Sets should
2166        consider previous setenv settings.
2167
2168        * src/cmt_generator.cxx (build_dependencies): Using ../$(tag) for
2169        output base of the dependencies fragment rather then
2170        Cmt::current_tag
2171
2172        * src/Makefile.header (CMTPRIMARYTAG): tag=... argument of gmake
2173        will override CMTPRIMARYTAG. However internal tag macro is only
2174        replaced with ${CMTCONFIG}
2175
2176        * fragments/make_setup (config): create a tags.log (for cmt show
2177        tags)
2178
2179        * mgr/cmt_make_shlib_common.sh: Add the ${lib} prefix to the
2180        temporary expansion directory. Fix a bug in sed filter for all
2181        module files.
2182
2183        * src/cmt_parser.cxx (configure_tags): Add a protection against
2184        absence of CMTPRIMARYTAG
2185
2186        * src/cmt_system.cxx (create_symlink):
2187        * src/cmt_system.h (class CmtSystem): Adding the create_symlink
2188        function.
2189
2190        * src/cmt_parser.cxx (do_build_library_links): Using direct system
2191        calls to create symlinks.
2192
21932001-11-13  Christian Arnault  <carnault@lxplus010.cern.ch> 62
2194
2195        * Tagging v1r10p20011113
2196
2197        * mgr/requirements:
2198        * src/constituents.make (build_library_links): Define macros for
2199        build_library_links and remove_library_links
2200
2201        * fragments/make_setup (config): Add build_library_links target
2202
2203        * src/cmt_parser.cxx (set_standard_macros): Fix bad production of
2204        use_includes when private is used.
2205
2206        * src/cmt_parser.cxx (do_broadcast): Fix -begin=<pattern> error
2207
22082001-11-08  Christian Arnault  <carnault@lxplus028.cern.ch> 61
2209
2210        * src/cmt_version.h: tagging v1r10
2211
2212        * src/cmt_system.cxx (add_cmt_path): Get cwd alias to each selected path.
2213
2214        * src/cmt.h (class Cmt): Add cmt_path_cwd vector of all CMTPATH
2215        entries normalized to getcwd.
2216
2217        * src/cmt_generator.cxx (java_file_action):
2218        * src/cmt_generator.cxx (proto_file_action):
2219        * src/cmt_generator.cxx (module_file_action): Pass reference to the constituent in order
2220        to transmit constituent variables to the fragment.
2221
2222        * src/cmt_parser.cxx (set_standard_macros): Insert a space
2223        character for all generated macro_append operations.
2224
2225        * src/cmt_fragment.cxx (xxxcopy):
2226        * src/cmt_fragment.h (class Variable): Adding the expansion of
2227        fragments variables using both the ${} syntax AND the $() syntax.
2228
2229        * src/cmt_tag.h :
2230        * src/cmt_tag.cxx (is_selected): Change the Tag::selected attribute to bool.
2231
22322001-11-07  Christian Arnault  <carnault@lxplus006.cern.ch> 60
2233
2234        * src/cmt_symbol.cxx (build): Implement the possibilty to have
2235        reflexive asignment to symbols: when a symbol value is exactly
2236        specified (from set, macro or path statements) using $(<name>) or
2237        ${<name>} or %<name>% then the old value is preserved for all
2238        corresponding selectors.
2239
2240        * src/cmt_parser.cxx (set_standard_macros): Re-activate -import
2241        options (that had been discarded!)
2242
2243        * src/cmt_use.cxx (add): Generate an error when a package is not
2244        found (the error was only generated at "cmt show uses")
2245
2246        * src/cmt_constituent.cxx (show): Display -import options
2247
2248        * fragments/dependencies: Force checking $(bin)
2249
2250        * fragments/constituent: Adding some printout to display when
2251        constituent fragment is rebuilt
2252
2253        * src/cmt_parser.cxx (set_standard_macros): Re-validate
2254        -no_auto_imports option for use and -import options for
2255        constituents.
2256
22572001-11-06  Christian Arnault  <carnault@lxplus038.cern.ch> 59
2258
2259        * src/cmt_generator.cxx (build_document_makefile): protect against
2260        missing files (causing infinite loops in Make)
2261
22622001-11-05  Christian Arnault  <carnault@lxplus005.cern.ch> 58
2263
2264        * mgr/Makefile (application_suffix): Define application_suffix in
2265        the CMT's Makefile
2266
2267        * src/cmt_parser.cxx (print_context): Do not generate ROOT and
2268        CONFIG for cmt_standalone packages.
2269
2270        * mgr/requirements: Reomving the cmt_selector.cxx source file.
2271
2272        * src/constituents.make: Force the dirs target for
2273        build_library_links
2274
2275        * src/cmt_parser.cxx (restore_all_tags): Get the value of
2276        CMTPRIMARYTAG to configure Cmt::primary_tag.
2277
2278        Leave unchanged the primary_tag and the extra_tags except if
2279        overridden through the -tagxxx= options
2280
2281        * src/cmt_parser.h (enum): Add PrioritySite in the list of
2282        possible priorities.
2283
2284        * src/cmt.h (class Cmt): Add the restore_all_tags function. Add
2285        the extra_tags attribute . Change the strategy of tag persistency:
2286
2287          o CMTPRIMARYTAG always contains what had been specified using
2288        the -tag= option,
2289
2290          o CMTEXTRATAGS contains what had been manipulated by -tag_add=
2291        and -tag_remove= options.
2292
2293          o CMTCONFIG is setup independently of the primary tag.
2294
2295        * src/Makefile.header (primary_tag): Propagate tags using
2296        CMTPRIMARYTAG instead of CMTCONFIG (except when CMTPRIMARYtAG is
2297        not yet defined)
2298
2299        * src/cmt_constituent.cxx (parse): Fix the word parsing for
2300        constituent specification...
2301
23022001-11-02  Christian Arnault  <arnault@asc.lal.in2p3.fr> 57
2303
2304        * src/cmt.h
2305        * src/cmt_database.cxx
2306        * src/cmt_database.h
2307        * src/cmt_parser.cxx
2308        * src/cmt_parser.h
2309        * src/cmt_selector.cxx
2310        * src/cmt_selector.h
2311        * src/cmt_symbol.cxx
2312        * src/cmt_symbol.h
2313        * src/cmt_tag.cxx
2314
2315        * src/cmt_tag.h:
2316        Suppressing cmt_selector objects (only tags are needed!!)
2317        Add tag_exclude keyword for building tag-exclusions.
2318
23192001-10-31  Christian Arnault  <carnault@atlas50.cern.ch> 56
2320
2321        * mgr/requirements: Don't need to explicitly declare make_fragment
2322        headers (automatically declared in the -header= option)
2323
2324        * src/cmt_symbol.cxx (print_clean): Cleaning up path variables may
2325        be either unsetenv when the result is empty or setenv if not.
2326       
2327        * fragments/application_launcher: evolution
2328
2329        * src/cmt_parser.cxx (configure_tags): protect against empty
2330        declaration of CMTCONFIG : by default will take uname...
2331
23322001-10-30  Christian Arnault  <carnault@atlas50.cern.ch> 55
2333
2334        * src/cmt_symbol.cxx (clean): Implement the cleanup correctly,
2335        with in particular the cleanup of the path variables.
2336
2337        * src/cmt_parser.cxx (print_context): improve output of cmt show tags
2338
2339        * src/cmt_symbol.h (class Symbol): Add clean_macro_value for
2340        building the result of the clean operations induced by this symbol
2341        (only implemented for path_xxx)
2342
2343        * src/cmt_parser.cxx: New post-context requirements file :
2344        user_context in addition to home package.  Added Use* use
2345        arguments to configure_xxx functions to transfer.
2346
2347        * src/cmt_parser.cxx(configure_cmt_path): Attempt to make use of
2348        CMTPATH definitions from requirements files.
2349
2350        * src/cmt_parser.cxx(configure_config_selector): Install context
2351        information for tag creation
2352
2353        * src/cmt_parser.cxx(configure_home): Attempt to make use of
2354        CMTHOME definitions from requirements files.
2355
2356        * src/cmt_parser.cxx(configure_user_context): Install user_context
2357        management
2358
2359        * src/cmt_parser.cxx(configure_site_selector): Get CMTSITE from
2360        requirements as well
2361
2362        * src/cmt_parser.cxx(configure_tags): Add a configure_tags
2363        finction to retreive tags from all possible sources: CMTCONFIG
2364        (from req) then CMTPRIMARYTAG then CMTCONFIG then CMTBIN then
2365        append all CMTEXTRATAGS.
2366
2367        * src/cmt_parser.cxx(parse_arguments): fix parsing bug for the
2368        -home= argument
2369
2370        * src/cmt_parser.cxx(parser): Set action_show_path to be recursive
2371
2372        * src/cmt_parser.cxx(parser): Call the HOME package just after
2373        using CMT. Call the use_context package just after reaching the
2374        current package.
2375
2376        * src/cmt_parser.cxx(print_clean): reformat the output (with
2377        newlines). Clear CMTPRIMARYTAG CMTEXTRATAGS and CMTCONFIG.
2378
2379        * src/cmt_parser.cxx(print_context): set CMTPRIMARYTAG
2380        CMTEXTRATAGS and CMTCONFIG from the current definitions.
2381
2382        * src/cmt_parser.cxx(set_standard_macros): Rationalize the
2383        production of current_tag
2384
2385        * src/cmt_parser.cxx(use_user_context_requirements):
2386
2387        * src/cmt_use.cxx (show_all): Display new user_context package
2388
2389        * src/cmt_use.cxx (class use_action_iterator): query function ok()
2390        includes both home_package and user_context_package
2391
2392        * src/cmt_use.cxx (reach_package): special treatment for
2393        home_package and user_context_package since they do not follow the
2394        standard location scheme.
2395
2396        * src/cmt_use.cxx (add): Improve the detection of packages not found.
2397
2398        * src/cmt_tag.cxx (unmark): Reset the use pointer
2399
2400        * src/cmt_tag.cxx (action): Install the use origin.
2401
2402        * src/cmt_tag.cxx (add): Install the use origin and the context
2403        information. It will be reset to the new context in case of
2404        re-definition. Suppress various excessive debug printouts.
2405
2406        * src/cmt_tag.cxx (clear): clear use and context new information
2407
2408        * src/cmt_tag.cxx (show): Improve the display of tags with
2409        hierarchical display of subtags and context information.
2410
2411        * src/cmt_tag.h (class Tag): Added Use* use parameter to action
2412        and add methods. Store a pointer to the package (Use*) who
2413        originated the definition, and a context string to qualify the
2414        definition.
2415
2416        * src/cmt_system.h (class CmtSystem):
2417        * src/cmt_system.cxx (add_cmt_paths_from_text): Factor out the
2418        code to register a set of CMTPATH entries, with the context
2419        information.
2420       
2421        * src/cmt_system.cxx (is_home_package): Add is_home_package and
2422        is_user_context_package query functions.
2423
2424        * src/cmt_system.cxx (get_cmt_site): Default site is empty
2425        (instead of LAL)
2426
2427        * src/cmt_symbol.cxx (print_clean): Suppress some obsolete
2428        print_tabs () formattings. Apply unset instead of unset for
2429        aliases as well.
2430       
2431        * src/cmt_symbol.cxx (action): Add special treatment for CMTXXX
2432        environment variables : the new setting has to be taken into
2433        account as soon as it is parsed.
2434
2435        * src/cmt_selector.cxx (create): remove some debug code.
2436
2437        * src/cmt_generator.cxx (build_default_makefile): Produce only
2438        Makefile on Unix and only NMake on Windows.
2439
2440        * mgr/requirements: Renaming new script_launcher fragments into
2441        application_launcher
2442
2443        * src/cmt.h (class Cmt): Added Use* use arguments to configure_xxx
2444        functions to transfer.
2445       
2446        Added use_user_context_requirements () to include post-context
2447        requirements file.
2448
2449        Added the static value primary_tag to store the primary tag.
2450       
2451
2452        * src/cmt_generator.cxx (build_default_makefile): Create Makefile
2453        only un Unix and NMake only on WIN32
2454
24552001-10-24  Christian Arnault  <carnault@lxplus038.cern.ch> 55
2456
2457        * src/cmt_parser.cxx (parser): add the recursive property to
2458        action_show_path.
2459
2460        * src/cmt_system.h (class CmtSystem):
2461        * src/cmt_system.cxx (get_user_context_package):
2462        * src/cmt_system.cxx (is_user_context_package):
2463        * src/cmt_use.cxx (add):
2464        (show_all):
2465        (class use_action_iterator):
2466        (reach_package):
2467        (add):
2468        * src/cmt_parser.cxx (configure):
2469        * src/cmt_parser.cxx (parser):
2470        * src/cmt_parser.cxx (parse_arguments):
2471        * src/cmt_parser.cxx (configure_user_context):
2472        * src/cmt.h (class Cmt):
2473
2474        Adding user_context equivalent of CMTHOME support for post
2475        requirements file. The corresponding env. var. is CMTUSERCONTEXT.
2476        The complete scheme for supporting PRE-parsed HOME requirements
2477        file is exactly copied to those POST-parsed files.
2478
2479        * mgr/requirements:
2480        * fragments/script_launcher_header:
2481        * fragments/script_launcher:         
2482        * fragments/script_launcher_trailer: Introduce a new document
2483        generator for launching scripts. The same convention as the
2484        check_application is reused, for pre-action, argument passing and
2485        post-action. Several scripts (specified in the source list of the
2486        document) can be executed in sequence.
2487
2488        * src/cmt_use.cxx (class use_action_iterator):
2489        * src/cmt_system.cxx (is_home_package):
2490        * src/cmt_system.h (class CmtSystem): Add the is_home_package
2491        function to encapsulate the syntax of a HOME package (and apply it
2492        in Use::use_action_iterator)
2493
2494        * src/cmt_symbol.cxx (action): Prepare specific actions when the
2495        parsed symbol is one of the CMTXXX standard symbols. So far
2496           CMTHOME -> re-configure home.
2497
2498        * src/cmt_parser.cxx (parser): apply use_home_requirements right
2499        after reading CMT requirements file (ie. before reading current
2500        package)
2501
2502        * src/cmt_parser.cxx (configure_home): understand the possible
2503        "set CMTHOME" declarations (but keep $CMTHOME)
2504
2505        * src/cmt_parser.cxx (reach_current_package): * src/cmt_system.cxx
2506        (get_cmt_paths): Restore the automatic addition of "current
2507        package" in the CMTPATH list.
2508
2509        * src/cmt_parser.cxx (parse_arguments): bad parsing of the
2510        -home=xxx argument
2511
2512       
2513
25142001-10-23  Christian Arnault  <carnault@lxplus007.cern.ch> 54
2515
2516        * mgr/Makefile (demo): Need to add CMTPATH towards ${CMTROOT}/demo
2517        since CMTPATH to current package is no longer supported !!!
2518
2519        * fragments/nmake/check_application (check):
2520        * fragments/nmake/cleanup_application:
2521        * fragments/nmake/application_header:
2522        * fragments/nmake/application:
2523        * fragments/application:
2524        * fragments/application_header:
2525        * fragments/cleanup_application:
2526        * fragments/check_application (check):
2527        * mgr/requirements: Create a new standard macro
2528        "application_suffix" for making possible to change the .exe
2529        default suffix of applications
2530
25312001-10-22  Christian Arnault  <carnault@lxplus026.cern.ch> 53
2532
2533        * src/cmt_parser.cxx :
2534        * src/cmt_system.cxx : Suppress the automatic addition of current
2535        package's path into CMTPATH.
2536
2537        * mgr/Makefile: Change the method to rebuild
2538        cmt_dependencies by copying what is obtained from CVS. Rebuild it
2539        manually when needed.
2540
25412001-10-19  Christian Arnault  <carnault@lxplus025.cern.ch> 52
2542
2543        * fragments/make_setup (config): Creating uses.log needs to use an
2544        intermediate temporary file
2545
2546        * src\setup.[c]sh : Avoid re-definition of CMTCONFIG
2547
2548        * src\cmt_use.cxx (add): temporarily discard the mecanism by which
2549        uses.log files are read before the requirements files.
2550
2551        * src\cmt_system.cxx (is_version_directory): returns -1 for fields
2552        that were wildcarded
2553
2554        * src\cmt_use.cxx (add):
2555        * src\cmt_use.cxx (need_new):         
2556        * src\cmt_use.cxx (BestFitSelector::operate): Start the
2557        implementation of priority control between explicit use
2558        specification over wildcarded ..
2559
2560        * src\cmt_parser.cxx (reach_current_package): Change the value of
2561        the CMTPATH for the current package once it has been reached (but
2562        before reading its requirements file)
2563       
2564        * src\cmt_parser.cxx (install_setup_scripts): (improvement) Add the transfer of
2565        arguments towards cmt.exe into setup.bat
2566
2567        * src\cmt_system.cxx (get_cmt_paths): (bug fix) path_sources was
2568        not cleared as paths.
2569        Prepend "current path" to the path list under "current package".
2570
2571        * src\cmt_parser.cxx (parse_arguments): (bug fix) Suppress
2572        enclosing quotes around cmt.exe arguments so that setup.bat can
2573        transmit arguments properly
2574
2575        call setup.bat "-tag_add=a,b,c"
2576
25772001-10-18  Christian Arnault  <carnault@lxplus047.cern.ch> 51
2578
2579        * src/cmt_parser.cxx (set_standard_macros): Set current_tag to
2580        CMTBIN when in CMT itself (not complete yet)
2581       
2582        * src/cmt_generator.cxx (build_dependencies): Use CMTBIN for CMT
2583        itself (instead of current_tag) well this should be cured later on
2584        to ensure that current_tag is always set to CMTBIN for CMT itself
2585
2586        * src/cmt_version.h (CMTVERSION): install v1r10 (not tagged yet)
2587
2588        * mgr/cmt_system.sh: Do not try to use AFS on Darwin and LynxOS.
2589
2590        * src/setup.[c]sh: Define CMTBIN as `uname` on Unix and CMTCONFIG
2591        as `cmt_system.sh`
2592
2593        * src/cmt_symbol.cxx (show_macro): the trailing space must be
2594        added only for WIN32 !!
2595
25962001-10-17  Christian Arnault  <carnault@lxplus047.cern.ch> 50
2597
2598        * src/cmt_symbol.cxx (show_macro): add a trailing space on all
2599        macro definitions (to avoid problem of trailing backslash)
2600       
2601        * src/cmt_parser.cxx (set_standard_macro): remove the insertion of
2602        trailing spaces after the last backslash for WIN32/NMake
2603
2604        * src/constituents.make (all): (bug fix) re-install the
2605        build_library_links action for the all target
2606
26072001-10-11  Christian Arnault  <carnault@lxplus021.cern.ch> 49
2608
2609        * src/cmt_version.h: Tagging for v1r9p20011011
2610       
2611        * fragments/library: (bug fix) transmit both -tag=<tag> and
2612        -tag_add=<tag_list> to cmt_make_shlib_common.sh
2613
26142001-10-11  Christian Arnault  <arnault@asc.lal.in2p3.fr> 48
2615
2616        * src/cmt_parser.cxx: remove debug print options
2617
26182001-10-10  Christian Arnault  <arnault@asc.lal.in2p3.fr> 47
2619
2620        * src/cmt_parser.cxx (parse_arguments): fix problems in multiple
2621        tag management.
2622
2623        converge in the question of HOME requirements file to support
2624          - no default
2625          - define the path to the HOME requirements file in ${CMTHOME}
2626
2627        converge in the arguments for manipulating the extra tags
2628          -tag=<tag>
2629          -tag_add=<tag-list>
2630          -tag_remove=<tag-list>
2631
26322001-10-03  Christian Arnault  <carnault@lxplus036.cern.ch> 46
2633
2634        * src/constituents.make (makefilesclean): Make all action lists
2635        run in one single shell (ie. use ;\ everywhere)
2636
2637        Make an explicit target for build_library_links
2638        Make it called before any group
2639
26402001-10-02  Christian Arnault  <carnault@lxplus007.cern.ch> 45
2641
2642        * src/cmt_awk.h (class Awk): add a state variable
2643        (m_continuation_allowed) which when true, take into account the
2644        trailing backslashes, so as to first accumulate continued lines
2645        into one. Add the allow_continuation method to base Awk class.
2646
26472001-10-01  Christian Arnault  <carnault@lxplus034.cern.ch> 44
2648
2649        * src/cmt_cvs.cxx (class CvsImplementation): Bug in
2650        checkout_from_requirements. Did not accept leading spaces on use
2651        statements.
2652
26532001-09-27  Christian Arnault  <carnault@lxplus036.cern.ch> 43
2654
2655        * src/cmt_version.h: Tagging for v1r9p20010927
2656
2657        * src/setup.zsh: add the -begin option to the auto-expansion.
2658
2659        * src/cmt_use.cxx (show_all): Visualize the HOME package when
2660        applicable.
2661
2662        * src/cmt_system.cxx (get_home_package): (also do some formatting
2663        cleanup)
2664       
2665        * src/cmt_system.h (class CmtSystem): Adding get_home_package
2666        function to build the name given to the HOME package (provides the
2667        HOME requirements file)
2668
26692001-09-26  Christian Arnault  <arnault@asc.lal.in2p3.fr> 42
2670
2671        * src/cmt_parser.cxx (do_show_macro): Improving error detection on
2672        cmt show macro/set
2673
2674        * doc/CMTDoc.html: Improve the doc.
2675
2676        * src/cmt_parser.cxx (print): produce the CMTEXTRATAGS environment
2677        variable, at setup time.
2678                             (parse_arguments): take into account this new
2679        env.var. to retreive previous extra tags.
2680
2681        * src/Makefile.header: Add the CMTEXTRATAGS environment variable
2682        to propagate additional tags to Make.
2683       
2684        * fragments/make_setup:
2685        * fragments/constituent:
2686        * src/Makefile.header:
2687        * src/constituents.make: Adding  -tag=$(tags) to all calls to cmtexe
2688
2689        * src/cmt_system.h (class CmtSystem): Adding the bool testenv
2690        (name) function to test if an environment variable is defined or
2691        not.
2692
2693        * src/cmt_parser.cxx (use_home_requirements):
2694        * src/cmt.h (class Cmt): Adding support of CMTHOME environment
2695        variable for specifying home requirements file. Default value will
2696        be ${HOME}. And can be overridden through the -home=<directory>
2697        global option. An explicit empty value (or set to eg. NONE) will
2698        discard the feature
2699
2700        * src/cmt_parser.cxx (parse_arguments): Implement the tag list
2701        (comma separated list of extra tags) option -tag=<tag-list> to
2702        specify a list of tags to validate.
2703
27042001-09-25  Christian Arnault  <carnault@lxplus034.cern.ch> 41
2705
2706        * src/setup.csh: fixed PATH settings (may accept a path with space
2707        characters eg. for Darwin)
2708       
2709        * mgr/cmt_system.sh: Insert the knowledge of Darwin OS (Mac OS
2710        X). The default CMTCONFIG will be Darwin.
2711
2712        * src/constituents.make (makefilesclean): Ensure that removal of
2713        makefile fragments is performed AFTER all cleanup uperations.
2714
2715        * src/cmt_parser.cxx (use_home_requirements): Add the systematic
2716        search for a requirements file located in ${HOME}. This
2717        requirements file when found, is systematically parsed AFTER the
2718        requirements file of the current package has been parsed (so as to
2719        give the highest precedence to its statements)
2720       
2721        (do_remove_library_links): Upgrade "remove library_links" to make
2722        it compliant to the algorithm used in "build library_links"
2723
27242001-09-24  Christian Arnault  <carnault@lxplus014.cern.ch> 40
2725
2726        * src/cmt.h (class Cmt): * src/cmt_parser.cxx (configure): Add a
2727        global configure_error variable to store the possible error
2728        produced during the configuration.
2729        (install_test_setup_scripts): Add the -quiet option to the build
2730        temporary_name command used in setup script generation.
2731
2732        * src/cmt_error.cxx (get_last_error):
2733        * src/cmt_error.h (class CmtError): Add get_last_error to retrieve
2734        the formatted text of the last error.
2735
2736        * src/cmt_symbol.cxx (create):
2737                             (all_print):
2738                             (print):
2739                             (build):
2740        * src/cmt_parser.cxx (select): Understand the "path" statement as
2741        a complete re-definition of a path-like variable.
2742
2743        * src/cmt_system.cxx (add_cmt_path):
2744        * src/cmt_error.cxx (class Error):
2745        * src/cmt_error.h (class CmtError): Adding "path not found" error
2746        code, for CMTPATH checking.
2747
2748        * src/cmt_pattern.cxx ((const cmt_string& name): Return a warning
2749        for pattern not found.
2750
2751        * src/cmt_error.h (class CmtError):
2752        * src/cmt_error.cxx (class Error): Adding "pattern not found" error
2753        code, for showing diagnostics in "cmt show pattern"
2754
2755        * src/cmt_parser.cxx (do_show_macro): Return a warning for symbol
2756        not found.
2757
2758        * src/cmt_error.h (class CmtError):
2759        * src/cmt_error.cxx (class Error): Adding "symbol not found" error
2760        code, for showing diagnostics in "cmt show macro/set"
2761
27622001-09-19  Christian Arnault  <carnault@lxplus045.cern.ch> 39
2763
2764        * mgr/cmt_make_shlib_common.sh : return a status value which
2765        reflects the success or failure of the shared library build
2766        command.
2767
2768        * src/cmt_cvs.cxx (class CvsImplementation): Discard the versions
2769        specified with wild cards in the recursive checkout.
2770
2771        * src/cmt_triggers.cxx: Protect the error messages in the trigger
2772        facility by Cmt::quiet.
2773
2774        * src/cmt_constituent.cxx (class constituents_action_iterator):
2775        temporarily discard the -triggers option.
2776
27772001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38
2778
2779        Tagging v1r9p2001p0824
2780
27812001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38
2782
2783        * mgr/cmt_system.sh: Improve the reliability of the cmt_system.sh
2784        script against variants of "fs sysname"
2785
27862001-08-23  Christian Arnault  <carnault@lxplus030.cern.ch> 37
2787
2788        * src/cmt_cvs.cxx (class CvsImplementation): Since the tag filter
2789        is back to cmtcvs.cxx, the temporary forced tag filter in CMT is
2790        removed.
2791
2792        * src/setup.zsh: upgrade the completion for the broadcast command.
2793
2794        * src/cmt_parser.cxx (do_broadcast): Make the -select independent
2795        of the -local or -global options. This is achieved by adding a
2796        "path_selections" list only managed by the -depth, -local -global
2797        modifiers while the "selections" list is managed by the -select
2798        modifier. The -exclude is left unchanged.
2799
28002001-08-22  Christian Arnault  <carnault@lxplus024.cern.ch> 36
2801
2802        * src/cmt_cvs.cxx (class CvsImplementation): Add the possibility
2803        to transmit a flag to the CVS pluggin, by inserting a /cmtcvstest
2804        in the module name to import. This will have to be decoded by the
2805        CVS pluggin itself !!
2806
28072001-08-21  Christian Arnault  <carnault@lxplus013.cern.ch> 35
2808
2809        * src/setup.tcsh: Improving the tcsh completion mechanism (for cmt co).
2810
2811        * src/setup.zsh: Improving the zsh completion mechanism (for cmt co).
2812
2813        * src/cmt_cvs.cxx (class CvsImplementation): Converging on HEAD
2814        management strategy...
2815
2816        Starting implementation of the Atlas filter for CVS tags right
2817        into cmt_cvs.cxx rather than inside the CVS pluggin...
2818
28192001-08-20  Christian Arnault  <carnault@lxplus028.cern.ch> 34
2820
2821        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
2822        recursive checkout process
2823
28242001-08-20    <arnault@lal.in2p3.fr> 33
2825
2826        * src\cmt_cvs.cxx (class CvsImplementation): Reorganizing some CVS operations:<ul>
2827          <li> Apply the CMTCVSOFFSET env. variable to all actions (tags, branches, subpackages)
2828          <li> cleanup checkout algorithms (remove some obsolete variables)
2829          <li> add the -requirements <requirements-file-path> option to checkout according to
2830            a set of use statements.
2831          <li> remove the inheritance to Awk of CvsImplementation to split the filter into 2
2832            phases (implemented as 2 separated Awk derived classes) RecursivePass1 and
2833            RecursivePass2.</ul>
2834
28352001-08-16  Christian Arnault  <carnault@lxplus046.cern.ch> 32
2836
2837        * src/cmt_symbol.cxx (print): Bug in path_remove when the
2838        specified path variable only contained one item : the remove
2839        operation was not applied.
2840
28412001-07-20  Christian Arnault  <arnault@lal.in2p3.fr> 31
2842
2843        * src/cmt_version.h: setting the patch v1r9p20010720
2844
28452001-07-20  Christian Arnault  <carnault@lxplus019.cern.ch> 30
2846
2847        * src/cmt_regexp.h (cmt_regexp::begin): Add an optional pos
2848        argument to the begin method.
2849
2850        * doc/CMTDoc.html: Improvements, English cleanup...
2851
28522001-07-18  Christian Arnault  <carnault@lxplus041.cern.ch> 29
2853
2854        * src/cmt_cvs.cxx (CvsImplementation::checkout_package): Change
2855        the mechanism to get top files, since the " -d . " does not work
2856        anymore when CVSROOT is set to kserver!!!!
2857
28582001-07-16  Christian Arnault  <carnault@lxplus030.cern.ch> 28
2859
2860        * doc/CMTDoc.html: Old PREFIX fragment variable has been replaced
2861        by FILEPATH long ago. This was not upgraded in the doc.
2862
2863        * fragments/constituent: The -f <file> MUST be specified BEFORE
2864        other Make flags!!
2865
2866        * fragments/dependencies: Tried to comment out the dependencies to
2867        cmt_path.make etc... but it confused the dependencies fragment
2868        production. Uncomment it but need to understand the side effect.
2869
28702001-07-09  Christian Arnault  <carnault@lxplus012.cern.ch> 27
2871
2872        * src/cmt_generator.cxx (build_readme): Bug: the VERSION variable
2873        was not used for installing the readme_trailer (although the
2874        documentation was mentioning it)
2875
28762001-07-04  Christian Arnault  <carnault@lxplus034.cern.ch> 26
2877
2878        * src/cmt_version.h: setting the patch v1r9p20010704
2879
28802001-07-02  Christian Arnault  <carnault@lxplus034.cern.ch> 25
2881
2882        * fragments/dependencies: Cleaning some old debug printouts.
2883
2884        * src/cmt_cvs.cxx (class CvsImplementation): Bug in replacing the
2885        wild card expression. v5r* has to be replaced by v5r0 while v5*
2886        has to be replaced by v5 in case no matching tag exists in the CVS
2887        repository.  Other bug : All split operations should be performed
2888        against " \t" (include tab character)
2889
28902001-06-29  Christian Arnault  <carnault@lxplus047.cern.ch> 24
2891
2892        * src/cmt_cvs.cxx (class CvsImplementation): Final Validation of
2893        the change in the implementation of the m_installed stack used to
2894        avoid recursion due to dependency cycles.
2895
28962001-06-22  Christian Arnault  <carnault@lxplus020.cern.ch> 23
2897
2898        * src/cmt_cvs.cxx (class CvsImplementation): doing some
2899        optimizations for the big checkout operations.
2900
2901        * src/cmt_parser.cxx (do_config): Remove .[n]make files also from
2902        the binary directory.
2903
2904        * src/cmt_cvs.cxx (class CvsImplementation): Always fetch the cmt
2905        branch at HEAD even if the checkout operation is applied to a
2906        required tag (temporary feature).
2907
29082001-06-18    <arnault@lal.in2p3.fr> 22
2909
2910        * src\cmt_cvs.cxx (class CvsImplementation): insert a space
2911        between top tags and other tags.
2912
2913        * mgr\cmt_make_shlib.bat: Write extra options received through
2914        arguments into a temporary option file, used by @<optionfile> to
2915        resolve line-too-long prolems.
2916
2917        * fragments\nmake\cpp_library:
2918        * fragments\nmake\cpp:
2919        Add the /Tp qualifier for allowing non-standard file suffixes.
2920
29212001-06-05  Christian Arnault  <arnault@lal.in2p3.fr> 22
2922
2923        * src/cmt_use.cxx (class use_action_iterator): Default to the
2924        -no_auto_import was to keep the most recent specification. Change
2925        this to always request auto_import by default, (unless otherwise
2926        specified)
2927
29282001-06-01  Christian Arnault  <arnault@lal.in2p3.fr> 22
2929
2930        * src/cmt_parser.cxx (do_broadcast): Bug fix in do_broadcast: the
2931        -begin option wrongly implied the -global option.
2932
29332001-06-13    <arnault@lal.in2p3.fr> 22
2934
2935        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
2936        strategy for getting version tags from the repository:
2937          o If a request specifies a tag which is not applied to the
2938            requirements file, the specified tag is used to create the
2939            version directory but the HEAD is used in the repository.
2940          o CvsImplementation::show_cvs_infos () :
2941            stores all received infos into xxx_info corresponding
2942            local properties. Thus this method is only called once per
2943            package.
2944          o Error messages are really obtained from the error_info field.
2945
29462001-05-30  Christian Arnault  <arnault@lal.in2p3.fr> 22
2947
2948        * src/cmt_generator.cxx (build_document_makefile):
2949        * src/cmt_system.cxx (get_dot_suffix): fix bug for file_names
2950        without any suffix
2951
2952        * src/cmt.h & src/cmt_parser.cxx (set_standard_macros): Add a
2953        state standard_macros_done to protect against multiple calls to
2954        set_standard_macros.
2955
29562001-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 22
2957
2958        * src/cmt_cvs.cxx (class CvsImplementation): display the tags in a
2959        one-per-line basis instead of space separated when doing cmt
2960        cvstags.
2961
2962        * src/cmt_use.cxx (operate): Make the version selector operator a
2963        little bit more quiet...
2964
29652001-05-25  Christian Arnault  <arnault@lal.in2p3.fr> 22
2966
2967        * mgr/Makefile (demo): improve the gmake check action in the demo
2968        target.
2969
2970        * src/cmt_use.cxx (fill_macro_all): build use_xxx standard macros
2971        using macro_append instead of macro.
2972
29732001-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 22
2974
2975        * src/cmt_parser.cxx (do_broadcast): Fix the default (-local)
2976        option to act as -depth=1.
2977        Improve some error messages.
2978
29792001-05-21    <arnault@lal.in2p3.fr> 21
2980
2981        * src\setup.bat: Improved skeleton for setup.bat. Base it on
2982        CMTBIN rather than on CMTCONFIG. Do not override CMTCONFIG if
2983        defined by the user. Do not care about PATH for Visual tools.
2984
2985        * mgr\install.mak: change the strategy for building the setup.bat
2986        script for CMT itself at INSTALL time. Now copy ..\src\setup.bat
2987        skeleton.
2988
2989        * mgr\requirements: Fix WIN32/VisualC tag definitions and PATH
2990        settings for cleaner handling of default tag overriding.
2991
2992        * src\cmt_use.cxx (operate): Implement the algorithm for using
2993        aliases to alternate version specification in uses.
2994
2995-------------------------------------------------------------------------------------
29962001-05-18  Christian Arnault  <arnault@lal.in2p3.fr> 21
2997
2998        -> Tag CMTv1r9p20010521
2999
3000        * src/cmt_use.cxx (show_sub_uses): Start the implementation of
3001        version_alias and path_alias for equivalencing two version naming
3002        policies.
3003
3004        * src/cmt_cvs.cxx (class CvsImplementation): Adding the -o offset
3005        option to cmt checkout for specifying a global offset to the base
3006        CVS repository. This offset will be prepended to all modules
3007        during the various CVS operations.
3008
3009        the m_offset attribute is added to the CvsImplementation class.
3010
3011        (class CvsImplementation): Improve protection against CVS modules
3012        not found.
3013       
3014        (class CvsImplementation): Added the --help option the cmt checkout.
3015
30162001-07-10  Christian Arnault  <carnault@lxplus017.cern.ch> b-21
3017
3018        * mgr/requirements: add the -tag=$(tag) option to the
3019        build_dependencies macro.
3020
3021        * fragments/dependencies: take the improvements into account.
3022
3023        * src/cmt_generator.cxx (build_dependencies): Improve the
3024        dependency builder: re-generate all entries of the
3025        <constituent>_dependencies.make that are missing from the complete
3026        source list (thus regenerate it when it is empty).
3027        Optimize the file scan for getting the new source list.
3028
3029        * src/cmt_parser.cxx (do_build_dependencies): Dynamically shifts
3030        arguments of the build dependencies command to keep only the
3031        new-source-list. The complete command being
3032        "cmt <args> build dependencies <constituent-name> <new-source-list>"
3033       
3034        (do_config): drop all makefile fragments from the mgr/cmt
3035        directory AND from the binary directory.
3036
30372001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 20
3038
3039        * Moving to v1r8
3040       
3041       
30422001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 19
3043
3044        * src/cmt_deps_builder.cxx (): Augmented local internal
3045        line buffer (from 1024 to 16384).
3046
3047        * doc/CMTDoc.html: document the new &lt;package>_root macro
3048
3049        * src/cmt_parser.cxx (set_standard_macros) (get_best_form): Define
3050        a new set of standard macros using the pattern <package>_root
3051        similar to <PACKAGE>ROOT except that this new definition uses the
3052        get_best_form, with a relative path to the package. The
3053        <PACKAGE>ROOT macro is restored to the previous convention, that
3054        it uses the absolute path.
3055       
3056        * src/cmt_use.cxx (fill_includes_macro): Adapt the
3057        fill_includes_macro to use the new <package>_root standard macro
3058
3059
30602001-05-10  Christian Arnault  <arnault@lal.in2p3.fr> 18
3061
3062        * src/cmt_parser.cxx (do_broadcast): Add the -begin=<pattern>
3063        option to start the broadcast loop from a given package. This
3064        option can be combined with other options such as -select or
3065        -exclude.
3066
3067        * src/cmt_generator.cxx (filter_paths): Suppress two unused
3068        variables.
3069
3070        * src/cmt_use.cxx (add): Bug fixing: during the discovery of
3071        versions requested for a given package, the discarded versions
3072        were not correctly replaced by the finally selected version,
3073        especially in the Use::get_paths method. The
3074        Use::get_selected_version has been added to obtain the effective
3075        replacement for a discarded version.
3076
3077        * fragments/check_application: suppress the ". setup.sh" before
3078        application run.
3079
30802001-05-04  Christian Arnault  <carnault@lxplus023.cern.ch> 17
3081
3082        * src/cmt_parser.cxx (set_standard_macros): The production of all
3083        use_xxx standard macros now is based on a "macro_append" keyword
3084        instead of "macro", since "macro" resets all previous
3085        definitions. Therefore if the user's requirements did augment
3086        those use_xxx macros, these specifications would be ignored.
3087       
3088        (do_broadcast): Set the -local option to broadcast the
3089        default. Add the -global option to revert to the old default (with
3090        no selection and to any depth)
3091
30922001-05-03  Christian Arnault  <carnault@lxplus019.cern.ch> 17
3093
3094        * src/cmt_symbol.cxx (add_value_to_list): A new macro or set
3095        keyword resets (discards) all previous definitions for the
3096        corresponding symbol.
3097
3098        * src/cmt_symbol.h (class SymbolValueList): Added an attribute
3099        discarded for symbol resetting.
3100
3101        * src/cmt_parser.cxx (print_macros): Exclude scripts from macros
3102        defined in the $(tag).make file.
3103
31042001-04-27  Christian Arnault  <carnault@lxplus022.cern.ch> 16
3105
3106        * src/cmt_parser.cxx (get_best_form): Validate the compression
3107        algorithm for paths to packages (only for the macro <PACKAGE>ROOT
3108        - this is still not true for the <PACKAGE>ROOT environment
3109        variable) into a relative form when it is shorter than the
3110        absolute form.
3111
3112        * src/cmt_system.cxx (compress_path): Fix the algorithm for
3113        compressing the patterns "aaaa/xxxx/../bbbb" into aaaa/bbbb.
3114
3115        * src/cmt_generator.cxx (filter_paths): use
3116        CmtSystem::compress_path instead of duplicating its algorithm for
3117        erasing "/aaa/.." patterns
3118
31192001-04-25  Christian Arnault  <carnault@lxplus022.cern.ch> 15
3120
3121        * src/cmt_parser.cxx (set_standard_macros): Prepare the production
3122        of <PACKAGE>ROOT macros as relative paths rather than absolute
3123        ones, when the relative expression is shorter than the absolute
3124        one. Temporarily, trigger that feature by setting the
3125        CMTTESTPREFIX environment variable until absence of side effects
3126        is confirmed.
3127
31282001-04-18  Christian Arnault  <carnault@atlas009.cern.ch> 15
3129
3130        * src/cmt_generator.cxx (build_readme): bug when generating the
3131        readme_trailer fragment : the PACKAGE variable should be reset to
3132        current.
3133
31342001-04-11  Christian Arnault  <arnault@lal.in2p3.fr> 15
3135
3136        * src/cmt_generator.h (class Generator):
3137        * src/cmt_parser.cxx (do_build_readme):
3138        * src/cmt.h (class Cmt): do_build_readme now propagates argument list
3139
3140        * fragments/readme_trailer:
3141        * src/cmt_generator.cxx (build_readme): Added DATE and USER information when building the README.html file. readme_trailer fragment updated accordingly.
3142       
3143        (build_readme): Add the -url=<url> argument to the cmt build
3144        readme command. The specified URL will be used in place of the
3145        package path when generating the URL for used packages.
3146
31472001-04-18  Christian Arnault  <arnault@lal.in2p3.fr> 14
3148
3149        * src/cmt_symbol.cxx (build): In all builder objects, symbol value
3150        lists registered by discarded Uses are now ignored.
3151
3152        * src/cmt_symbol.h (class SymbolValue): cleanup a comment.
3153
3154        * src/cmt_symbol.cxx (print): protect setup script execution
3155        against missing files.
3156
31572001-04-10  Christian Arnault  <arnault@lal.in2p3.fr> 13
3158
3159        * src/cmt_generator.cxx (build_readme):
3160        * fragments/readme_use: building readme.html requires to know the
3161        mgr/cmt style of each used package. This fragment now requires a
3162        fourth variable MGRSTYLE which reflects the use->mgr_style
3163        attribute. Generator::build_readme fills in this new variable.
3164
31652001-04-06  Christian Arnault  <arnault@lal.in2p3.fr> 12
3166
3167        * src/cmt_parser.cxx
3168        (reach_current_package): Use CmtSystem::getenv instead of base getenv
3169       
3170        * src/cmt_symbol.cxx (action): Now really private stuff is
3171        selected when access is at UserMode and scope is Private.
3172
3173        * src/cmt_use.cxx (add): This method does not need to maintain
3174        current scope and access mode any longer.
3175
3176        * src/cmt_parser.cxx (parse_requirements): Cmt::parse_requirements
3177        now manages the AccessMode and Scope when recursing into
3178        requirements files of used packages.
3179
3180        Cmt::scope          handles the sticky state provided by private/public statements
3181        Cmt::current_access handles the access mode that reflects the situation of the user
3182
3183        * src/cmt_parser.h (enum): introduce the AccessMode to distinguish
3184        between DeveloperMode (when pwd is in the current package
3185        directory) and UserMode (otherwise).
3186
3187        * src/cmt.h (class Cmt): Cmt::current_mode is now current_access
3188        and is of type AccessMode
3189
3190        * src/cmt_parser.cxx (reach_current_package): Use
3191        CmtSystem::getenv instead of base getenv
3192
3193        * src/cmt_use.cxx (Use::get_paths):
3194        * src/cmt_pattern.cxx (Pattern::apply ()) : bug in computing the
3195        path between two Uses. The result now includes the current Use.
3196
31972001-04-05    <arnault@lal.in2p3.fr> 12
3198
3199        * src\cmt_tag.cxx (Tag::add(const cmt_string& name, int priority):
3200        clear a newly created Tag object (to deal with the reuse of old
3201        objects)
3202
3203        * src\cmt_pattern.cxx (Pattern::add) : clear a newly created
3204        pattern object (to deal with the reuse of old objects)
3205
3206        * src\cmt_use.h (class Use): Add Use::author_action and
3207        Use::manager_action to fill in the author and manager information.
3208
3209        * src\cmt_parser.cxx (select): fill in author and manager values
3210        with the complete line. When several author and manager statements
3211        are provided, fill in as several lines (separated with a new-line).
3212
3213        * src\cmt_generator.cxx (analyze_file (const Constituent&
3214        constituent, const cmt_string& file) : production of objects for
3215        libraries and applications is strictly identical.
3216
32172001-04-03  Christian Arnault  <arnault@lal.in2p3.fr> 11
3218
3219        * src/cmt_constituent.cxx (clear): constituent.parameters was not
3220        cleared in Constituent::clear
3221
3222        * src/cmt_symbol.cxx (build): add cleanup ValueList objects after
3223        their addition for ensuring a really new value (due to cmt_string
3224        optimizing)
3225
32262001-04-03  Christian Arnault  <carnault@atlas006.cern.ch> 10
3227
3228        * mgr/Makefile: Operate the demo targets on different make action
3229        lines
3230
3231        * src/Makefile.header: Added -tag=$(tag) to cmt actions
3232
3233        * fragments/generator_header: create the output directory if
3234        needed
3235
32362001-04-02    <arnault@lal.in2p3.fr> 9
3237
3238        * fragments\nmake\constituent: added the -tag=$(tag) option to cmt
3239        build actions
3240
3241        * src\cmt_parser.cxx (parser): show_constituentxxx recursively
3242        reads used requirements files
3243
3244        * src\cmt_pattern.cxx (Pattern::apply () const): protection added
3245        for the case where the pattern is applied to the package that
3246        defines it.
3247
32482001-03-29  Christian Arnault  <carnault@atlas005.cern.ch> 8
3249
3250        * src/cmt_use.cxx (get_paths):
3251        * src/cmt_use.h (class Use):
3252        * src/cmt_pattern.h (class IgnorePattern):
3253        * src/cmt_pattern.cxx (const apply): Bug in apply global patterns
3254        : a pattern defined in one package should only be applied to the
3255        Uses that are on one of the paths between the current Use and the
3256        one wher the pattern is defined (and not to the Uses that never
3257        pretend to inherit that pattern!!!)
3258
3259        This required to implement the Use::get_paths which fills in the
3260        inclusive list of all Uses that are between two Uses.
3261
32622001-03-27  Christian Arnault  <carnault@lxplus017.cern.ch> 7
3263
3264        * fragments/dependencies: protection against missing dependency
3265        make fragment during clean operations.
3266
3267        * src/cmt_constituent.cxx (class constituents_action_iterator):
3268        the -suffix= option was hidden by the user variable specification
3269        while parsing the constituent parameters.
3270
32712001-03-23  Christian Arnault  <carnault@atlas007.cern.ch> 6
3272
3273        * mgr/requirements: clean up WIN32 tag variants definitions
3274
3275        * src/Makefile.header (setup.make): Display of the target in case
3276        of target not found (.DEFAULT)
3277
3278        * fragments/make_setup (csh): few checks
3279
3280        * fragments/installer: add the creation of $(install_dir) if
3281        needed
3282
32832001-03-21  Christian Arnault  <arnault@lal.in2p3.fr> 5
3284
3285        * src/cmt_parser.cxx (parse_arguments): When the tag specified in
3286        the command line arguments (using -tag=<tag>) is the same as
3287        CMTCONFIG, then still validate the tag given by uname
3288
3289        * fragments/dependencies: generate
3290        ${CONSTITUENT}_dependencies.make into $(bin)
3291
3292        * fragments/constituent: generate ${CONSTITUENT}.make into $(bin)
3293
3294        * src/cmt_constituent.cxx (parse):
3295        * src/cmt_constituent.h (class Constituent): Added the two-step
3296        parsing of the constituents specifications : first stage during
3297        parsing of the requirements file, parameters are simply stored in
3298        the constituent object and not interpreted. Second stage : after
3299        building the standard macros (once requirements files have
3300        entirely been read) then constituent objects are parsed.
3301
3302        * src/cmt_parser.cxx: Add Constituent::parse_all in
3303        Cmt::set_standard_macros to finalize the constituent
3304        parsing. Install set_standard_macros in several additional actions
3305
3306
3307
33082001-03-16  Christian Arnault  <arnault@lal.in2p3.fr> 4
3309
3310        * src/cmt_cvs.cxx (class CvsImplementation): Get the files at the
3311        top directory when doing a cmt checkout. 
3312
3313        Only checkout at head for the top package (ie do not recurse at
3314        head) and when -r is not specified.
3315
3316        * src/cmt_symbol.cxx (resolve_value_for_macros): Perform the
3317        substitution of ${} to %% (or reverse) even if the env. var. is
3318        not defined in CMT.
3319
3320        * src/cmt_parser.cxx (install_setup_scripts): Setup scripts on
3321        Windows generate the temporary expansion script in
3322        %HOMEDRIVE%%HOMEPATH%.
3323
33242001-03-16  Christian Arnault  <carnault@atlas009.cern.ch> 3
3325
3326        * mgr/requirements: clean up variants for VisualC and
3327        VisualC/debug
3328
33292001-03-15    <arnault@lal.in2p3.fr> 2
3330
3331        * src\cmt_use.cxx (class use_action_iterator): Strange name
3332        conflict: the use_action_iterator::set method is in conflict with
3333        something else when the class is named "action_iterator" (is it a
3334        conflict with the same private class defined in Symbol.cxx ??)
3335
3336        * src\NMakefile.header (cmtexe): Fix for re-building cmt when
3337        cmt.exe does not exist.
3338
33392001-03-13  Christian Arnault  <arnault@lal.in2p3.fr> 1
3340
3341        * src/cmt_use.cxx (class action_iterator): Introducing the
3342        action_iterator class for managing the local expansion of macros
3343        in the syntax parser (similart to what was done in Symbol::action)
3344
3345        * src/cmt_generator.cxx (Generator::build_make_setup) when
3346        generating setup.make, the default value for constituents is
3347        extracted from the constituents macro.
3348
33492001-03-06  Christian Arnault  <arnault@lal.in2p3.fr>
3350
3351        * src/cmt_cvs.cxx (class CvsImplementation): Show both top tags
3352        and non-top tags in cmt cvstags.
3353
3354        * doc/CMT.htm: Addition of several slide shows (from Atlas)
3355
3356        * mgr/cmt_buildcvsinfos2.sh (error): The awk script had to be
3357        protected against multiple ocurrences of the /symbols/,/locks/
3358        pattern.
3359
3360        Implement both in python and in shell script the differntiated
3361        production of top tags and non-top tags. Top tags are the set of
3362        tags sharing the most recent CVS tagged version id (ie. the HEAD
3363        may be more recent)
3364
33652001-03-05    <arnault@lal.in2p3.fr>
3366
3367        * src\cmt_parser.cxx (do_build_library_links): Handle libraries
3368        specified as a full path in <package>_libraries
3369
3370        * src\cmt_parser.cxx (print_context):
3371        * src\cmt_symbol.cxx (all_print): Use one line per
3372        env. var. assignment when generating setup scripts (instead of ;
3373        separated instructions) . The latter style should be no longer
3374        needed since we use temporary files.
3375
3376        * src\cmt_parser.cxx (set_standard_macros): Add CMTCONFIG to the
3377        standard sets, so as to let it known as a plain "symbol"
3378
33792001-03-02    <arnault@lal.in2p3.fr>
3380
3381        * src\cmt_system.h: introduce the CmtSystem::ev_open () and
3382        CmtSystem::ev_close () to get the OS-dependent pattern for
3383        environment variable definition.
3384
3385        * src\cmt_symbol.cxx (resolve_value_for_macros): Substitute
3386        patterns ${xxx} or %xxx% to the appropriate OS-dependent pattern
3387        when producing "set" values only (this is only done when the
3388        pattern is not already the good one)
3389
3390        * src\cmt_parser.cxx (install_setup_scripts): Changed
3391        >>${tempfile} into >${tempfile} in setup scripts (fix a constraint
3392        in csh)
3393
33942001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>
3395
3396        * src/cmt_parser.cxx (do_build_temporary_name): Add the build
3397        temporary_name command to supply that missing function on various
3398        shells.
3399        (install_test_setup_scripts): Apply this new build service to
3400        setup scripts generation.
3401
3402        * src/Makefile.header: Needed a trailing end-of-line
3403
34042001-02-15  Christian Arnault  <arnault@lal.in2p3.fr>
3405
3406        * src/cmt_cvs.cxx (class CvsImplementation): Fix misuse of
3407        checkout_package arguments (confusion between package path and
3408        checkout directory)
3409
34102001-02-26    <arnault@lal.in2p3.fr>
3411
3412        * src\cmt_parser.cxx (install_test_setup_scripts): use mktemp for
3413        setup scripts.
3414
3415        * mgr\requirements: Suppress local private configuration of
3416        MSVC++. It has to be done previously to operate on CMT (even
3417        before making the INSTALL.bat)
3418
34192001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>
3420
3421        * src/cmt_deps_builder.cxx ((char* ptr,
3422                              state_def& state,
3423                              const cmt_string& dir_name,
3424                              int current_path_index,
3425                              const CmtSystem::cmt_string_vector& include_paths,
3426                              const CmtSystem::cmt_string_vector& substitutions,
3427                              CmtSystem::cmt_string_vector& all_deps,
3428                              CmtSystem::cmt_string_vector& deps)
3429        * src/cmt_generator.cxx ((const cmt_string& file_name)
3430
3431        Rollback recent change to work on cmt_strings rather than char* to
3432        restore speed.
3433
34342001-02-15  Christian Arnault  <arnault@lal.in2p3.fr>
3435
3436        * src/cmt_generator.cxx (build_dependencies): Restore the
3437        mechanism that takes into account the arguments, and the source
3438        list when -all_sources option is provided.
3439
3440        * mgr/requirements: change /machine:I386 into /machine:IX86 as
3441        link option for VisualC
3442
34432001-02-13    <arnault@lal.in2p3.fr>
3444
3445        * src\cmt_generator.cxx (build_dependencies): Do not require the
3446        source list from the arguments. Instead, get the sources directly
3447        from the constituents definition.
3448
3449        The "cmt build dependencies" now only requires the constituent name.
3450
3451        * src\cmt_deps_builder.cxx: Read files at once into a cmt_string
3452        and work from the text instead of reainf line by line from the file.
3453
3454        Install the detection of fortran include statements
3455
34562001-02-06    <arnault@lal.in2p3.fr>
3457
3458        * src\cmt_use.cxx: clean up space & tabs
3459
3460        * cmt_parser.cxx (parse_requirements_text): Abort the parser in
3461        case of error, but only for check configuration command.
3462
3463        * NMakefile.header (lex_echo): Add -quiet option to cmt command
3464        except cmt check configuration
3465       
3466        * constituents.nmake: Add -quiet option to cmt command
3467
34682001-01-30    <arnault@lal.in2p3.fr>
3469
3470        * all dsp fragments : suppress the Win32 Release
3471        configuration. Only keep the Win32 Debug. This makes possible the
3472        generation of msdev using the syntax cmt build msdev
3473        -tag=VisualCdbg
3474
34752001-01-30    <arnault@lal.in2p3.fr>
3476
3477        * mgr/cmt_buildcvsinfos.py: first attempt to make the cvs script
3478        written in Python
3479
3480        * mgr/requirements: Consistently base Windows tag on VisualC rather
3481        than WIN32
3482
3483        upgraded setup.tcsh setup.zsh
3484
3485        introduced cmt show include_dirs
3486       
3487        introduced cmt show constituent <name>
3488
3489        bug in Pattern::add : overridden patterns were not cleared.
3490
3491        cmt config must recursively get used packages (at least to get patterns)
3492
3493        introduced cmt show pattern_names (at least for completion mechanisms)       
3494          new action : action_show_pattern_names
3495
3496        experimental work started on build triggers
3497       
3498          macro build_triggers
3499                implied_library_prefix
3500                implied_library_sufffix
3501
3502          new library option -triggers
3503          new constituent attribute build_triggers
3504          new fragment dependencies_and_triggers for libraries
3505
3506        bug in cmt_system.cxx::scan_dir
3507
3508        Recursively get all requirements file in cmt config action
3509
3510
3511        Changed strategy for argument parsing error detection
3512       
35132001-01-30    <arnault@lal.in2p3.fr>
3514
3515        * cmt_use.cxx ((const cmt_string& from_path) : bug in detection of
3516        "use pack " without version specification at all (ie equiv. to
3517        *). We needed to check we are on a real CMT package.
3518
3519        * cmt_constituent.cxx (class action_iterator): Expand the macros
3520        before acting upon a constituent specification. Each expanded word
3521        may then result in several words. Thus the line parser is
3522        re-implemented through a local operator class "action_iterator",
3523        in charge of filling up a new constituent object from the expanded
3524        statement. (Note that this mechanism could perfectly be reused for
3525        other statements eg "use" !!!)
3526
3527        * cmt_parser.cxx (set_standard_macros): Implement all_constituents
3528        and all_constituentsclean unconditionally.
3529
3530        * NMakefile.header (checkuses): if defined statements require that
3531        the macro to test is provided without quotes.
3532
3533        * cmt_generator.cxx: Apply the new convention of installing object
3534        files into $(bin)${CONSTITUENTS} also for applications (was only
3535        done for libraries)
3536
3537        * cmt_parser.cxx (print_context): Take the current CONFIG name
3538        from CmtSystem::get_cmt_config rather than recursively calling
3539        "cmt system", when generating setup scripts.
3540
3541        * cmt_cvs.cxx (class CvsImplementation): Use '/' ínstead of
3542        CmtSystem::file_separator for CVS-only file specs.
3543
35442000-12-26    <arnault@lal.in2p3.fr>
3545
3546        * cmt_fragment.h (class Fragment and FragmentHandle): Install all
3547        variants of (win)copy methods that act upon a cmt_string instead
3548        of a FILE*.
3549
3550        * cmt_model.cxx: Create the implementation file for CmtModel
3551
3552        * cmt_model.h (class CmtModel): Create the CmtModel class
3553
3554        * cmt_parser.cxx (do_expand_model): Add the new command verb :
3555        'expand model' and all associated features
3556        (do_expand_model): call the CmtModel::expand
3557
Note: See TracBrowser for help on using the repository browser.