source: CMT/v1r18p20041201/ChangeLog @ 1

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

Import all tags

File size: 177.8 KB
Line 
12004-12-01    <arnault@lal.in2p3.fr> 247
2
3        * source/cmt_version.h (CMTVERSION): Prepare for tagging 20041201
4
5        * source/cmt.h (class Cmt): Fix typo
6
72004-12-01  Christian Arnault  <arnault@lal.in2p3.fr> 246
8
9        * mgr/cmt_uninstall_action.sh: Better management of directory removal
10
112004-12-01  Christian Arnault  <arnault@lal.in2p3.fr> 246
12
13        * mgr/fragments/application (install):
14        * mgr/fragments/library (install):
15        * mgr/fragments/library_no_share (install):
16        * mgr/fragments/install_includes_header (install):
17        * mgr/fragments/jar (install):
18        * mgr/fragments/java_header (install): Remove the connection
19        between uninstall and clean targets. So now when gmake clean is
20        run no uinstallation occurs in the installation area.
21
222004-11-11    <arnault@lal.in2p3.fr> 245
23
24        * source/cmt_parser.h:
25        * source/cmt_project.cxx:
26        * source/cmt_project.h:
27        * source/cmt_syntax.cxx:
28        * source/cmt_parser.cxx:
29        * doc/CMTDoc.xml: Suppress obsolete (and useless) makefile strategy
30
31        * source/cmt_parser.cxx (print_context): the setup strategy is
32        really used to generate the ROOT and CONFIG env. vars.
33
34        * source/cmt_parser.cxx (get_setup_strategy): Get the setup
35        strategy for each use so as to really build ROOT or CONFIG
36        according to the real project of the use
37
382004-11-09    <arnault@lal.in2p3.fr> 244
39
40        * source/cmt_version.h: Preparing version tag for v1r18
41       
42        * mgr/requirements:
43        * source/cmt_parser.h:
44        * source/cmt_projects.cxx: Change default build strategy to without_installarea
45
462004-11-08    <arnault@lal.in2p3.fr> 243
47
48        * mgr/Makefile (docs): Do some cleanup
49
50        * source/cmt_parser.cxx (do_build_library_links): make use of the
51        new library_install_command macro
52
53        * mgr/requirements: Create a new macro library_install_command for
54        defining how to actually install libraries through the
55        <package>_libraries macro.
56
572004-11-02  Christian Arnault  <arnault@lal.in2p3.fr> 242
58
59        * source/cmt_commands.cxx (option_tag): When resetting tags one
60        need to also call again guess_current_project
61       
62        (option_tag): In fact on can simply reset all active tags, and
63        regenerate activations rather than clearing all tags.
64
65        * source/cmt_parser.cxx (guess_current_project): Fix a typo
66
67        * source/cmt_tag.cxx (get_default): Make the tag Default a static
68        object to avoid killing it.
69
70
712004-11-01    <arnault@lal.in2p3.fr> 241
72
73        * source/cmt_parser.cxx (guess_current_project): Implement the
74        detection of the current project
75
76        * source/cmt_parser.cxx (configure): Add the detection of the
77        current project through a project file above the current directory
78
792004-10-30  Christian Arnault  <arnault@lal.in2p3.fr> 240
80
81        * source/cmt_parser.cxx (class StandardMacroBuilder): Apply the
82        cmtpath_patterns before setting up the installarea parameters so
83        as to let the patterns really define the
84        <project>_installarea_prefix for instance.
85       
86        (set_standard_macros): Remove this first setting of installarea
87        because it's better done only once.
88
89        * mgr/fragments/constituent: Remove a debug message
90
91        * mgr/requirements: Prepare for new tag v1r18
92
93        * mgr/cmt_uninstall_action.sh:
94        * mgr/cmt_install_action.sh: Late fixes
95
962004-10-29    <arnault@lal.in2p3.fr> 239
97
98        * source/cmt_parser.cxx (set_standard_macros): Restructure the
99        StandardMacroBuilder to provide all steps.  Move upward the
100        fill_for_install_area to make all cmtpath_patterns applied before
101        manging other macros. This caused the include_dirs installed in a
102        cmtpath_pattern useless.
103
104        * source/cmt_list.h (class cmt_list): few fixes for CYGWIN
105
106        * mgr/requirements: CYGWIN tag implies Linux
107
108        * mgr/fragments/install_includes_header (uninstall):
109        * mgr/fragments/java_header (install):
110        * mgr/fragments/jar (install):
111        * mgr/fragments/library_no_share (install):
112        * mgr/fragments/library (install):
113        * mgr/fragments/application (install):
114        * mgr/cmt_install_action.sh:
115        * mgr/cmt_uninstall_action.sh: Improve the argument passing scheme
116        to make it more flexible. Add an argument to get cmtpath, to check
117        it against pwd. However this should never occur since cmt itself
118        is supposed to never generate CMTNSTALLAREA when this is not
119        appropriate.
120
121        * source/cmt_install_area.cxx (setup_current_installarea): Consider <project>_installarea_prefix
122
123        * source/cmt_system.cxx (compress_path): Fix a bug: when detecting
124        the aaa/bbb/../ccc pattern, "bbb" cannot be ".." nor "." nor
125        contain a macro reference.
126
1272004-10-25    <arnault@lal.in2p3.fr> 238
128
129        * source/cmt_parser.cxx (do_run): Force the settings of EVs
130        before launching the run action
131
132        * source/cmt_parser.cxx (do_broadcast): Force the settings of EVs
133        before launching the bro action
134
135        * source/cmt_commands.cxx (do_run): The run command now transmits all arguments
136
137        * source/cmt_list.h: Prepare a list class for future use. This be
138        used to handle the constituent order mechanisms.
139
140        * mgr/Makefile:
141        * mgr/NMake (post_build): Add a post_build step to re-generate the
142        cmt_dependencies.[n]make file (one version in mgr without the
143        stamps and one version in $(bin) with them)
144       
145        * source/cmt_generators.h (class DependencyGenerator):
146        * source/cmt_generators.cxx (build): Add an option -no_stamps to
147        buid dependencies so as to generate a version of the dependency
148        files without the extra stamps specifications and with no stamp
149        file generation. This is need to generate the bootstrap dependency
150        file for cmt itself.
151
152        * source/cmt_generators.cxx:
153        * source/cmt_generators.h (class DependencyGenerator):
154        * source/cmt_generator.h (class CmtGenerator): Revisit the construction of dependencies files:
155        The dependencies file is split as one file fragment per dependency line (ie per file)
156        This dep fragment is installed into $(bin)/<constituent>/*.stamp
157        a dep to this stamp file is installed in the dependency line
158        the stamps file is only touched when it changes
159        All this to ensure that recompilations are done when anythin in th configuration is changed
160
161        * source/cmt_map.h (cmt_vmap): Introduce cmt_vmap to construct
162        maps of objects by value
163
164        * source/cmt.h (class Cmt): Restart of set settings can be
165        manually triggered. Typically to ensure that they are really set
166        just before launching an action
167
168        * mgr/cmt_make_shlib_common.sh (temp_shlib): Suppress the
169        automatic construction of bundles on Darwin
170
171        * source/cmt_system.cxx (add_cmt_path): Adding protections of
172        validity of CMTPATH entries
173
174        * source/cmt.h:
175        * source/cmt_parser.h:
176        * source/cmt_parser.cxx:
177        * source/cmt_command.h:
178        * source/cmt_command.cxx: Introducing classes for command line parsing
179        All decoding of the cmt command line arguments are transfered there.
180        The decoding is also rationalized.
181        actions can be seen as cmt command extensions
182        better preparing of EVs before running actions
183        prepare the Makefile default file before running actions
184        improve the generic management of options
185        * cmt.h: Introduction of the CmtContext class to hold global state variables
186        for Cmt. The Cmt class now only contains static functions.
187
188        * src/source: Major restructuring of the directories:
189        All real sources of cmt now go to ../source
190        ../src only contains stuff that need to be exported
191        ../fragments is transfered to mgr/fragments.
192
193        * doc/gendoc.py (Book.book_start): Produce the revision date of the documentation
194        Install the real version tag in the doc.
195
196        * doc/CMTDoc.xml: Improving the doc
197
1982004-10-17    <arnault@lal.in2p3.fr> 238
199
200        * mgr/cmt_make_shlib_common.sh: Suppress the systematic creation
201        of a bundle in Darwin context
202
2032004-09-28    <arnault@lal.in2p3.fr> 237
204
205        * src/cmt_system.cxx (compress_path): The algorithm must ignore
206        the following pattern: xxxx/$(mmm)/../yyyy which cannot be reduced
207        to xxxx/yyyy. In fact it nows expands the path when macros are in it
208
2092004-09-27    <arnault@lal.in2p3.fr> 237
210
211        * src/NMakefile.header (check_config): Ensure that configuration
212        checking is performed first.
213
214        * src/Makefile.header (check_config): Ensure that configuration
215        checking is performed first.
216
217        * src/cmt_use.cxx (need_new): Only display the incompatible case.
218
219        * src/cmt_use.cxx (reach_package): IncompatibleMajorIds is no
220        longer considered. Id comparison is no longer rejected in any
221        case.
222
223        * src/cmt_use.cxx (compare_versions): Really compare major ids. No
224        longer produce IncompatibleMajorIds
225
226        * src/cmt_use.cxx (enum): Add cases to completely analyze the major ids
227
228        * src/cmt_use.cxx (operate):
229
230        * src/cmt_system.cxx (get_cmt_paths): Suppress the systematic
231        addition of $CMTROOT in CMTPATH items!
232
233        * src/cmt_awk.cxx (scan_path): really stop the too deep recursion
234
2352004-09-01    <arnault@lal.in2p3.fr> 236
236
237        * src/cmt_version.h (CMTVERSION): v1r16p20040901
238
239        * doc/ReleaseNotes.html: Prepare next tagging
240
241        * mgr/Makefile: Adapt for the new CMTBIN convention
242
243        * src/cmt_model.cxx (filter): Substitute <cmt:null/> only just
244        before printing for empty vector elements
245
2462004-08-31    <arnault@lal.in2p3.fr> 235
247
248        * doc/CMTDoc.xml: Improve the doc.
249
250        * src/cmt_model.cxx (strict_expand): Support parameter values enclosed in simple quotes
251        Only display endl at the very end or recursion.
252
253        * src/cmt_project.cxx (configure): Fix typo in tag excludes
254
2552004-08-30  Christian Arnault  <arnault@lal.in2p3.fr> 234
256
257        * mgr/requirements: Keep 3 digits for the compiler version
258        * mgr/Makefile: augment support for SLC3 machines
259        * mgr/cmt_linux_version.sh: idem
260
2612004-08-30    <arnault@lal.in2p3.fr> 233
262
263        * doc/CMTDoc.xml:
264        * doc/table.html: Install the reference to CeCILL licences
265        * doc/download.html:
266        * doc/intro.html:
267        * doc/copyright.html:
268
269        * fragments/dependencies: Trigger the reconstruction of dependency
270        file when the setup changes.
271
272        * fragments/constituents_header (first): Do not ovverride
273        <package>_setup.make when identical. This permits its use as a
274        real stamp file to trigger reconstruction of dependency files.
275
276        * mgr/Makefile (cpp): Take into account the new convention for
277        CMTBIN (suffixed with `uname -m`)
278
279        * mgr/cmt_system.sh: improve the default value of CMTCONFIG on Cygwin
280
281        * mgr/requirements: Improve the cleaning and setting of PATH
282        vaiables WRT installation area strategy
283
284        * src/cmt_parser.cxx (dos_script_prefix): Standalone packages
285        don't need ..\.. in the -path option of DOS setup scripts
286
287        * src/setup.sh (CMTBIN): Suffix CMTBIN with `uname -m` on Unix machines
288        * src/setup.csh: idem
289
2902004-08-26    <arnault@lal.in2p3.fr> 232
291
292        * src/setup.bat: Suppress the rem--- lines
293        * src/demo/demoA/init.bat: Suppress the rem--- lines
294        * src/demo/demoB/init.bat: Suppress the rem--- lines
295
2962004-08-25  Christian Arnault  <arnault@lal.in2p3.fr> 231
297
298        * src/setup.tcsh: Fix typo
299
300        * src/cmt_license.sh: Add template file to include in a various sources (commented by hash signs)
301        * src/cmt_license.h: Add template file to include in a C++ source
302
303        * src/cmt_parser.cxx (do_expand_model): Add a -test internal
304        option to the expand model command to test regular expressions.
305
306        * src/cmt_regexp.cxx (match): a or_node matches the longest
307         matching alternate patterns, instead of the first one.
308
309        * src/cmt_system.cxx (split): Detect \" and \' patterns and ignore
310        them as word separators. So a text containing "a b c" d e \"x\" will result in 4 fields
311        a b c
312        d
313        e
314        \"x\"
315
316        * src/cmt_model.cxx (strict_expand): Implement the strict model
317        expansion. The new syntax for definning model is:
318
319        <cmts:name att="value" ... />         for a single expansion
320        <cmtv:name att="v1 v2 v3 ..." ... />  for a multiple expansion
321
322        The element <cmt:null/> may be used in a vector value to specify an empty value.
323
324        name is the name of a declared make_fragment as usual.
325       
326
3272004-08-23  Christian Arnault  <arnault@lal.in2p3.fr> 230
328
329        * src/cmt_regexp.h (class cmt_regexp): Adding comparison operator
330        and extraction operator to regexp::iterator
331
332        * src/cmt_parser.cxx (do_expand_model): Parse the -strict option
333
334        * src/cmt_model.h (class CmtModel): Start designing the support
335        for stricter model expansion (to support model files in XML)
336
337        * src/cmt_license.txt: First introduction of the license text (obtained from CeCILL)
338
339        * src/Makefile.header (all): Evaluate the result of the cmt check
340        configuration and stop Make if it terminates in error.
341
342        * src/cmt_generators.cxx (analyze_file): Evaluate if the file
343        exists. Only generate its SourceFile if it exists or can be built
344        (build): Accumulate the file names only if they can be built.
345
346        * src/cmt_generators.h (class DocumentGenerator): Make
347        analyze_file return if the file is not found.
348        (class LibraryGenerator): idem
349
350        * src/cmt_parser.cxx (parser): Make the configure_error a fatal error.
351
352        * src/Makefile.header (common_target): Improve the tmpdir mechanisms. Support ${TMPDIR}
353
354        * src/cmt_parser.cxx (dos_script_prefix): Suppress the -quiet
355        option in the setup scripts now that errors are sent to stderr
356        instead of stdout.
357
358        * src/cmt_constituent.cxx (class constituents_action_iterator): Use cerr instead of cout
359
360        * src/cmt_fragment.cxx (copy): Use cerr instead of cout
361
362        * src/cmt_generators.cxx (java_file_action, build, build): Use cerr instead of cout
363
364        * src/cmt_parser.cxx (do_awk): typo
365        (do_filter, parse_arguments, parser): Use cerr instead of cout
366
367        * src/cmt_use.cxx (install_library, get_all_clients, operate): Use cerr instead of cout
368
369        * src/cmt_system.cxx (remove_file, remove_directory): Use cerr instead of cout
370
371        * src/cmt_tag.cxx (action_apply): Use cerr instead of cout
372
373        * src/cmt_symbol.cxx (create, build): Use cerr instead of cout
374
375        * src/cmt_pattern.cxx (action): Use cerr instead of cout
376
377        * src/cmt_syntax.cxx: general substitution of cout to cerr
378
379        * src/cmt_error.cxx (get_error_name): format text only
380        (print): Use cerr instead of cout
381
382        * src/cmt_lock.cxx (check): format text only
383
3842004-08-20  Christian Arnault  <arnault@lal.in2p3.fr> 229
385
386        * mgr/requirements: Protect the cmt_installare_linkopts against
387        ambiguous tag settings
388
389        * src/cmt_awk.cxx (scan_path): First compress the path before
390        calling the actual recursive scanner
391        (scan_path): Completely revisit the scan algorithm to better
392        account for directory structures and version.cmt files and package
393        statements.
394
395        * src/cmt_project.cxx (create_project): The project file parsing
396        must occur after setting the project chain. This caused wrong tag
397        propagation across the Project chain.
398
3992004-08-04  Christian Arnault  <arnault@lal.in2p3.fr> 228
400
401        * src/cmt_parser.cxx (do_create): use only compressed paths
402        (do_remove): idem
403
404        * src/cmt_use.cxx (get_cmtpath_and_offset): Need to compress the cmtpath to suppress .. patterns
405
406        * src/cmt_system.cxx (compress_path): Compress the pattern /xxx/.. or xxx/.. instead of xxx/../
407
4082004-07-01    <arnault@lal.in2p3.fr> 227
409
410        * src/cmt_version.h: Prepare tagging v1r16p20040701
411
412        * src\cmt_parser.h: idem
413
414        * src\cmt.h (class Cmt): Suppress version strategy
415
416        * src\cmt_parser.cxx (do_show_strategies): Suppress version strategy
417
4182004-06-30    <arnault@lal.in2p3.fr> 226
419
420        * src\cmt_version.h (CMTVERSION): Prepare tagging v1r16p20040630
421
422        * src/cmt_generator.cxx (class WinDefAwk): Better generation of .def files for DATA
423
4242004-06-24    <arnault@lal.in2p3.fr> 225
425
426        * src/cmt_use.cxx (need_new): fix a bug that impacted on the order of
427        compatible use requests with different specifications.
428
429        * src\cmt_symbol.cxx (build): Add a debug print
430        (SymbolValueList::show): only display actions with a non empty value
431
432        * src\cmt_use.cxx (add): improve the debug statements (no change to algo)
433
434        * mgr\requirements: Improve the removal operations for Windows in the cmtpath_patterns
435
4362004-06-12    <arnault@lal.in2p3.fr> 225
437
438        * src\cmt_parser.cxx (need_prototypes): Fix access to prototype mask of build strategy
439
4402004-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 224
441
442        * Tagging v1r16p20040527
443
444        * src/demo/demo1.cmt: Add a test for -target_tag option
445
446        * src/cmt_parser.cxx (do_build_library_links): Transfered the code
447        to install a lib symlink into cmt_use.cxx
448
449        * src/cmt_use.cxx (same_dirs): Add a local helper function to
450        check if two directory specifications point to the same location
451        (install_library): Common local function to really create a
452        symlink to a file either into ../$(tag) or into $(CMTINSTALLAREA)/$(tag)/lib
453        (build_library_links): Build all the library links for a Use.
454
455        * src/cmt_use.h (class Use): Add a function to build the library links (the code is
456        extracted from Cmt::do_build_library_links () )
457
4582004-05-27    <arnault@lal.in2p3.fr> 223
459
460        * src\cmt_version.h (CMTVERSION): Prepare for real tagging v1r16p20040527
461        * doc\download.html: idem
462
463        * doc\CMTDoc.xml: Update the doc for the new -target_tag option
464
465        * src\cmt_constituent.cxx (add_for_action): Actions always have a target tag.
466
467        * src\demo\demoA\requirements: Add a -target_tag option to demoA target to test this feature.
468
469        * fragments\constituent: Construct or not a local tag makefile according to has_target_tag
470        * fragments\nmake\constituent: id
471        * fragments\make_header: id
472        * fragments\nmake\make_header: id
473
474        * src\cmt_generators.cxx (LibraryGenerator::build):
475        (DocumentGenerator::build): Transmit m_HASTARGETTAG
476
477        * src\cmt_generator.cxx (reset): Initialize the new m_HASTARGETTAG variable.
478
479        * src\cmt_generator.h (class CmtGenerator): Add a m_HASTARGETTAG
480        Variable to propagate the target_tag ability of the constituents
481
482        * src\cmt_constituent.cxx (show): Display the -target_tag option
483        (class constituents_action_iterator): Parse the -target_tag option
484
485        * src\cmt_constituent.h (class Constituent): Add support for the
486        new -target_tag option, to control the per-constituent generation
487        of the target tag. So add a field has_target_tag
488       
489
4902004-05-25  Christian Arnault  <arnault@lal.in2p3.fr> 222
491
492        * mgr/requirements: Use $(tag) instead of ${CMTCONFIG} in all cmtpath_pattern s
493
494        * src/NMakefile.header (tags): idem
495        * src/Makefile.header (tags): idem
496        * fragments/nmake/make_header: idem
497        * fragments/nmake/constituents_header (tags): idem
498        * fragments/make_header (tags): idem
499        * fragments/constituents_header (tags): prefix the tags macro with $(tag)
500
5012004-05-25    <arnault@lal.in2p3.fr> 221
502
503        * src\cmt_version.h (CMTVERSION): Prepare for tagging v1r16p20040525
504
505        * mgr\NMake (gendoc): Add a new target to generate html from xml
506
5072004-05-25    <arnault@lal.in2p3.fr> 220
508
509        * mgr\NMake (cmttag): Convert VisualC.nmake into VisualC_cmt.nmake
510        * fragments\nmake\constituent: Generate tag file for the target
511
5122004-05-18    <arnault@lal.in2p3.fr> 219
513
514        * mgr\requirements: Add cmt_log.cxx in the source list
515
516        * src\cmt_tag.cxx (add): First replacements of debug messages using log
517        * src\cmt_parser.cxx (configure_tags): idem
518
5192004-05-18    <arnault@lal.in2p3.fr> 219
520
521        * src\cmt_log.h (class CmtLog): Introducing a centralized log message facility
522        * src\cmt_log.cxx: first implementation
523
5242004-05-18  Christian Arnault  <arnault@lal.in2p3.fr> 218
525
526        * fragments/nmake/make_header (tags): idem
527
528        * fragments/nmake/constituent: Update to generate the target_XXX tag
529
530        * src/cmt_parser.cxx (parse_arguments): Activate the tag target_<action> when "cmt do <action>" is run
531
532        * fragments/constituent: Generate the target_${CONSTITUENT} tag
533
5342004-05-17  Christian Arnault  <arnault@lal.in2p3.fr> 218
535
536        * fragments/constituent: Propagate cmt_lock_pid for temporary files
537        Generate a tag makefile specific to the constituent
538
539        * fragments/constituents_header (first): Improve the printout for CMTCONFIG
540
541        * fragments/make_header (tags): Generate the target_${CONSTITUENT} tag
542
543        * mgr/requirements: Don't generate the tags macro from CMT. Only do it from the Makefile fragments.
544
545        * src/cmt_generators.cxx (build): Add PACKAGE variable to individual constituent fragment
546
5472004-05-13  Christian Arnault  <arnault@lal.in2p3.fr> 217
548
549        * fragments/constituent: idem
550
551        * fragments/constituents_header (cmt_final_setup): Implement a READONLY mode that generates all intermediate files in /tmp/CMT_*
552
553        * src/Makefile.header (tags): Implement a READONLY mode that generates all intermediate files in /tmp/CMT_*
554        (common_target): Make use of the new -out=file option of the cmt build constituents_makefile command
555
556        * src/cmt_generator.cxx (build_constituents_makefile): idem
557
558        * src/cmt_generator.h (class Generator): Add the argument list to the build_constituents_makefile function
559
560        * src/cmt_generators.cxx (build): idem
561
562        * src/cmt_generators.h (class ConstituentsMakefileGenerator): Add the argument list to the build function
563
564        * src/cmt_parser.cxx (configure): Chain configure_home, configure_user_context and configure_cmtpat
565        (do_build_constituents_makefile): Propagate arguments to the Generator::build_constituents_makefile method
566        (parse_arguments): Accumulate extra-arguments for build constituents_makefile command
567        (parse_arguments): Restore the home,user_context and cmtpath configurations for the -tag=xxx option
568
569        * src/cmt_project.cxx (set_build_strategy): Get tags from their names rather than from their pointer to fix a pointer bug
570        (set_setup_strategy): idem
571
572        * src/cmt_tag.cxx (action_apply): Adding several debug printouts
573
5742004-05-10    <arnault@lal.in2p3.fr> 216
575
576        * doc\CMTDoc.xml: Add a section on package semantics
577
5782004-05-07  Christian Arnault  <arnault@lal.in2p3.fr> 215
579
580        * mgr/requirements: Improve support for CEL
581        Upgrade system_version_query_command for Darwin
582
5832004-05-06  Christian Arnault  <arnault@lal.in2p3.fr> 215
584
585        * src/cmt_tag.cxx (action_apply): apply_tag now supports the tag
586        name given through a symbol expression
587
588        * mgr/cmt_linux_version.sh: Support for Entreprise Linux
589
590        * mgr/requirements: Create automatic tags from cmt_hardware
591        cmt_system_version and cmt_compiler_version.
592        Set the macro shlibsuffix for Win32
593
594        * mgr/cmt_filter3_version.sh: Add a filtering procedure to keep 3 digits in the compiler version
595
5962004-05-05  Christian Arnault  <arnault@lal.in2p3.fr> 214
597
598        * src/cmt_syntax.cxx (parse_requirements): Close all scope sections once the requirements file is parsed.
599
600        * src/cmt_use.cxx (close_scope_sections): Implement by clearing the vector of scope sections.
601
602        * src/cmt_use.h (class Use): Add close_scope_sections to be called
603        at the end of parsing a requirements file.
604
6052004-05-03  Christian Arnault  <arnault@lal.in2p3.fr> 213
606
607        * doc/ReleaseNotes.html: Fix typo
608
609        * src/cmt_system.cxx (is_version_directory): Misunderstands
610        version specifications of the form v1r2p (without a trailing
611        number)
612
6132004-05-03  Christian Arnault  <arnault@lal.in2p3.fr> 212
614
615        * src/cmt_parser.cxx (configure): Configure home and user_context
616        before configuring cmtpaths to associate projects with CMTHOME and
617        CMTUSERCONTEXT
618        (configure_cmt_path): Reset the project factory before creating all projects
619        (configure_user_context): Add a debugging printout
620
621        * src/cmt_system.cxx (get_cmt_paths): Remove the initialization of
622        the project factory from there to transfer it to the caller (eg
623        cmt_parser::configure_cmt_path)
624
625        * src/cmt_parser.cxx (use_special_requirements): Expects a
626        statically defined version "v0" for all special uses.
627
628        (configure_cmt_path): Associate a project with CMTHOME and CMTUSERCONTEXT to manage strategies.
629
630        * src/cmt_use.cxx (show_all): Adapt to new naming convention:
631        display the static version explicitly.
632
633        * src/cmt_system.cxx (get_home_package): Convert CMTHOME package
634        name from "CMTHOME context" to CMTHOME and manage a version
635        through standard mechanisms (version is statically defined as v0)
636        (is_home_package): Adpat to new naming convention
637        (get_user_context_package): Idem for CMTUSERCONTEXT
638        (is_user_context_package): Adapt to new naming convention
639
6402004-04-30  Christian Arnault  <arnault@lal.in2p3.fr> 211
641
642        * mgr/cmt_install_action.sh: Use /bin/pwd instead of raw pwd [Thanks to Traudl]
643        * mgr/cmt_uninstall_action.sh: idem
644        * mgr/cmt_make_shlib.sh: idem
645        * mgr/cmt_make_shlib_common.sh: idem
646        * fragments/install_includes_header: idem
647
648        * mgr/requirements: Perform path_remove all before path_prepend in
649        the cmtpath_pattern. Thus state two separate cmtpath_patterns.
650
6512004-04-02    <arnault@lal.in2p3.fr> 210
652
653        * src\cmt_project.cxx (scan_paths): Late patch for LynxOS limitation
654
655        * src\cmt_version.h: Prepare for v1r16
656
6572004-03-29    <arnault@lal.in2p3.fr> 209
658
659        * mgr/Makefile: Set compiler options for CYGWIN
660
6612004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 208
662
663        * src/cmt_syntax.cxx (class KwdSetupStrategy): Implement setup strategy decoding for projects
664
6652004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 207
666
667        * src/cmt_system.h (class IProjectFactory): Suppress the configure entry point
668
669        * src/cmt_system.cxx (get_cmt_paths): see below
670
671        * src/cmt_project.h (class ProjectFactory): No longer need to configure from ProjectFactory
672
673        * src/cmt_project.cxx (configure): Fix typo mixing prototypes and no_prototypes tags
674        (add): Systematically create tags just after naming the project.
675
676        * src/cmt_project.h (class Project): Only create tags once
677
678        * src/cmt_syntax.h (class SyntaxParser): Introduce the different
679        syntax parsing schemes for requirements files and projects files.
680        (class SyntaxParser): Rename do_parse_requirements_text and
681        do_parse_requirements_text into do_parse_text and do_parse_line.
682
6832004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 206
684
685        * src/cmt_syntax.cxx (action): Define a default implementation for project actions
686        (class KwdBuildStrategy): Define a project action
687        (class KwdProject): idem
688        (class KwdSetupStrategy): idem
689
690        * src/cmt_syntax.h (class Kwd): Introduce an action for project files (simply virtual)
691        (class SyntaxParser): Restructure, cleanup and sort the entry points
692        (class SyntaxParser): Introduce a map of project keywords
693
694        * src/cmt_project.cxx (class ProjectReader): Start support for more statements in the project file
695
696        * src/cmt_pattern.cxx (action): Augment the decoding logic to be more fault tolerant
697        (add): Temporarily force the word quoting
698        Add various debuggin printouts
699
700        * src/cmt_parser.cxx (parser): Force the Use* argument type
701
702        * src/cmt_cvs.cxx (class CvsImplementation): Install a constructor for setting default values
703        (class CvsImplementation): Set default verse mode to false
704
7052004-03-24  Christian Arnault  <arnault@lal.in2p3.fr> 206
706
707        * src/cmt_cvs.cxx (class CvsImplementation): Reset default verbose mode to off.
708
7092004-03-23  Christian Arnault  <arnault@lal.in2p3.fr> 205
710
711        * src/cmt_pattern.cxx (class PatternCache): Introduce a cache for
712        the get_paths operation. To save recursive executions.
713
714        * src/cmt_pattern.h (class PatternList): Navigate in pattern list through PatternList
715
716        * src/cmt_vector.h (cmt_vector): Trying to optimize vector by changing the frame size
717
718        * doc/cmt-mode.el (cmt-mode-map): Revert completion key to <Esc>-<tab>
719
7202004-03-22  Christian Arnault  <arnault@lal.in2p3.fr> 205
721
722        * src/cmt_symbol.cxx (resolve_value): Optimize by checking if $%` exist in the text to expand.
723        (create): Missing "alias" case
724
725        * src/cmt_parser.cxx (do_show_action): Missing "alias" case
726        (do_show_macro): idem
727
728        * src/cmt_project.cxx (clear): Improve the clear function to
729        ensure a proper initialization
730
731        * src/cmt_system.cxx (get_home_directory): Use ::getenv rather than CmtSystem::getenv.
732
7332004-03-19  Christian Arnault  <arnault@lal.in2p3.fr> 205
734
735        * doc/emacs.html: doc on the new emacs mode for CMT
736        * doc/table.html: include emacs.html
737
7382004-03-19  Christian Arnault  <arnault@lal.in2p3.fr> 204
739
740        * src/cmt_symbol.cxx (all_set): Only set non empty environment variables
741
7422004-03-22    <arnault@lal.in2p3.fr> 203
743
744        * src\cmt_parser.cxx (get_build_strategy): Create a local helper
745        function to retrieve the build strategy from the current project.
746        (get_setup_strategy): Idem for the setup strategy
747        (parse_arguments): Add a protection against the killing -tag= with empty argument.
748        (reach_current_package): Specify the use object (current use)
749        (class StandardMacroBuilder): Isolate the construction of the CMTVERSION macro into a function
750        (class StandardMacroBuilder): Setting of basic standard macros
751        specific to packages is transfered to Use::fill_standard_macros
752        (set_standard_macros): Apply all cmtpath_patterns independently of the build strategy.
753
754        * src\cmt_symbol.cxx (action): Expand the tag name to permit tag
755        expressions containing macros.
756
757        * src\cmt_syntax.cxx (parse_requirements): Define the standard
758        macros before reading the requirements file.
759
760        * src\cmt_use.cxx (fill_standard_macros): Implement it (move code from cmt_parser.cxx)
761        * src\cmt_use.h (class Use): Add fill_standard_macros function to
762        fill in all standard macros for a given use before reading its
763        requirements file.
764
765        * mgr\requirements: Add exclusions between basic tags
766        Adapt cmtpath_pattern to new strategy management
767
768        * fragments\nmake\constituents_header (tags): id.
769        * fragments\nmake\constituent: id.
770        * fragments\constituent: Add -quiet to CMT command.
771
7722004-03-19    <arnault@lal.in2p3.fr> 203
773
774        * src\cmt_parser.cxx (get_build_strategy): Install a local
775        accessor function to get the build strategy either from the
776        current project or from m_current_build_strategy.
777
7782004-03-16    <arnault@lal.in2p3.fr> 202
779
780        * src/cmt_parser.cxx (fill_for_branches): Add a protection against empty current project
781
782        * src\cmt_system.cxx (get_cmt_paths): Make use of the new
783        CmtSystem::get_home_directory function
784
785        * src\cmt_parser.cxx (class CmtMountFilterParser): Create a FAwk
786        parser to decode mout_filter files.
787        (configure_current_dir): Make use of the CmtMountFilterParser
788        class to parse cmt_mount_filter and .cmtrc files.
789
790        * src\cmt_system.cxx (get_home_directory): Implementation.
791
792        * src\cmt_system.h (class CmtSystem): Introduced to get ${HOME} in
793        a portable way
794
7952004-03-03  Christian Arnault  <arnault@lal.in2p3.fr> 201
796
797        * src/cmt_parser.cxx (print_context): Use the new projet based setup strategy
798
799        * src/cmt_cvs.cxx: suppress some verbose printouts
800
8012004-02-25    <arnault@lal.in2p3.fr> 200
802
803        * src\cmt_pattern.cxx (action): add use to warning messages
804
805        * doc\CMTDoc.xml: improvements
806
807        * doc\gendoc.py (Book.book_start): Set a padding on top of every rule
808
809        * src\cmt_cmtpath_pattern.h (class CmtPathPattern): No need to duplicate the vector of words.
810
811        * src\cmt_cmtpath_pattern.cxx (add): Construct the cmt statement as a one line statement
812
813        * src\cmt_cmtpath_pattern.h (class CmtPathPattern): Add an expansion line in the class
814
815        * src\cmt_pattern.cxx (add): Construct the cmt statement as a one line statement
816        (expand): Create a temporary replacement for full line
817        (action): relax the syntax by permitting spaces around the "=" sign.
818        Add checks for the template name to be expected by the pattern.
819
820        * src\cmt_pattern.h (class Pattern): Add an expansion line in the class
821
8222004-02-19    <arnault@lal.in2p3.fr> 200
823
824        * src\cmt_project.cxx (configure): Preset the tags of the default strategies
825
826        * src\cmt_tag.cxx (show_definition): Suppress the display of the internal Default tag
827
8282004-02-13    <arnault@lal.in2p3.fr> 200
829
830        * src\cmt_parser.cxx (class StandardMacroBuilder): Fill <package>_project macro
831        (class StandardMacroBuilder): Fill <package>_project macro
832
833        * src\cmt_project.cxx (get_current): No need to cd
834
8352004-02-13  Christian Arnault  <arnault@lal.in2p3.fr> 199
836
837        * src/cmt_symbol.cxx: implement the XxxRemoveRegexp
838
839        * src/cmt_parser.cxx: idem
840        * src/cmt_constituent.cxx: idem
841        * src/cmt_symbol.cxx: idem
842        * src/cmt_symbol.h (class Symbol): Change the action stored in Symbol into a new enum SymbolType.
843
844        * src/cmt_symbol.cxx: idem
845        * src/cmt_syntax.cxx (SyntaxParser): idem
846        * src/cmt_parser.h (enum): Introduce regexp-based remove operations for symbols
847
8482004-02-10  Christian Arnault  <arnault@lal.in2p3.fr> 198
849
850        * src/cmt_parser.cxx (actor): Rename PackageCollector into ClientCollector
851
8522004-02-09  Christian Arnault  <arnault@lal.in2p3.fr> 198
853
854        * fragments/installer: add a / everywhere for consistency
855
856        * src/cmt_symbol.cxx (build): Restrict warning on symbol overriding to show macro and show set
857
8582004-02-13    <arnault@lal.in2p3.fr>
859
860        * doc\CMTDoc.xml: Work on the doc towards v1r16
861
862        * doc\gendoc.py (Book.plain_char_data): Keep space characters from raw text
863        (Book.book_start): Introduce style sheet.
864
8652004-02-06  Christian Arnault  <arnault@lal.in2p3.fr> 197
866
867        * src/cmt_cvs.cxx (class CvsImplementation): use -quiet for all internal cmt commands
868
869        * src/cmt_string.cxx (erase): Replace strcpy by an explicit loop
870
871        * src/cmt_cvs.cxx: Added -n and -v options to support simulation and verbose modes
872
873        * src/cmt_system.cxx (execute): Change the status value. Back to the Unix standard 0 = ok
874
875        * fragments/nmake/library: idem
876        * fragments/library: Install the dependency to the ${CONSTITUENT}stamps macro like for application
877
878        * src/cmt_system.cxx (reduce_file_separators): Improve the reduction algorithm
879
8802004-02-05    <arnault@lal.in2p3.fr> 196
881
882        * src\cmt_parser.cxx: Remove cmtpath database from Cmt class
883        Rename FileScanner into PathScanner and transfer it to CmtSystem
884        (configure_cmt_path): Use the ProjectFactory to create Projects from CMTPATH
885        (do_broadcast): Projects now fill the selections.
886        (do_show_clients): Projects used to search clients
887        (do_show_packages): idem
888        (do_show_path): idem
889        (do_show_strategies): Projects reached to get strategies
890        (do_show_versions): Projects used to search versions
891        (parse_arguments): +path managed by adding a project
892        (reach_current_package): Definitively suppress "current package" source of CMTPATH
893
894        * src\cmt_use.cxx (class UseProjectAction): Intoduce an action
895        pattern to iterate into Project database
896        (move_to): Use the Project::broadcast mechanism to locate the package.
897
898        * src\cmt_use.h (class Use): Make UseProjectAction friend of class Use
899
900        * src\cmt_system.cxx (add_cmt_path):
901        (add_cmt_paths_from_text):
902        (add_cmt_paths):
903        (get_cmt_paths): Use IProjectFactory
904
905        * src\cmt_system.h (class IProjectFactory): Add abstract interface
906        for creating projects form cmtpath entries
907        (class CmtSystem): Change the API to using IProjectFactory
908
909        * src\cmt_project.cxx: Implement project management
910
911        * src\cmt_syntax.cxx (class KwdBuildStrategy):
912        (class KwdSetupStrategy): Change strategies from new masks and into Projects
913
914        * src\cmt_parser.h (enum): Change the masks for strategies to
915        improve the reliability of exclusive options, and inheritance
916        between projects.
917
918        * src\cmt_cmtpath_pattern.cxx (class CmtPathPatternProjectAction):
919        Introduce new actor pattern for broadcasting to project
920        database. Used to apply all cmtpath_patterns
921        (apply): Expand the <project> parameter
922        (expand): idem
923
924        * src\cmt_cmtpath_pattern.h (class CmtPathPattern): Add project argument to expand
925
926        * src\cmt_awk.h (class PathScanner): Add the PathScanner class (imported from cmt_parser.cxx)
927        * src\cmt_awk.cxx (PathScanner):
928
929        * src\cmt.h (class Cmt): Transfer cmtpath management to Project
930
931        * doc\CMTDoc.xml:
932        * src\cmt_syntax.cxx (class KwdBuildStrategy):
933        * src\cmt_project.h (class Project):
934        * src\cmt_project.cxx (set_build_strategy):
935        * src\cmt_parser.cxx (set_standard_macros): Rename X_install_area symbols into X_installarea
936        * src\cmt_install_area.cxx: Rename X_install_area symbols into X_installarea
937        * src\cmt_install_area.h: Rename X_install_area symbols into X_installarea
938
939        * mgr\requirements: Setting Project-oriented settings for installation area patterns.
940
9412004-01-27    <arnault@lal.in2p3.fr> 195
942
943        * fragments\nmake\installer: Fixes from Pere.
944
9452004-01-20    <arnault@vmlinux> 194
946
947        * Try on CVStrac ticket #1
948
949        * src/cmt_symbol.cxx (action): Ensure that the constituents macro is always private.
950
951        * src/cmt_parser.cxx (reach_current_package): Fix missing configuration bit.
952        Cures the bug of missing <PACKAGE>VERSION when using cmt -use=...
953
9542004-01-17    <arnault@lal.in2p3.frARNAULT@NB-ARNAULT> 193
955
956        * src\cmt_syntax.cxx (CommandParser): Add helps for create_project command
957
958        * src\cmt_parser.h (enum): Add action_create_project
959
960        * src\cmt.h (class Cmt): Add do_create_project function
961
9622004-01-13    <arnault@vmlinux> 192
963
964        * src/cmt_parser.cxx (dos_script_prefix): Suppress spaces before
965        continuation character in DOS format
966
9672004-01-13  Christian Arnault  <arnault@lal.in2p3.fr> 191
968
969        * src/cmt_symbol.cxx (add_value_to_list): Fix for not discarding too much value_lists
970
9712004-01-10    <arnault@vmlinux> 190
972
973        * src/cmt_syntax.cxx (class KwdBuildStrategy): Start getting the
974        strategy from project(experimental??)
975
976        * src/cmt_project.cxx (find_by_cmtpath): We also accept paths specified using a substring
977        (configure): Configure in reverse order
978        (action): Add experimental -index and -select options
979
980        * src/cmt_install_area.cxx (setup_current_install_area): Make CMTINSTALLAREA a macro instead of a set
981
9822004-01-08  Christian Arnault  <arnault@lal.in2p3.fr> 189
983
984        * src/cmt_use.cxx (reach_package): Fix bug in version comparison when working in non-version-directory mode
985        * mgr/requirements: use $(CMTCONFIG) instead of $(tag) for setting PATH etc.. in cmtpath_pattern
986
9872003-12-19  Christian Arnault  <arnault@lal.in2p3.fr> 188
988
989        * src/cmt_use.h (class Use): Remove the project relationship between Use and Project
990
9912003-12-18    <arnault@lal.in2p3.fr> 187
992
993        * src\cmt_constituent.h (class Constituent):
994        * src\cmt_constituent.cxx (add_for_action): Implement the constituent equivalent to actions
995        (parse_all): Generate the constituent equivalents for all macros
996
997        * fragments\cmt_action_runner:
998        * fragments\cmt_action_runner_header:
999        * fragments\nmake\cmt_action_runner_header: The new generic make fragment for running actions
1000
1001        * fragments\nmake\dependencies:
1002        * fragments\dependencies: Suppress dependency computation when the
1003        QUICK macro is defined
1004
1005        * fragments\nmake\library:
1006        * fragments\library:
1007        * fragments\application:
1008        * fragments\nmake\application: Add dependency to requirements to rebuild application
1009
1010        * src\cmt_parser.cxx (do_config): Suppress install area cleanup action from cmt config
1011        (do_setup): idem
1012
10132003-12-16    <arnault@lal.in2p3.fr> 187
1014
1015        * src\cmt_constituent.cxx (class constituents_action_iterator):
1016        Added syntax check on -xxx options for constituents
1017
1018        * src\cmt_parser.cxx: Implement Action support.
1019        Added: (to support Actions)
1020                do_do
1021                do_show_action
1022                do_show_action_names
1023                do_show_action_value
1024                do_show_actions
1025        removed: (after introducing Scope Sections)
1026                get_scope
1027                set_scope
1028                m_scope
1029
1030        * src\cmt_parser.h (enum): Added
1031                CommandAction
1032                CommandEndPrivate
1033                CommandEndPublic
1034
1035                action_show_action_xxx
1036
1037        * src\cmt_constituent.cxx (class constituents_action_iterator):
1038        Added a syntax checking action.
1039
1040        * src\cmt_use.cxx:
1041        * src\cmt_use.h (class Use): Support Scope Section concept.
1042        A Use object holds a vector of ScopeSections
1043        Added functions
1044                push_scope_section
1045                pop_scope_section
1046                get_current_scope
1047        Changed attributes:
1048                scope -> initial_scope
1049
1050        * src\cmt_syntax.cxx (class KwdAction): New keyword
1051        (class KwdEndPrivate): new keyword
1052        (class KwdEndPublic): new keyword
1053        (class KwdPrivate): Ignore this pattern on current use
1054        (class KwdPublic): Ignore this pattern on current use
1055        (CommandParser): Update help texts for new action concepts
1056
1057        * src\cmt_symbol.cxx (class ActionBuilder): new Action objects are
1058        implemented as a new category of symbols. Therefore all mechanisms
1059        have been extended to support the new concept.
1060
1061        old scope attribute is replaced by accesses to Scope Sections from
1062        the Use objects.
1063
1064        * src\cmt_symbol.h (class Symbol): Suppress useless scope attribute and valid () function
1065
1066        * src\cmt_scope_section.cxx: New Support for Scope Sections
1067
1068        * src\cmt_scope_section.h: New Support for Scope Sections
1069
1070        * src\cmt_fragment.cxx (action): Switch to using Scope Sections
1071
1072        * src\cmt.h (class Cmt): Added: (to support Actions)
1073                do_do
1074                do_show_action
1075                do_show_action_names
1076                do_show_action_value
1077                do_show_actions
1078        removed: (after introducing Scope Sections)
1079                get_scope
1080                set_scope
1081                m_scope
1082
1083        * mgr\requirements: Adding support for Scope sections to handle
1084        private or public sections. Now private and public sections can be
1085        ended with the new keywords end_private and end_public. Ending
1086        keywords switch back to the previous scope active before the most
1087        recent opening keyword.
1088
1089        Adding cmt_scope_section.cxx to the sources of the cmt application.
1090       
1091
10922003-12-12  Christian Arnault  <arnault@lal.in2p3.fr> 186
1093
1094        * mgr/cmt_install_action.sh (a): Improve checking of pwd WRT CMTINSTALLAREA
1095        * mgr/cmt_uninstall_action.sh (a): idem
1096
1097        * mgr/cmt_mount_filter: Restore definitions
1098
1099        * src/cmt_syntax.cxx (do_parse): Evolution of the requirements
1100        file syntax: apply_pattern can be omitted (ie. pattern names are
1101        understood as extensions to the basic CMT language)
1102
1103        * src/cmt_pattern.cxx (action): Add error detection when applying the wrong pattern name
1104        Prepare for the next change of the syntax which accepts pattern names as plain CMT keywords
1105
1106        * src/cmt_parser.cxx (find_in_cmt_paths): Fix construction of the
1107        <package>_cmtpath when symlinks exist along pwd
1108
11092003-12-08  Christian Arnault  <arnault@lal.in2p3.fr> 186
1110
1111        * src/cmt_parser.cxx (do_build_library_links): Fix : should make
1112        use of the library_prefix and suffix.
1113
11142003-12-06   Christian Arnault  <arnault@lal.in2p3.fr> 185
1115
1116        * src\cmt_syntax.cxx (do_parse): When a keyword is not found,
1117        expect an implicit pattern application.
1118
1119        * src\cmt_pattern.cxx (action): Add a protection against pattern not found
1120        Support lines starting with pattern-name or with apply_pattern.
1121
11222003-11-21  Christian Arnault  <arnault@lal.in2p3.fr> 185
1123
1124        * mgr/cmt_install_action.bat: Typo
1125
1126        * mgr/requirements: Typo in macro cmt_uninstalldir_action
1127
11282003-11-20  Christian Arnault  <arnault@lal.in2p3.fr> 184
1129
1130        * src/cmt_version.h (CMTVERSION): Preparing new tag v1r14p20031120
1131
1132        * src/cmt_syntax.cxx (CommandParser): Help on cmt build CMT_pacman
1133
1134        * src/cmt_parser.cxx (parse_arguments): Implement cmt build
1135        CMT_pacman command to generate the effective pacman manifest file
1136        for CMT.
1137
1138        * src/cmt.h (class Cmt): Add Cmt::do_build_CMT_pacman function
1139
1140        * src/cmt_parser.h (enum): Add cmt build CMT_pacman command
1141
1142        * src/setup.zsh: Upgrade zsh completion settings
1143
1144        * src/setup.tcsh: Upgrade tcsh completion settings
1145
1146        * fragments/group (all_groups): Add a new standard macro
1147        $(<group>_dependencies) to specify global dependencies for a
1148        group.
1149
1150        * fragments/constituents_trailer (binclean): Dont remove *.make* when cleaning.
1151        Add a message for binclean.
1152
1153        * src/cmt_use.cxx (add): Improve the warning message for package not found
1154        (reduce_path): Display the package path using a reusable format (used by show fragments)
1155
11562003-11-19  Christian Arnault  <arnault@lal.in2p3.fr> 183
1157
1158        * src/cmt_constituent.cxx (class constituents_action_iterator): Empty group means no group.
1159
1160        * src/cmt_parser.cxx (install_library): Factor out the basic
1161        operation for installing a library
1162        (do_build_library_links): Make use of the new install_library
1163        operation. Add special operation for Darwin to install bundles
1164
1165        * src/cmt_syntax.cxx (class KwdBuildStrategy): Fix cumulative settings of the strategies
1166        (class KwdSetupStrategy): idem
1167
1168        * mgr/cmt_make_shlib_common.sh: Add support to generate bundles for Darwin
1169
11702003-11-14  Christian Arnault  <arnault@lal.in2p3.fr> 182
1171
1172        * src/cmt_install_area.cxx (setup): Continue setup even without current installation area
1173        (config): Apply all cmtpath_patterns even  without current installation area
1174        (build_current_install_area): Make use of Cmt::find_in_cmt_paths
1175
1176        * src/cmt_parser.cxx (configure_current_cmtpath): Make use of the
1177        new find_in_cmt_paths function
1178        (do_setup): Always call CmtInstallAreaMgr::setup even if current installation area is empty
1179        (find_in_cmt_paths): first implementation
1180        (get_cmt_path_pwds): first implementation
1181        (class StandardMacroBuilder::fill_for_use_cmtpath): Make use of the
1182        new find_in_cmt_paths function
1183
1184        * src/cmt.h (class Cmt): Adding find_in_cmt_paths to locate a path
1185        from all specified CMTPATH entries (considering the dual flavours
1186        of each entry)
1187        Adding get_cmt_path_pwds to access alternal values of cmtpath entries
1188
11892003-11-12  Christian Arnault  <arnault@lal.in2p3.fr> 181
1190
1191        * fragments/nmake/constituents_trailer (binclean): Fix typo for Windows
1192
11932003-11-06  Christian Arnault  <arnault@lal.in2p3.fr> 180
1194
1195        * mgr/CMT.pacman: Add generic pacman file.
1196        All instances of the "<version>" pattern need to be substituted by
1197        the effective version of CMT to make it a real pacman file
1198
11992003-10-29  Christian Arnault  <arnault@lal.in2p3.fr> 179
1200
1201        * tagging v1r14p20031027
1202
1203        * mgr/cmt_build_release.sh (version): Add the rebuilding of Linux
1204        version at Lyon (without getting the result back)
1205
1206        * doc/documents.html: Install release notes from the documents page
1207
1208        * doc/ReleaseNotes.html: Create ReleaseNotes web page (suppress ReleaseNotes.txt)
1209
1210        * mgr/Makefile (docs):
1211        Add installation of ReleaseNotes.html
1212
12132003-10-27  Christian Arnault  <arnault@lal.in2p3.fr> 178
1214
1215        * src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031027
1216
1217        * mgr/requirements: cmt_installarea_prefix must be defined
1218        externally to the cmtpath_pattern.
1219
12202003-10-22  Christian Arnault  <arnault@lal.in2p3.fr> 177
1221
1222        * src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031022
1223
1224        * mgr/cmt_installdir_excludes.txt: New file containing the list of
1225        patterns to exclude in installing a directory
1226
1227        * fragments/nmake/install_includes_header (install): Add support for exclude files
1228
1229        * mgr/cmt_installdir_action.bat: Add support for exclude files
1230        * mgr/cmt_uninstalldir_action.bat: Add tests
1231        * mgr/cmt_uninstall_action.bat: Add tests
1232        * mgr/cmt_install_action.bat: Add tests
1233
1234        * src/cmt_parser.cxx (set_standard_macros): First define the
1235        current installation area before defining all other standard
1236        symbols (and making the final parsing of constituents)
1237
1238        * src/cmt_install_area.cxx (setup_current_install_area): Implement
1239        the definition of the CMTINSTALLAREA symbol     
1240        (setup): Differentiate the setting of CMTINSTALLAREA symbol from
1241        applying cmtpath patterns
1242
1243        * src/cmt_install_area.h (class CmtInstallAreaMgr): Split setup in
1244        two parts : first define the CMTINSTALLAREA symbol, then apply all
1245        cmtpath patterns
1246
12472003-10-21  Christian Arnault  <arnault@lal.in2p3.fr> 176
1248
1249        * mgr/cmt_build_release.sh: Start a procedure for remotely building a CMT release
1250
1251        * mgr/cmt_installdir_action.bat: Added test on existing result.
1252
1253        * fragments/nmake/install_includes_header (install_dir): Use $() instead of ${}
1254
1255        * mgr/requirements: Add definition for cmt_installdir_action
1256
1257        * src/cmt_parser.cxx (class StandardMacroBuilder): Generate
1258        <package>_cmtpath and <package>_offset macros also for the current
1259        package
1260
1261        * src/cmt_system.cxx (remove_directory): Add a # for error messages
1262        (remove_file): idem
1263
12642003-10-14    <arnault@vmlinux> 175
1265
1266        * src/cmt_version.h (CMTVERSION): Prepare tagging v1r14p20031014
1267
1268        * src/cmt_use.cxx (compare_versions): Add a function to compare
1269        two version strings.
1270        (reach_package): Add the effective version checking for
1271        no_version_directory style when version.cmt exists.
1272
1273        * doc/CMTDoc.xml: Suppress version strategy documentation since
1274        this mechanism is not really maintained.
1275
1276        * src/cmt_use.cxx (reach_package): Add effective check of version
1277        even in no_version_directory style
1278
12792003-10-13    <arnault@vmlinux> 175
1280
1281        * fragments/* : Add start and end markers to all make fragments. 
1282
12832003-10-09    <arnault@lal.in2p3.fr> 175
1284
1285        * src\cmt_parser.cxx (do_broadcast): Suppress the catching of
1286        return status=2 for last executed command
1287
12882003-10-02  Christian Arnault  <arnault@lal.in2p3.fr> 175
1289
1290        * src/cmt_system.cxx (cd): putenv requires that the string is static !!
1291
12922003-10-01    <arnault@vmlinux> 174
1293
1294        * src/cmt_use.cxx (class use_action_iterator): Force auto_imports
1295        to On when context is unspecified.
1296
1297        * src/cmt_use.h (class Use): Add a new set_selected_version
1298        function for switching from one use to another one, better wrt
1299        various criteria. When switching, m_index and auto_imports are
1300        transfered from the unselected to the newly selected.
1301
13022003-09-26    <arnault@vmlinux> 173
1303
1304        * src/cmt_system.cxx (cd): Change the PWD environment variable, in
1305        case it's not done by the underlying OS
1306
13072003-09-24  Christian Arnault  <arnault@lal.in2p3.fr> 172
1308
1309        * src/cmt_use.cxx (show_cycles): optimizing a bit
1310        (find_index): idem
1311        (set_auto_imports_state): idem
1312        (move): idem
1313        (reorder): idem
1314        (unselect_all): idem
1315        (get_selected_version): idem
1316        (get_paths): Improve the algorithm to save multiple vector manipulations
1317
1318        * src/cmt_parser.cxx: Follow all symbol->build_macro_value by
1319        Symbol::expand to really expand all possible macro
1320        references. This caused a bug when inline re-confirguring
1321        CMTUSERCONTEXT (etc.) with a value containing a ref to another
1322        symbol.
1323
1324        * mgr/Makefile (cpp): Add -O2 option for Linux platform
1325        (cpp): Add support for profiling setup for LinuxProf platform
1326
13272003-09-18    <arnault@vmlinux>
1328
1329        * mgr/cmt_uninstall_action.sh (a): Fix the consistency check of pwd vs CMTINSTALLAREA
1330        * mgr/cmt_install_action.sh (a): idem
1331
13322003-09-18  Christian Arnault  <arnault@lal.in2p3.fr> 171
1333
1334        * mgr/Makefile (cpp): Set IGNORE_PWD for OSF1 and LynxOS
1335
1336        * src/cmt_system.cxx (pwd): Add an option to ignore PWD since on
1337        some machines this does not work well with the chdir function.
1338
1339        * doc/CMTDoc.xml: improvements
1340
13412003-09-17  Christian Arnault  <arnault@lal.in2p3.fr> 170
1342
1343        * src/cmt_parser.cxx (class StandardMacroBuilder): Add the
1344        production of the new macros <package>_cmtpath <package>_offset
1345        (class StandardMacroBuilder): Implement the generation of
1346        <package>_cmtpath <package>_offset macros
1347
1348        * fragments/constituent: Add the same dependency list onto
1349        constituent makefile fragment than onto the constituent itself so
1350        as to enforce the build order also for make fragments.
1351
1352        * src/cmt_use.cxx (get_paths, get_selected_version): Remove static
1353        declaration for a local variable (caused a serious bug !!)
1354        Lots of debug prints improved.
1355
13562003-09-16  Christian Arnault  <arnault@lal.in2p3.fr> 170
1357
1358        * src/cmt_symbol.cxx (action): fix setup_script calling mechanism
1359        in no_version style : should get it from ../cmt rather than ../mgr
1360
13612003-09-16    <arnault@vmlinux> 169
1362
1363        * mgr/cmt_uninstall_action.sh (full_source_name): idem
1364
1365        * mgr/cmt_install_action.sh: add a protection when current
1366        directory is outside any installation area
1367
1368       
1369        * mgr/NMake (CMTINSTALLAREA): idem
1370        (cmttag): Improve the filter for VisualC tag file generation
1371        (required to remove all location specific info)
1372        Change the target from cmt to cmttag (ie this is NO LONGER done by default!!)
1373
1374        * mgr/Makefile (CMTINSTALLAREA): Inhibit all INSTALLAREA mechanism
1375        when rebuilding cmt itself
1376
1377        * src/cmt_parser.cxx (get_current_style): First Implementation
1378        (dos_script_prefix): Use current_style rather than
1379        current_structuring_style to select path pattern
1380
1381        * src/cmt.h (class Cmt): Add get function to access m_current_style
1382
13832003-09-16  Christian Arnault  <arnault@lal.in2p3.fr> 168
1384
1385        * src/cmt_use.cxx (find_index): Add a protection when a package
1386        was not found
1387
13882003-08-14  Christian Arnault  <arnault@lal.in2p3.fr> 168
1389
1390        * src/cmt_generators.cxx (LibraryGenerator::build): new syntax for get_all_files
1391        (DocumentGenerator::build): idem
1392        (MSDEVGenerator::build_project): idem
1393        (VSNETGenerator::build_project): idem
1394        (DependencyGenerator::build): idem
1395
1396        * src/cmt_generator.h (class CmtGenerator): Add an argument for
1397        selection patterns.
1398
1399        * src/cmt_generator.cxx (get_all_files): Apply the selection
1400        patterns.  Support wilcarded suffixes (*.*)
1401
1402        * src/cmt_generators.cxx (DocumentGenerator::build): Add path
1403        compression when analyzing file names.
1404        (ConstituentsMakefileGenerator::build): suppress unused declarations
1405
1406        * src/cmt_constituent.cxx (show): display select paterns
1407        (class constituents_action_iterator): Handle the new -k= option for selection pattern
1408        (clear): clear selection patterns
1409
1410        * src/cmt_constituent.h (class Constituent): Add select regexps similar to excludes
1411
14122003-08-13  Christian Arnault  <arnault@lal.in2p3.fr> 168
1413
1414        * src/cmt_use.cxx (show_all): Standardize the output format of
1415        show uses to ensure that we always have in the last part:
1416
1417        use <package> <version> [<offset>] (<path>) (<qualifier>) (...)
1418
1419        or (with -quiet)
1420       
1421        use <package> <version> [<offset>]
1422
1423        Also fix a bug when trying to remove offset from real_path...
1424       
1425
14262003-08-11  Christian Arnault  <arnault@lal.in2p3.fr> 167
1427
1428        * mgr/Makefile (bintar): Dynamically gets the list of binaries
1429        available of this machine. Then constructs CMTDownload.html
1430        accordingly.
1431
1432        * doc/CMTDownload1.html: First part of CMTDownload.html
1433        * doc/CMTDownload2.html: Last part of  CMTDownload.html
1434
1435        * doc/installations.doc: upgrade list of porting machines
1436
1437        * src/cmt_version.h (CMTVERSION): new patch tag v1r14p20030811
1438
1439        * src/cmt_use.cxx (show_sub_uses): Display the original request
1440        instead of the registered sub use (which may be different than the
1441        request)
1442
1443        * src/cmt_use.h (class Use): Add context_use in the argument list
1444        to display the use that created this request
1445       
1446        (class Use): Add a vector of the real requests (well only those that ended up in a sub use)
1447
1448        * src/cmt_use.cxx (need_new): Dispay the incompatibility message
1449        in need_new rather than in the BestFitSelector, since
1450        corresponding uses may have been discarded then.
1451
1452        * src/cmt_system.cxx (is_version_directory): return all -1 values
1453        when version specification is just '*'
1454
14552003-08-08    <arnault@lal.in2p3.fr> 166
1456
1457        * mgr\requirements: Tuning pour CYGWIN
1458
14592003-08-06  Christian Arnault  <arnault@lal.in2p3.fr> 165
1460
1461        * src/cmt_symbol.cxx (create): Same reasons (LynxOS) => convert a
1462        static array of strings into a switch statement (not quite
1463        elegant). May move back in some future if problem is solved on
1464        LynxOS.
1465
1466        * src/cmt_syntax.cxx (CommandParser): Initialze the new help_texts
1467        by filling in a vector rather that from a static array of
1468        cmt_string (too bad...)
1469
1470        * src/cmt_syntax.h (class CommandParser): Need to redefine the
1471        management of static arrays of objects due to a bug in c++
1472        compiler on LynxOS... A Workaround is found by transfering static
1473        arrays into the singleton => m_helps and m_help_texts
1474
14752003-08-06    <arnault@lal.in2p3.fr> 164
1476
1477        * src\cmt_parser.cxx (dos_script_prefix): Adapt the generation of
1478        setup.bat scripts so as to account for the new DOS device constructs
1479        \\xxx\aaa
1480
1481        * src\setup.bat: Add /D to the cd command to support CMT on a
1482        different device
1483
14842003-08-05    <arnault@lal.in2p3.fr> 163
1485
1486        * src/cmt_parser.cxx (dos_script_prefix): remove device from path
1487        when device takes the conventional form. new form (\\xxx\) is not
1488        yet handled.
1489
1490        * src/cmt_install_area.cxx (config): Don't produce output messages in quiet mode
1491
14922003-08-05  Christian Arnault  <arnault@lal.in2p3.fr> 163
1493
1494        * src/cmt_system.cxx (pwd): Make use of the PWD environment
1495        variable when it is defined to detect current directory in place
1496        of getcwd (keep gettcwd when PWD is not defined or on WIN32)
1497
1498        * fragments/install_includes_header (install): Avoid useless
1499        re-installation of include file area
1500
1501        * src/cmt_use.cxx (add): When m_index is exchanged between two
1502        uses, the discarded flag must be upgraded accordingly   
1503        (class use_action_iterator): Suppress trailing slash characters on
1504        package offset specifications.
1505
1506        * src/cmt_parser.cxx (class StandardMacroBuilder): Define
1507        package_cmtpath instead of just cmtpath as the standard macro, in
1508        order to avoid conflict with CMTPATH env. var. on Windows.
1509        (do_broadcast): Define the pattern <package_cmtpath> instead of
1510        <cmtpath> for broadcast command templates
1511
1512        * src/cmt_use.cxx (need_new): first consider the already registered use
1513        (add): Fix a bug in the algorithm for checking registrations of uses.
1514        (class use_action_iterator): Remove trailing slashes from prefix specifications
1515
15162003-06-20  Christian Arnault  <arnault@lal.in2p3.fr> 162
1517
1518        * src/cmt_version.h: new patch id 20030620
1519
1520        * mgr/Makefile (gendoc): Add a target to convert XML doc into HTML
1521        (so far only available at CERN)
1522
1523        * doc/gendoc.py (Book.plain_char_data): improvements.
1524
1525        * src/cmt_parser.cxx (do_broadcast): Fix evaluation of <cmtpath>
1526        <package_offset> in -global mode
1527
15282003-06-19    <arnault@lal.in2p3.fr> 161
1529
1530        * src/cmt_system.cxx (add_cmt_path): Fix cmtpath checking for
1531        devices on Windows
1532
15332003-06-19  Christian Arnault  <arnault@lal.in2p3.fr> 160
1534
1535        * fragments/nmake/library_no_share: Use the @<< syntax of nmake to
1536        cope with long list of OBJS
1537        * fragments/nmake/application: idem
1538        * fragments/nmake/library: idem
1539
15402003-06-18  Christian Arnault  <arnault@lal.in2p3.fr> 159
1541
1542        * mgr/requirements: Use ln -s for the cmt_install_area_command
1543
1544        * fragments/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
1545        * fragments/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
1546        * fragments/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
1547        * fragments/nmake/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
1548        * fragments/nmake/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
1549        * fragments/nmake/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
1550
1551        * mgr/requirements: use cp -s and not cp -l to create symlinks
1552
15532003-06-16  Christian Arnault  <arnault@lal.in2p3.fr> 158
1554
1555        * src/cmt_version.h (CMTVERSION): New Tag 20030616
1556
1557        * src/Makefile.header (common_target): Make use of the mktemp
1558        shell function
1559
1560        * doc/CMTDoc.xml: Doc
1561
1562        * src/cmt.h (class Cmt): Add get_current_cmtpath and
1563        get_current_offset functions.
1564
1565        * src/cmt_parser.cxx (configure_current_cmtpath): Implement (set
1566        m_current_cmtpath and m_current_offset)
1567
1568        * src/cmt.h (class Cmt): Add configure_current_cmtpath function
1569
1570        * src/cmt_parser.cxx (class StandardMacroBuilder): Add standard
1571        macros cmtpath and package_offset
1572        (do_broadcast): Add substitutions of <package>, <version>, <cmtpath>, <package_offset>
1573        (class StandardMacroBuilder): Set m_current_cmtpath and m_current_offset
1574
1575        * src/cmt.h (class Cmt): Adding current value for cmtpath and offset
1576
1577        * mgr/requirements: Use symlink instead of cp as default transfer
1578        action into installation area
1579
15802003-06-12  Christian Arnault  <arnault@lal.in2p3.fr> 157
1581
1582        * src/cmt_pattern.cxx : fix a bug in ApplyPattern::action: macros
1583        should NOT be expanded when parsing the statement. Only the
1584        pattern name may be expanded.
1585        Second fix: when a pattern is re-defined, the Pattern object must be
1586        properly reset.
1587
15882003-06-04    <arnault@vmlinux> 156
1589
1590        * src/cmt_version.h (CMTVERSION): Tag the version to v1r14p20030605
1591
1592        * mgr/build_from_rpm.sh (tempdir): Add a shell script for testing
1593        the source kit (not complete)
1594
1595        * mgr/install_from_rpm.sh: Add a shell script for testing the
1596        generated binary RPM.
1597
1598        * mgr/Makefile (rpm): Add the rpm target to build RPMs into ../rpm
1599
1600        * mgr/CMT.spec: Add an RPM spec file for CMT. Only the binary kit
1601        has been tested successfully
1602
1603        * doc/install.html: Document the usage of the CMT RPM
1604
1605        * src/cmt_parser.cxx (dos_script_prefix): Use %TEMP% instead of
1606        %HOMEDRIVE%%HOMEPATH% for temporary setup files on Windows
1607
16082003-06-04  Christian Arnault  <arnault@lal.in2p3.fr> 155
1609
1610        * fragments/install_includes_header (install): Fixed wrong test on
1611        CMTINSTALLAREA
1612
1613        * src/cmt_syntax.cxx (parse_requirements): Transfer the scoping
1614        algorithm to parse_requirements_text so that patterns supplying
1615        private statements will work nicely.
1616        (parse_requirements_text): see above
1617
16182003-05-23  Christian Arnault  <arnault@lal.in2p3.fr> 154
1619
1620        * src/Makefile.header: removing apparently obsolete MAKEFLAGS
1621        filtering mechanisms on -j option
1622
1623        * src/setup.zsh: Add cmt show cycles zsh expansion
1624
1625        * src/cmt_parser.cxx (parser): Add cmt show cycles parsing and support
1626
1627        * src/cmt_syntax.cxx (CommandParser): Add show_cycles info
1628
1629        * src/cmt_parser.h (enum): Add action_show_cycles
1630
1631        * src/cmt.h (class Cmt): Add cmt show cycles command to display use cycles
1632
16332003-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 153
1634
1635        * src/cmt_std.h: Suppress include ios for new header style
1636
1637        * src/cmt_parser.cxx (parse_arguments): Install a -private option to
1638        the show_use_paths action. When -private is present on the command
1639        line then the private uses are reached.
1640        (parse_arguments): Make the --private or --public option a global
1641        option to control on all CMT commands whether we reach or not the
1642        private uses.
1643
1644        * src/cmt_use.cxx (class use_action_iterator): Detect the new
1645        scope filtering mode to actually reach the private uses
1646
1647        * src/cmt_parser.cxx: Set the scope filtering mode when
1648        appropriate (cmt_show_uses, cmt_show_use_paths, cmt_broadcast,
1649        cmt_set_versions, cmt_show_setup)
1650
1651        * src/cmt.h (class Cmt): Add m_scope_filtering_mode attribute
1652
1653        * src/cmt_parser.cxx (get_scope_filtering_mode): Implement the new function
1654        (set_scope_filtering_mode): Implement the new function
1655
1656        * src/cmt.h (class Cmt): Add set_scope_filtering_mode function
1657          (class Cmt): Add get_scope_filtering_mode function
1658
1659        * src/cmt_parser.h (enum): Add a scope filtering mode to block or
1660        reach private uses
1661
16622003-05-21  Christian Arnault  <arnault@lal.in2p3.fr> 153
1663
1664        * src/cmt_use.cxx (get_all_clients): Public interface to private
1665        get_all_clients
1666        (get_all_clients): Actual recursive implementation for getting all
1667        paths to a given client
1668
1669        * src/cmt_use.h (class Use): Implement two new get_all_clients
1670        functions to acquire all paths to a given client of a package (one
1671        public with simple interface and one private with temporary
1672        storage).
1673
1674        * src/cmt_use.cxx (class use_action_iterator): traverse complete
1675        use graph for action_show_use_paths
1676
1677        * src/cmt_std.h: Set new C++ header style on Linux
1678
1679        * src/setup.zsh: Add cmt show use_paths to auto-expansion definition
1680
1681        * src/cmt_syntax.cxx (CommandParser): Add help for cmt show use_paths
1682        (get_help_texts): idem
1683
1684        * src/cmt_parser.cxx (do_show_use_paths): implement do_show_use_paths function
1685        (parse_arguments): parse cmt show use_paths <package>
1686        (parser): idem
1687
1688        * src/cmt.h (class Cmt): add do_show_use_paths function
1689
1690        * src/cmt_parser.h (enum): Start implementing a new feature: cmt
1691        show use_paths <package> to display all possible paths between the
1692        current package and the specified package.
1693
16942003-05-19    <arnault@lal.in2p3.fr> 152
1695
1696        * mgr\cmt_linux_version.sh: add a script for querying linux
1697        version for various distributions (contribution from Clark McGrew
1698        <clark.mcgrew@sunysb.edu>)
1699
1700        * src\cmt_symbol.cxx (show_macro): re-apply suppress_OS_delimiter
1701        when generating the tag makefile, but only on WIN32 context.
1702
1703        * src\cmt_pattern.cxx (class apply_pattern_action_iterator): Add
1704        action iterator to expand macros before parsing line.
1705
1706        * src\cmt_fragment.cxx (class fragment_action_iterator): Add
1707        action iterator to expand macros before parsing line.
1708
1709        * src\cmt_fragment.cxx (action): Hide make_fragments in private
1710        sections like macros
1711
1712        * mgr\requirements: Introduce the generic Unix tag for all Unix platforms
1713       
1714        * src\cmt_parser.cxx (dos_script_prefix): Factor out the writing
1715        of DOS setup and cleanup scripts.
1716
1717        * mgr\INSTALL.bat: No longer need nmake to generate the setup.bat
1718        script of CMT, thanks to the %~d0%~p0 mechanism (copy from src is enough).
1719
1720        * src\setup.bat: Install a generic mechanism for finding the
1721        current drive letter (unfortunately this mechanism does not work
1722        in any possible Unix shell)
1723
1724        * src\cmt_parser.cxx (install_setup_scripts): Apply the drive
1725        letter mechanism to setup scripts
1726
17272003-05-17    <arnault@lal.in2p3.fr> 151
1728
1729        * mgr\requirements: Typo in the cmtpath_pattern : use_includes
1730
17312003-05-14    <arnault@lal.in2p3.fr> 150
1732
1733        * src\cmt_parser.cxx (restore_all_tags): Bug in managing
1734        -tag=<taglist> argument due to the separator in m_extra_tags :
1735        force a separator before and after all tags in the list
1736        (parse_arguments): idem
1737        (print): idem
1738
17392003-05-13    <arnault@lal.in2p3.fr> 149
1740
1741        * fragments/tex: install correction from Marie Anne
1742
17432003-05-12    <arnault@lal.in2p3.fr> 148
1744
1745        * mgr/cmt_linux_version.sh: Adding a script to retrieve Linux version and distribution
1746
1747        * mgr/requirements: Add declaration of install_includes fragments
1748
1749        * fragments/install_includes_header: Make fragment for installing
1750        include directory but only for those following the standard
1751        pattern of ../<package>
1752
1753        * fragments/install_includes:
1754        * fragments/nmake/install_includes_header:
1755
1756        * mgr/cmt_installdir_action.bat: Special treatment of directory
1757        installation
1758        * mgr/cmt_uninstalldir_action.bat:
1759
1760        * fragments/constituents_trailer (remove_library_links): Add a
1761        remove_library_links target
1762        * fragments/nmake/constituents_trailer: idem
1763
1764        * fragments/constituent (uninstall): Suppress dependencies for
1765        uninstall target
1766        * fragments/nmake/constituent (uninstall): idem
1767
17682003-05-11    <arnault@lal.in2p3.fr> 147
1769
1770        * mgr\requirements: Add search libpath to installarea for WIN32
1771
1772        * fragments\nmake\library (install): bug (typo) in target names
1773
1774        * mgr\cmt_install_action.bat: use rem comments instead of #
1775        * mgr\cmt_uninstall_action.bat: idem
1776
1777        * mgr\NMake (cmt): Filter out the include and lib definitions in
1778        VisualC.nmake for cmt itself.
1779
1780        * src\cmt_parser.cxx (scan_path): Suppress unused variable
1781
1782        * src\cmt_std.h (OLD_HEADERS): Adopt new header style for WIN32
1783
1784        * mgr\requirements: Add compiler option for exception handling in VisualC
1785
17862003-05-05  Christian Arnault  <arnault@lal.in2p3.fr> 146
1787
1788        * src/cmt_use.cxx (add): Set the warning for package not found a real warning.
1789
1790        * src/cmt_parser.cxx (do_setup): Change the info message to be
1791        displayed only when appropriate
1792
17932003-05-05    <arnault@lal.in2p3.fr> 145
1794
1795        * src/cmt_version.h: v1r14
1796
1797        * doc/CMTDoc.xml: Improve the doc
1798
1799        * doc/gendoc.py (Book.syntax_start): Add an attribute name in
1800        syntax for avoiding name conflicts
1801
1802        * fragments/nmake/jar (install):
1803        * fragments/nmake/java_header (install):
1804        * fragments/nmake/library_no_share (install):
1805        * fragments/nmake/library (install):
1806        * fragments/nmake/application (install):
1807
1808        * fragments/jar (install):
1809        * fragments/java_header (install):
1810        * fragments/library_no_share (install):
1811        * fragments/library (install):
1812        * fragments/application (install): apply the centralized scripts
1813
1814        * mgr/cmt_uninstall_action.bat:
1815        * mgr/cmt_install_action.bat:
1816        * mgr/cmt_uninstall_action.sh:
1817        * mgr/cmt_install_action.sh: Scripts for doing
1818        (un)installation into the current installation area
1819
18202003-05-02  Christian Arnault  <arnault@lal.in2p3.fr> 144
1821
1822        * fragments/application (uninstall, install):
1823        * fragments/library (uninstall, install):
1824        * fragments/library_no_share (uninstall, install):
1825        * fragments/java_header (uninstall, install):
1826        * fragments/jar (uninstall, install):
1827        * fragments/constituent (install, uninstall): Add (un)install actions
1828        idem for nmake
1829       
1830
18312003-05-02    <arnault@lal.in2p3.fr> 143
1832
1833        * doc/gendoc.py : Create a new mechanism for generating HTML
1834        documentation from an XML representation.
1835
18362003-04-30  Christian Arnault  <arnault@lal.in2p3.fr> 142
1837
1838        * src/cmt_parser.cxx (do_show_strategies): Display the Setup strategy
1839
1840        * src/cmt_syntax.cxx (class KwdSetupStrategy): Decode the
1841        [no_]cleanup option for the setup_strategy in requirements file
1842
1843        * src/cmt_parser.cxx (parse_arguments): Decode the -no_cleanup option
1844        (do_setup): Apply the cleanup only when the setup strategy permits it
1845        (do_config): idem
1846
1847        * src/cmt_parser.h (enum): Add NoCleanup possibility to the SetupStrategy
1848
18492003-04-16  Christian Arnault  <carnault@lxplus051.cern.ch> 141
1850
1851        * src/cmt_parser.cxx (run): Bug in PackageCollector::run current
1852        directory missed the package name. (for cmt show clients)
1853
18542003-04-12    <arnault@lal.in2p3.fr> 140
1855
1856        * src\cmt_generators.cxx: Add excludes to all calls to get_all_files
1857
1858        * src\cmt_generator.h (class CmtGenerator): Add exclude expressions
1859
1860        * src\cmt_constituent.cxx (class constituents_action_iterator):
1861        Implement the -x=<pattern> option to the constituent to exclude
1862        patterns. Create regexps for each pattern.
1863        (show): Show excludes
1864
1865        * src\cmt_constituent.h (class Constituent): Add a vector of
1866        regexp for exclude specs.
1867
1868        * src\cmt_regexp.cxx (set): Implement the set function.
1869
1870        * src\cmt_regexp.h (class cmt_regexp): Introduce a default
1871        constructor and a set function
1872
1873        * src\cmt_generators.cxx:
1874        * src\cmt_generator.cxx: Strong restruring of generator architecture:
1875          + create a CmtGenerator basic class for all generators
1876          + create derived classes for all categories of generators
1877                 ApplicationGenerator
1878                 LibraryGenerator
1879                 DocumentGenerator
1880                 ReadmeGenerator
1881                 PrototypeGenerator
1882                 DefaultMakefileGenerator
1883                 MSDEVGenerator
1884                 VSNETGenerator
1885                 MakeSetupGenerator
1886                 ConstituentsMakefileGenerator
1887                 DependencyGenerator
1888          + transfer new stuff in cmt_generators.h/.cxx
1889          + transfer all utility functions (get_all_files etc...) into the base class
1890          + optimize handling of Variable and FragmentHandle objects per Generator class
1891       
1892
1893        * src\cmt_install_area.cxx (config): suppress echo in quiet mode
1894
1895        * src\cmt_parser.cxx (install_test_setup_scripts): Protect tempfile against spaces in paths
1896        (install_test_cleanup_scripts): idem
1897        (install_setup_scripts): idem
1898        (install_cleanup_scripts): idem
1899
19002003-04-11  Christian Arnault  <carnault@lxplus051.cern.ch> 139
1901
1902        * src/cmt_parser.cxx (do_run_sequence): Sequences are removed from
1903        cmt.cxx and implemented in a dedicated source file.
1904
1905        * src/cmt_sequence.h (class SequenceRunner): Adding cmt_sequence.h
1906        (defining sequences)
1907
1908        * src/cmt_sequence.cxx (filter): Adding cmt_sequence.cxx (extracted
1909        from cmt.cxx)
1910
1911        * src/cmt_generator.cxx (get_all_files): Return a count of non
1912        empty file names.
1913        (build_library_makefile): Ensure that get_all_files is done only
1914        once.
1915        (build_document_makefile): Ensure that get_all_files is done only
1916        once (not completed yet)
1917        (class DocumentMakefileGenerator): Start creating an object model
1918        for makefile generators. Create derived classes of
1919        MakefileGenerator for Application, Library, document
1920
1921        * src/cmt_constituent.h (class Constituent): Add excludes vector
1922        of exclusions
1923
1924        * src/cmt_constituent.cxx (class constituents_action_iterator):
1925        Start implementing exclusion mechanisms on constituent sources.
1926        We add a -x=<pattern> cumulative option to the constituent syntax
1927       
19282003-04-07    <arnault@lal.in2p3.fr> 138
1929
1930        * src\cmt_generator.cxx: Add DIRNAME Variable
1931        Add new fragments for vcproj
1932
19332003-04-05    <arnault@lal.in2p3.fr> 138
1934
1935        * mgr\requirements: define VC7 VC7debug tags for vsnet
1936
1937        * src\cmt_generator.cxx (class MakefileGenerator): Add vsnetdir variable
1938        Add declarations for vsnet fragments
1939        (reset): Install vsnetdir as ..\VisualC
1940        (pseudoGUID): Implement an algorithm for creating GUIDs
1941        (build_vsnet_workspace):
1942        (build_vsnet):
1943
1944        * src\cmt_generator.h (class Generator): Declare
1945        build_vsnet_workspace and build_vsnet methods
1946
1947        * src\cmt_constituent.cxx (build_all_vsnet_files): Implement for vsnet
1948        (build_vsnet_file): Implement for vsnet
1949
1950        * src\cmt_constituent.h (class Constituent): Add build_all_vsnet_files
1951        (class Constituent): Add build_vsnet_file
1952
1953        * src\cmt_parser.cxx (class StandardMacroBuilder): Add macro
1954        <constituent>_GUID for vsnet.
1955        (parser): Implement cmt build vsnet actions
1956
1957        * src\cmt_syntax.cxx (CommandParser): Add help about cmt build vsnet
1958
1959        * src\cmt_parser.h (enum): Add action_build_vsnet
1960
1961        * src\cmt.h (class Cmt): Add Visual Sudio.Net support (From Toby Burnett)
1962
19632003-04-03  Christian Arnault  <carnault@lxplus051.cern.ch> 137
1964
1965        * src/cmt_parser.cxx (do_setup): Do a config action to the
1966        installation area in order to perform a cleanup operation during
1967        the source setup
1968
1969        * src/cmt_install_area.cxx (config): Display a message when doing
1970        cleanup of installation areas.
1971
1972        * mgr/requirements: Rename cmt_(un)install_command to cmt_(un)install_area_command
1973        Prepare CMTr14 tag from CMTr13
1974
1975        * fragments/java_header (install_java_bin_dir): idem
1976        * fragments/library_no_share (install_lib_dir): idem
1977        * fragments/jar (install_java_lib_dir): idem
1978        * fragments/library (install_lib_dir): idem
1979        * fragments/application (install_bin_dir): idem
1980
19812003-04-02  Christian Arnault  <carnault@lxplus051.cern.ch> 136
1982
1983        * src/cmt_symbol.cxx (build): Bug : the macro_prepend was NOT really prepending.
1984
19852003-03-28  Christian Arnault  <carnault@lxplus051.cern.ch> 136
1986
1987        * src/cmt_parser.cxx (class StandardMacroBuilder): Add CMTVERSION standard macro
1988
19892003-03-28    <arnault@lal.in2p3.fr> 135
1990
1991        * src\cmt_parser.cxx (configure_version_tag): Create three new predefined tags:
1992           CMTv<n>
1993           CMTr<n>
1994           CMTp<n>
1995        to describe the current version, release and patch of CMT.
1996
1997        * src\cmt_parser.h (enum): Adding PriorityVersion for marking the
1998        priority of the new automatic version tag
1999
2000        * src\cmt_parser.cxx (configure_version_tag): Implement
2001        configure_version_tag method to create a tag for the version of
2002        CMT
2003
2004        * src\cmt.h (class Cmt): Adding configure_version_tag method to
2005        create a tag for the version of CMT
2006
2007        * src\cmt_symbol.cxx (all_set): Ensure that all path separators
2008        are back-slash on windows.
2009
2010        * fragments\nmake\jar:  Adapt for the new convention (subdirectory for the CONSTITUENT)
2011        (install_java_lib_dir):  Add installation area mechanisms
2012
2013        * fragments\nmake\java: Adapt for the new convention (subdirectory for the CONSTITUENT)
2014
2015        * fragments\nmake\java_header (install_java_bin_dir): Add installation area mechanisms
2016
20172003-03-21  Christian Arnault  <carnault@lxplus051.cern.ch> 134
2018
2019        * src/cmt_parser.cxx (parser): cmt run must be recursive for used
2020        packages (in order to get all environment variables set)
2021
20222003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 133
2023
2024        * src/cmt_symbol.cxx (show): Implement common SymbolValueList::show method.
2025
2026        * src/cmt_symbol.h (class SymbolValueList): Factor out printing SymbolValues
2027
2028        * src/cmt_symbol.cxx (create): Give use context in warning message
2029
2030        * src/cmt_symbol.h (class Symbol): Add Use* argument to print
2031        context in warning messages
2032
2033        * src/cmt_parser.cxx (vector_to_string): Ignore empty entries to
2034        avoid duplicate separators
2035
20362003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 132
2037
2038        * src/cmt_error.cxx (print): Consistently set the prefix "#CMT> "
2039        to all error messages and print outs
2040        * src/cmt_triggers.cxx (filter): idem
2041        * src/cmt_use.cxx (add): idem
2042        * src/cmt_generator.cxx (build_default_makefile): idem
2043        * src/cmt_symbol.cxx (create): idem
2044        * src/cmt_parser.cxx (do_show_macro): idem
2045
2046        * src/cmt_symbol.cxx (create): Handle the unconsistent multiple
2047        declarations of sets as macros (and vice versa)
2048
2049        * src/cmt_error.cxx (class Error): Add warning error text
2050        * src/cmt_error.h (class CmtError): Add warning error code
2051
2052        * src/cmt_parser.cxx (reach_current_package): Suppress error print
2053        when requirements file is not found
2054        (do_show_macro): Improve the error message in the
2055        "cmt show macro/set" command
2056
20572003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 131
2058
2059        * src/cmt_parser.cxx (reach_current_package):
2060        * src/cmt_install_area.h (class CmtInstallAreaMgr): Factor out the
2061        construction of the current installation area
2062
2063        * src/cmt_install_area.cxx (setup): Filters out "default path" for
2064        constructing the current installation area
2065        (config): idem
2066
2067        * src/cmt_cmtpath_pattern.cxx (apply): Suppress "default path" (ie
2068        CMTPATH of CMT) from application of cmtpath_patterns
2069
2070        * src/cmt_parser.cxx (get_cmt_path_sources): Add accessor to cmtpath_sources
2071
2072        * src/cmt.h (class Cmt): Add accessor to cmtpath_sources
2073
20742003-03-18  Christian Arnault  <carnault@lxplus051.cern.ch> 130
2075
2076        * src/cmt_cmtpath_pattern.cxx (apply): Optimize the substitution
2077        of "<path>" in cmtpath_patterns by avoiding a loop over path items
2078        when the pattern does not contain "<path>" at all
2079
20802003-03-13  Christian Arnault  <carnault@lxplus051.cern.ch> 130
2081
2082        * mgr/requirements: Add -classpath $(src) to java compilation
2083
2084        * src/cmt_generator.cxx (analyze_file): Default copy action for
2085        files with no language is applied only to java contexts
2086
20872003-03-12  Christian Arnault  <carnault@lxplus051.cern.ch> 130
2088
2089        * fragments/java_copy: Use this fragment for default action on
2090        sources with no language
2091
2092        * src/cmt_generator.cxx (module_file_action): Install default
2093        (copy) action for source files with no language.
2094
2095        * fragments/java_header: Building jar files with * rather than *.class
2096
2097        * fragments/jar: Building jar files with * rather than *.class
2098
2099        * fragments/java_header: Syntax fix for generating manifest file
2100
21012003-03-11  Christian Arnault  <carnault@lxplus051.cern.ch> 129
2102
2103        * src/setup.zsh: Add show cmtpath_patterns option
2104
2105        * src/cmt_generator.cxx (analyze_file): Add constituent sub
2106        directory to output for java files
2107
2108        * fragments/jar: Add constituent sub directory to ../classes to
2109        store *.class and jar files
2110
2111        * fragments/java_header (install_java_bin_dir): Apply installation
2112        area mechanisms for java application
2113
2114        * mgr/requirements: Need both share/bin and share/lib for installarea
2115
21162003-03-10  Christian Arnault  <carnault@lxplus051.cern.ch> 129
2117
2118        * src/cmt_cmtpath_pattern.cxx (apply): CMTPATH patterns should be
2119        applied in revers order
2120
2121        * mgr/requirements: bug fix (missing backslash)
2122
2123        * src/cmt_install_area.cxx (config): Bug fix
2124
21252003-03-09    <ARNAULT@lal.in2p3.fr> 128
2126
2127        * src\cmt_install_area.cxx (setup): Make use of the cmt_installarea_prefix macro
2128        (config): idem
2129
21302003-03-08    <ARNAULT@lal.in2p3.fr> 128
2131
2132        * mgr\requirements: Define the cmt_installarea_prefix macro to
2133        parameterize the common prefix to be added to all CMTPATH entries
2134        for installation areas
2135
21362003-03-06    <ARNAULT@lal.in2p3.fr> 127
2137
2138        * src\cmt_install_area.cxx (config): Introduce the new macro
2139        cmt_installarea_paths used to declare all PATHS inside the
2140        installareas that will need to be checked for consistency when
2141        doing cmt config
2142
2143        * src\cmt_install_area.h (class CmtInstallAreaMgr): Remove
2144        set_path, add_path_pattern, apply_path_patterns function since
2145        they are all managed through cmtpath_patterns
2146
2147        * src\cmt_parser.cxx (do_show_cmtpath_patterns): Do set_standard_macros
2148
2149        * src\cmt_install_area.cxx (setup): Launch the CmtPathPattern::apply_all ()
2150
2151        * src\cmt_parser.cxx (parser): Add parsing of cmt show cmtpath_patterns
2152
2153        * src\cmt_syntax.cxx: Add parsing of cmt show cmtpath_patterns
2154
2155        * src\cmt_parser.h (enum): Add action_show_cmtpath_patterns
2156
2157        * src\cmt_database.cxx (cmtpath_patterns): Add CmtPathPatternVector object
2158
2159        * src\cmt_database.h (class Database): Add CmtPathPatternVector
2160
2161        * src\cmt_cmtpath_pattern.cxx: Install partial reproduction of cmt_pattern.cxx
2162
2163        * src\cmt_cmtpath_pattern.h: Create cmt_cmtpath_pattern.h
2164        (class CmtPathPattern): Install partial reproduction of cmt_pattern.h
2165
2166        * mgr\requirements: Add the source file cmt_cmtpath_pattern.cxx
2167
2168        * src\cmt_syntax.cxx (class KwdCmtPathPattern): add parser object
2169        for the new CommandCmtPathPattern.
2170
2171        * src\cmt_parser.h (enum): Add CommandCmtPathPattern to declare
2172        CMTPATH patterns to be applied onto all CMTPATH items.
2173
21742003-03-06    <ARNAULT@lal.in2p3.fr> 126
2175
2176        * src\cmt_symbol.cxx (all_set): Add debug informattion
2177
2178        * src\cmt_parser.cxx (do_run): Do set_standard_macros before
2179        running
2180
21812003-03-06  Christian Arnault  <carnault@lxplus051.cern.ch> 125
2182
2183        * src/cmt_system.h (class CmtSystem): Adding putenv to set environment variables
2184        * src/cmt_system.cxx (putenv): idem
2185
2186        * src/cmt_symbol.cxx (class SetBuilder): The build and clean
2187        function should return string object rather that referencing the
2188        string object attribute (protection against recursive calls)
2189        (class PathBuilder): idem
2190        (class MacroBuilder): idem
2191        (class ScriptBuilder): idem
2192        (resolve_value): Add comments and improve variable naming
2193        (resolve_value): idem
2194        (resolve_value_for_macros): idem
2195        (suppress_OS_delimiters): idem
2196
2197        * src/Makefile.header (common_target): Use /tmp to
2198        create temporary (and disposable) make fragments.  Rearrange
2199
2200        * mgr/Makefile (cpp): Provide support to build on LinuxDebug
2201
2202        * fragments/constituents_header (cmt_lock_setup): Use /tmp to
2203        create temporary (and disposable) make fragments.  Rearrange
2204        statements in the building of $(tag).make so as to ensure that
2205        echo statements are only done when things are ok.
2206
2207        * src/cmt_parser.cxx (install_cleanup_scripts): Define CMTROOT
2208        only if it is NOT defined yet. Goal is to keep user defined
2209        version of CMT.
2210        (install_setup_scripts): idem
2211        (install_test_cleanup_scripts): idem
2212        (install_test_setup_scripts): idem
2213
22142003-02-27  Christian Arnault  <carnault@lxplus051.cern.ch> 125
2215
2216        * src/cmt_symbol.h (class ValueBuilder): due to recursivity,
2217        Builder function cannot share the temporary string value
2218
22192003-02-26  Christian Arnault  <carnault@lxplus051.cern.ch> 125
2220
2221        * src/cmt_parser.cxx (do_run): Add Symbol::all_set
2222        (do_broadcast): idem (before the loop over packages)
2223
2224        * src/cmt_symbol.cxx (all_set): Install the mechanism to set
2225        environment variables (using putenv) into CMT. This function is
2226        called before running the CmtSystem::execute function.
2227       
2228        * src/cmt_symbol.h (class Symbol): Remove the tabs argument of the
2229        print and print_clean methods (obsolete)
2230
2231        * src/cmt_symbol.cxx (resolve_value): rename the argument for the
2232        symbol name (it applies for any symbol, not just for macros)
2233        (resolve_value): Improve comments
2234        (resolve_value_for_macros): Improve comments
2235        (resolve_macro_value): factor out at least one of the resolve macro algorithms
2236
22372003-02-24  Christian Arnault  <carnault@lxplus051.cern.ch> 124
2238
2239        * src/cmt_generator.cxx (build_dependencies): Surrounding
2240        dependencies by quotes does not please gmake. We have to check
2241        what happens on Darwin (ie what about path names with spaces?)
2242       
22432003-02-14    <ARNAULT@lal.in2p3.fr> 123
2244
2245        * mgr\requirements: Use XCOPY instead of copy for the install
2246        commands to support the directory copy
2247
2248        * fragments\installer: Suppress the need to specify install_dir
2249        with trailing slash
2250
2251        * fragments\nmake\installer: Add installer for Windows
2252
2253        * src\cmt_generator.cxx (build_dependencies): Add double quotes to
2254        support file names with non standard characters (eg spaces) (not
2255        only on Windows).       
2256        (filter_path): Add the filter operation to work on one sigle
2257        file. The filter_paths function becomes obsolete and is removed.
2258        (analyze_document_file): Use filter_path instead of filter_paths
2259        (proto_file_action): idem
2260        (module_file_action): idem
2261        (build_library_makefile): idem
2262        (build_document_makefile): idem
2263        (build_dependencies): idem
2264        (build_document_makefile): Support sources being directories
2265        (module_file_action): idem
2266
2267        * mgr\cmt_install_action.bat: idem
2268        * mgr\cmt_uninstall_action.bat: idem
2269        * fragments\nmake\library_no_share (install_lib_dir): idem
2270        * fragments\nmake\library (install_lib_dir): idem
2271        * fragments\nmake\application (install_bin_dir): idem
2272
22732003-02-11  Christian Arnault  <carnault@lxplus051.cern.ch> 122
2274
2275        * src/cmt_cvs.cxx (class CvsImplementation): Adding explicit error
2276        message when base directory cannot be created during the checkout.
2277
22782003-02-06  Christian Arnault  <carnault@lxplus051.cern.ch> 121
2279
2280        * src/Makefile.header (clean): Remove the pseudo config target for
2281        the clean target
2282       
22832003-02-04  Christian Arnault  <carnault@lxplus051.cern.ch> 120
2284
2285        * src/cmt_use.cxx (add): Add protection against recursive use
2286        statement to current_use
2287
22882003-02-04    <ARNAULT@lal.in2p3.fr> 119
2289
2290        * src\cmt_use.cxx (need_new): Add protection against recursive use
2291        statement to current_use
2292
22932003-01-31  Christian Arnault  <carnault@lxplus051.cern.ch> 118
2294
2295        * mgr/requirements : library_prefix should be empty for WIN32
2296
2297        * src/cmt_parser.cxx (install_setup_scripts): Protect the setup
2298        script generation against cases where : structuring style is set
2299        to without_version_directory and verion tag cannot be determined
2300        (eg. if the version file does not exist). Then, the -version=xxx
2301        option is suppressed from the setup script generation.
2302        (install_test_cleanup_scripts): idem
2303
2304        * src/Makefile.header (common_target): Suppress a debug settings
2305
23062003-01-28    <ARNAULT@lal.in2p3.fr> 117
2307
2308        * src\cmt_install_area.cxx (instance): Suppress the production of
2309        LD_LIBRARY_PATH installation specs for WIN32
2310
2311        * fragments\nmake\library_no_share (install_lib_dir):
2312        * fragments\nmake\library (install_lib_dir):   
2313        * fragments\nmake\application (install_bin_dir): Add install area mechanisms for WIN32
2314
23152003-01-24  Christian Arnault  <carnault@lxplus032.cern.ch> 116
2316
2317        * src/cmt_install_area.cxx (instance): The constuction of the
2318        instance also declares the path patterns.
2319
2320        (setup): Make use of the path_patterns to generate CMT statements
2321
2322        (get_install_area): The current install area is preserved in the
2323        InstallAreaMgr instance (singleton).
2324
2325        (set_path): (only used internally) build a path expression from a pattern
2326
2327        (setup): Provide additional -L... options towards the install area
2328        for use_linkopts ad shlibbuilder
2329       
2330        (config): Perform the cleanup operation onto the current installation area:
2331          check the all ref-files still refer to existing files.
2332          if not erase the corresponding installed file.
2333
2334        * src/cmt_install_area.h (class CmtInstallPathPattern): New class
2335        for storing generic patterns for (PATH/directories) duets
2336        generation and management inside install area mechanisms.  The
2337        point is to describe special conventions for things to be
2338        installed within the installation area.
2339
2340        We describe that in terms of a set of :
2341       
2342           o path-like variable names
2343           o subdirectory patterns bellow $CMTINSTALLAREA
2344
2345        All those patterns will be used to configure the installation area
2346        and to expand the specified PATH-like variables.
2347
2348           Ex:
2349              PATH            is associated with ${CMTCONFIG}/bin
2350              LD_LIBRARY_PATH is associated with ${CMTCONFIG}/lib
2351              CLASSPATH       is associated with share/bin
2352
2353           we could think of having those patterns defined in the
2354           requirements file.
2355
2356        * src/cmt_parser.cxx (do_remove_library_links): Handle symlinks
2357        induced by the <package>_libraries macros through INSTALLAREA
2358        mechanisms
2359        (do_build_library_links): (idem)
2360        (set_standard_macros): Setup operations for InstallArea have been
2361        grouped using InstallPathPatterns
2362        (do_config): Add cleanup of install area
2363
23642003-01-23  Christian Arnault  <carnault@lxplus032.cern.ch> 115
2365
2366        * src/cmt_syntax.cxx (class KwdBuildStrategy): Support extension
2367        of build_strategy with install_area mechanisms.
2368
2369        * src/cmt_system.cxx (mkdir): Suppress the error message when one
2370        cannot create a directory
2371
2372        * fragments/application (install_bin_dir):
2373        * fragments/library_no_share (install_lib_dir):
2374        * fragments/library (install_lib_dir): Use CMTINSTALLAREA instead of INSTALLAREA
2375
2376        * src/cmt_parser.cxx (do_build_library_links): Use install area
2377        mechanisms when the build_strategy is active rather than
2378        symlinking into the binary directory of the package.
2379
2380        (set_standard_macros): Add the generation of CMTINSTALLAREA
2381        environment variable, the prepending of PATH, LD_LIBRARY_PATH,
2382        CLASSPATH when install_area is active
2383
2384        * src/cmt_install_area.cxx:
2385        * src/cmt_install_area.h (class CmtInstallAreaMgr): New class for
2386        managing install area mechanisms.
2387
2388        * src/cmt_parser.h (enum): Add InstallArea in BuildStrategy
2389
23902003-01-22  Christian Arnault  <carnault@lxplus032.cern.ch> 114
2391
2392        * src/cmt_use.cxx (find_index): Bad use of a static local variable
2393        implying wrong management of -import= options
2394        (get_index): Adding accessor function to m_index private attribute
2395
2396        * src/Makefile.header (.DEFAULT): Remove temporary debugging action
2397
23982003-01-21  Christian Arnault  <carnault@lxplus032.cern.ch> 113
2399
2400        * src/cmt_symbol.cxx (all_print): Restore two-steps process for
2401        generating setenv calls (first normal env. variables then path-like)
2402        (all_print_clean):
2403
24042002-12-20  Christian Arnault  <carnault@lxplus032.cern.ch> 112
2405
2406        * src/cmt_parser.cxx (do_show_strategies): put a space character
2407
2408        * mgr/Makefile (cpp): Add the -O2 compiler option on default platforms
2409
2410        * mgr/requirements: Privately try the construction of the new CMTCONFIG
2411
2412        * src/cmt_parser.cxx (parse_arguments): Add cmt --version equivalence to cmt version
2413
24142002-12-19  Christian Arnault  <carnault@lxplus032.cern.ch> 111
2415
2416        * mgr/requirements: Change the name of cmt_cc_version.sh to
2417        cmt_dcc_version.sh for case insentivity of Darwin file system
2418
2419        * fragments/application (install_lib_dir):
2420        * fragments/library (install_lib_dir):
2421        * fragments/library_no_share (install_lib_dir):
2422
24232002-12-18  Christian Arnault  <carnault@lxplus032.cern.ch> 110
2424
2425        * src/cmt_symbol.cxx (resolve_value_for_macros): We have to
2426        suppress the conversion from %xxx% to $(xxx) on non-windows
2427        platform, since there were some occurrences of %xxx% patterns,
2428        which have a meaning in unix world!!
2429
2430        * src/Makefile.header (.DEFAULT): Only run once sub-makefile
2431
2432        * src/cmt_symbol.cxx (all_print_clean): Keep order of generation
2433        of sets and paths (instead of sets then paths)
2434
2435        * mgr/cmt_cc_version.sh: Helper scripts for compiler query commands
2436        * mgr/cmt_cxx_version.sh:
2437        * mgr/cmt_CC_version.sh:
2438        * mgr/cmt_gcc_version.sh:
2439
2440        * mgr/cmt_filter_version.sh:
2441
2442        * fragments/constituents_header (first): Make use of cmt show setup
2443       
2444        * src/cmt_parser.cxx (do_show_setup): Display sections rather than from the Makefile
2445       
2446        * src/cmt_use.cxx (class use_action_iterator): action_show_setup
2447        traverses the private subtrees (like show_uses)
2448
2449        * src/cmt.h (class Cmt):
2450        * src/cmt_parser.cxx (do_show_setup):
2451        * src/cmt_parser.h (enum): Add action_show_setup for grouping show uses,tags,path
2452
2453        * mgr/requirements: Manage a common (sh/csh) style for output
2454        redirection for system query commands
2455
2456        * fragments/library_no_share (install_lib_dir):
2457        * fragments/library (install_lib_dir):
2458        * fragments/application (install_bin_dir): Use cmt_install_command
2459        instead of install_command for install area mechanisms to avoit
2460        conflicts with the installer document generator
2461
24622002-12-18    <ARNAULT@lal.in2p3.fr> 109
2463
2464        * src\cmt_parser.cxx (do_show_strategies): Add display of setup strategy
2465        (print_context): Apply the build strategy
2466
2467        * src\cmt.h (class Cmt): Add get/set current_setup_strategy methods
2468        (class Cmt): Add m_current_setup_strategy attribute
2469
2470        * src\cmt_parser.h (enum): Add SetuStrategy enumeration
2471
2472        * src\cmt_syntax.cxx (class KwdSetupStrategy): Add SetupStrategy class
2473
2474        * src\cmt_parser.h (enum): Add setup_strategy keyword to control
2475        the production of <PACKAGE>CONFIG and <PACKAGE>ROOT env. variables
2476
2477        * src\cmt_parser.cxx (class StandardMacroBuilder): Add few debug printouts
2478
2479        * src\cmt_use.cxx (find_index): The returned index must be the
2480        m_index attribute of the Use object rather than the index in the
2481        use list of the package!!
2482
24832002-12-16  Christian Arnault  <carnault@lxplus032.cern.ch> 108
2484
2485        * src/Makefile.header (binclean): Add a quick binclean target
2486        (all): prepend a systematic config target
2487
2488        * fragments/constituents_header (all): Suppress dummy messages in gmake all and config
2489
24902002-12-16    <ARNAULT@lal.in2p3.fr> 107
2491
2492        * src\cmt.h (class Cmt): do_help remembers of the current action
2493        being parsed to have cmt help action
2494
2495        * src\cmt_syntax.h (class CommandParser): Command parsing
2496        mechanisms. So far only the help is handled. General map-based
2497        parsing mechanism is foreseen
2498
2499        * src\cmt_parser.h (enum ActionType): Add global actions for
2500        build, check, show only for error and help management
2501
2502        * src\cmt_syntax.cxx (show): Command Help management introduced (will be improved)
2503
2504        * src\cmt_parser.cxx (parse_arguments): Improve command help with SyntaxParser 
2505
2506        * mgr\requirements: Adding specs for query commands on WIN32
2507
25082002-12-12  Christian Arnault  <carnault@lxplus032.cern.ch> 106
2509
2510        * mgr/Makefile: Remove the mail sending after CMT rebuild... (!!!)
2511
2512        * src/cmt_symbol.cxx (resolve_macro_value): Detects patterns like:
2513        `$(macro-name)` within symbol definitions. The specified macro is expected
2514        to contain a shell command that will then be executed when expanding
2515        the macro.
2516
2517        * mgr/requirements: Add some system information queries:
2518        hardware
2519        system_version
2520        compiler_version
2521
2522        * mgr/cmt_filter_version.sh: Add a filtering script for system version
2523        informations.
2524
25252002-12-12    <ARNAULT@lal.in2p3.fr> 105
2526
2527        * mgr\requirements:  make use of SyntaxParser
2528        * src\cmt_triggers.cxx: idem
2529        * src\cmt_use.cxx: idem
2530        * src\cmt_parser.cxx: idem
2531        * src\cmt_pattern.cxx: idem
2532
2533        * src\cmt_syntax.cxx:
2534        * src\cmt_syntax.h (class Kwd): Introduce the new syntax parsing
2535        mechanism. It is based on a cmt_map of keyword objects. All requirements parsing
2536        operations are now implemented in the SyntaxParser singleton.
2537
2538        * src\cmt_parser.cxx (do_build_library_links): Introduce the
2539        cmt_symlink_cmd macro to override the internal management of
2540        symlink creation in case this is unavailable (eg on Windows)
2541
25422002-12-11  Christian Arnault  <arnault@lal.in2p3.fr> 104
2543
2544        * src/cmt_parser.cxx (do_set_versions): Make use of cmt broadcast
2545        to install version files in all packages. Inherit broadcast syntax.
2546       
2547        (do_broadcast): Add possibility to use template like in patterns
2548        Start with <version>.
2549
2550        * mgr/Makefile (cpp): Add profiling option
2551
2552        * fragments/check_java (check): Add run options
2553
2554        * src/cmt_use.cxx (find): Use Package grouping of uses
2555        (find_index): Use index registration information
2556        (move): Use index registration information
2557        (reorder): idem
2558        (need_new): Revisit the algo to avoid useless multiple reading of requirements files
2559        (add): Use index registration information
2560        (operate): Improve for without version directory style
2561        (Package): Introduce Package grouping of Use objects
2562
2563        * src/cmt_parser.cxx (do_set_versions): Use Package::is_cmt feature.
2564
2565        * src/cmt_string.cxx (replace): Optimize by reducing the calls to strlen.
2566
2567        * src/cmt_generator.cxx (build_dependencies): Use Package::is_cmt feature.
2568
2569        * src/cmt_include.cxx (print_all): Use Package::is_cmt feature.
2570
2571        * src/cmt_script.cxx (all_print_clean): Use Package::is_cmt feature.
2572
2573        * src/cmt_database.cxx (pattern_list_map): Discard dump features
2574
2575        * src/cmt_database.h (class Database): Restore tag management.
2576        Introduce PatternList and Package management
2577
2578        * src/cmt_project.cxx (class ProjectMgr): Suppress tag management
2579        from projects. Make it back to global management (from Database)
2580
2581        * src/cmt_pattern.h (class PatternList): Introduce PatternList
2582        class to group pattern by names. This class contains a list of
2583        Patterns of the same name but originating from different uses.
2584
2585        * src/cmt_use.h (class Use): renaming uses() to get_ordered_uses() and
2586        all_uses() to get_instances ()
2587
25882002-12-10  Christian Arnault  <arnault@lal.in2p3.fr> 103
2589
2590        * src/cmt_project.h (class Project): Add a tag_map to manage tags
2591
2592        * src/cmt_tag.cxx (add): Add a tag_map to manage tags
2593
2594        * src/cmt_tag.h (class Tag): Introduce a map of tags
2595
2596        * src/cmt_database.cxx (symbol_map): install a map of symbols
2597
2598        * src/cmt_database.h (class Database): install a map of symbols
2599
2600        * src/cmt_symbol.cxx (create): Use symbol map to find existing symbols
2601        (find): idem
2602        (symbol_map): access to the map of symbols from the database
2603        (clear_all): clear the database and the map
2604
2605        * src/cmt_symbol.h (class Symbol): Introduce the new typedef
2606        SymbolMap for a cmt_map of Symbols
2607
2608        * src/cmt_map.h: Introduce cmt_map.h implementing a map (binary tree)
2609
2610        * src/cmt_regexp.cxx (cmt_regexp): Rename cmt_node to cmt_regexp_node
2611        * src/cmt_regexp.h: Rename cmt_node to cmt_regexp_node
2612
26132002-12-09  Christian Arnault  <arnault@lal.in2p3.fr> 102
2614
2615        * fragments/check_java (check): Add run options (global and local)
2616
26172002-12-09  Christian Arnault  <carnault@lxplus032.cern.ch> 101
2618
2619        * mgr/requirements: Fix typo (trailing backslash)
2620
2621        * src/cmt_parser.cxx (parser): Add set versions operation to perform a
2622        global set version onto all used packages.
2623        (do_set_versions): Start implementing a draft scenario
2624        (parser): the set versions action require parsing the use graph.
2625
2626        * src/cmt.h (class Cmt): idem.
2627       
2628        * src/cmt_parser.h (enum): idem
2629
2630        * src/cmt_parser.cxx (configure_current_package): Set the default
2631        version expression in absence of both version directory AND
2632        version file to "v*" (instead of "v0")
2633
2634        * src/Makefile.header (binclean): Add new standard target for
2635        erasing at once the $(bin) directory
2636
26372002-12-08    <ARNAULT@lal.in2p3.fr> 100
2638
2639        * src\cmt_parser.cxx (do_set_version):
2640        (scan_path): Improving the management of various structuring styles for the FileScanner.
2641        (do_show_strategies): Displays structuring style in show_strategies
2642        (reach_current_package): Prepare the removal of automatic addition of the
2643        current package area to CMTPATH...
2644        (do_config): Fix discovery of structuring style
2645        (configure_current_package): Fix discovery of structuring style
2646        (class SequenceRunner): Accept version argument in sequence files
2647
2648        * src\cmt.h (class Cmt):
2649        * src\cmt_parser.h (enum): Add set version command to install version.cmt file
2650
2651        * src\cmt_system.cxx (is_version_directory): Handle wild cards in
2652        version ids detection
2653
2654        * mgr\requirements: Add Darwin definitions
2655
2656        * mgr\cmt_make_shlib_common.sh (temp_shlib): Protect against
2657        module files with space in their names
2658
2659        * mgr\requirements: try to remove CMT/v from PATH rather then CMT
2660        only so as to keep subpackages of CMT
2661
2662        * src\cmt_use.cxx (set_auto_imports_state): fix a bug on use pointer comparisons.
2663
2664        * fragments\nmake\constituent:
2665        * fragments\nmake\constituents_header (dirs): fix naming scheme : only .nmake
2666
2667        * mgr\NMake (cmt): protect VisualC.nmake generation against
2668        reminder of the physical location of the rebuild
2669
2670        * src\demo\demoA\requirements: Add PATH towards java on Windows
2671
2672        * mgr\NMake: Add a target to re-generate VisualC.nmake inside CMT
2673        so as to have proper nmake demo
2674
2675        * mgr\requirements: provide debug_option for WIN32 platform
2676
2677        * fragments\nmake\make_header (tags): Suppressed
2678        $(CMTCONFIG),$(CMTEXTRATAGS) and only keep $(CMTEXTRATAGS)
2679
2680        * fragments\nmake\constituents_trailer: added to NMake family
2681        * fragments\nmake\group: added to NMake family
2682
26832002-12-05    <ARNAULT@lal.in2p3.fr> 99
2684
2685        * src\cmt_vector.h (cmt_vector): replace static int frame_size by
2686        enum {frame_size} to C++ ANSI compliance.
2687
2688        * src\cmt_use.cxx (BestFitSelector::operate): When structurig
2689        style is withut-version-directory, the version field of the
2690        package may still contain wild cards. This has to be considered
2691        when checking compatibility.
2692
26932002-12-04  Christian Arnault  <carnault@lxplus032.cern.ch> 98
2694
2695        * src/cmt_use.cxx (set_auto_imports_state): bug fix (corresponding to v1r12p20021129)
2696
26972002-10-30  Christian Arnault  <carnault@lxplus032.cern.ch> 97
2698
2699        * src/cmt_vector.h (cmt_vector): define frame_size as a static
2700        const int instead of enum
2701
27022002-10-15  Christian Arnault  <carnault@lxplus032.cern.ch> 96
2703
2704        * src/cmt_use.cxx: Protect against use objects badly recorded
2705        within auto_imports_state vectors
2706
2707        * src\cmt_parser.cxx (scan_path): Fix algo to scan packages to
2708        cope with no-version style
2709        (class StandardMacroBuilder): Fix no-auto-imports algo
2710
27112002-09-24  Christian Arnault  <arnault@lal.in2p3.fr> 95
2712
2713        * mgr/ChangeLog.php: Introduce the online filter for ChangeLog file
2714
2715        * doc/documents.html: Use PHP to filter out ChangeLog
2716
2717        * mgr/Makefile (docs): Install ChangeLog and ChangeLog.php into web site
2718
2719        * src/setup.zsh: Add an empty leading line to avoid shell problems...
2720
2721        * src/Makefile.header (config): force the rebuild of $(tag).make
2722
27232002-08-06  Christian Arnault  <arnault@lal.in2p3.fr> 94
2724
2725        * fragments/library: Split action list so as to force the rebuild
2726        of shared libraries when it has been lost while shstamp is still
2727        there.
2728
27292002-06-21    <arnault@lal.in2p3.fr> 93
2730
2731        * src/cmt_parser.cxx (class SequenceRunner): Add support for comments in the sequence files
2732        (do_show_macro_names):
2733        (do_show_set_names):
2734        (print_symbol_names):
2735       
2736        (class StandardMacroBuilder): prepare the production of
2737        <constituent>_use_linkopts but let it unsused for the time being
2738
2739        (class StandardMacroBuilder): fix a typo
2740       
2741        (class StandardMacroBuilder): fix a bug
2742
2743        * src/cmt_parser.h (enum):
2744        * src/cmt.h (class Cmt): Adding do_show_macro_names,
2745        do_show_set_names, print_symbol_names functions
2746
2747        * src/setup.tcsh:
2748        * src/setup.zsh: move the -quiet option before verb to avoid confusion with new syntax for show xxxs
2749
2750        * src/demo/tprivate.cmt:
2751        * src/demo/demo1.cmt: improve test sequences
2752
2753        * mgr/requirements: add the macro preproc to prepare new scheme
2754        for dependency generation using cpp -MD
2755
2756        * mgr/Makefile (cpp): Specialize default cpp according to the platform
2757        (hosts): we don't need BOOL hosts anymore
2758        (demo): the demo sequence now exploits the sequence runner of CMT
2759        (tprivate): new test sequence on private uses.
2760
2761        * mgr/ChangeLog.awk: Adding this awk script to convert the ChangeLg file int HTML format
2762
2763        * doc/CMTDownload.html:
2764        * doc/download.html:
2765        * doc/install.html: doc improvements
2766
2767        * fragments/application: Temporarily stop using $(${CONSTITUENT}_use_linkopts)
2768
2769        * src/NMakefile.header (tag):
2770        * src/Makefile.header (tags):
2771        * fragments/nmake/constituents_header (tag):
2772        * fragments/nmake/make_header (tag):
2773        * fragments/constituents_header (tag):
2774        * fragments/make_header (tag): Add $CMTCONFIG to tags
2775
27762002-05-29    <arnault@lal.in2p3.fr> 92
2777
2778        * src\cmt_database.cxx:
2779        * src\cmt_database.h:
2780        * src\cmt_project.h (class Project):
2781        * src\cmt_project.cxx (Project): Introduce Project management
2782
2783        * mgr\requirements: Define the default project CMT
2784
2785        * src\cmt_parser.h (enum):
2786        * src\cmt_parser.cxx (select):
2787                Introduce apply_tag statements<br>
2788                Introduce first iteration on project management
2789       
2790        * src\cmt_symbol.cxx (action): replace direct access to member of
2791        tag objects by accessor functions.
2792
2793        * src\cmt_tag.cxx (add):
2794        * src\cmt_tag.h (class Tag):
2795                Clean up the for private members only<br>
2796                introduce action_apply to activate a tag from a requirements file<br>
2797                introduce tag expressions -> this defines primary tags versus
2798                computed ones. Selection is either obtained from m_selected for
2799                primary tags or computed from operands otherwise.
2800                so far only AND expressions are available.
2801
28022002-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 91
2803
2804        * src/cmt_symbol.cxx (select_last): Make use of Tag::is_selected
2805
2806        * src/cmt_tag.cxx (is_selected):
2807        * src/cmt_tag.h (class Tag): Add and_operands for defining tags
2808        from a bool expression of primary tags. Move selected to private
2809        area to ensure usage of is_selected which may compute the
2810        selection state from operands. The embedded state is now reserved
2811        to primary tags.
2812
28132002-05-28  Christian Arnault  <carnault@lxplus040.cern.ch> 90
2814
2815        * src/cmt_awk.cxx (class Parser): Replace the basic parsing engine
2816        by the local Parser class. It takes care of both EOL styles (Unix
2817        and Win) and of trailing backslashes for continuations.
2818
2819        * src/cmt_awk.h (class Awk): Added a function inc_line_number to
2820        increment the line number from the external text parser.
2821
2822        * src/cmt_cvs.cxx (filter): Added debug messages
2823
2824        * src/cmt_parser.cxx (do_awk):
2825        * src/cmt_parser.h (enum): Added action_awk
2826        * src/cmt.h (class Cmt): Added do_awk function for testing the Awk operator.
2827
28282002-05-27    <arnault@lal.in2p3.fr> 89
2829
2830        * doc\todo.html: Adding entries
2831
28322002-05-24  Christian Arnault  <carnault@lxplus012.cern.ch> 88
2833
2834        * src/cmt_cvs.cxx (class CvsImplementation): fix few problems with
2835        no_version_directory.
2836
28372002-05-23  Christian Arnault  <arnault@lal.in2p3.fr> 87
2838
2839        * src/demo/scenario.awk: Adapt to handle without_version_directory style
2840
2841        * src/demo/demo1.cmt: fix a typo
2842
2843        * src/cmt_parser.cxx (parse_requirements): Fixing bug on private
2844        macros for without_version_directory style
2845
2846        * mgr/Makefile (demo): Improving the demo scenario manager
2847
28482002-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 86
2849
2850        * doc/download.html:
2851        * doc/CMTDownload.html:
2852        * src/cmt_version.h (CMTVERSION): preparing tagging for v1r13...
2853
2854        * src/cmt_use.h (class Use): new helpers
2855
2856        * src/cmt_use.cxx (class use_action_iterator): re-design the scope
2857        hiding for private uses (was buggy for first level private uses)
2858        (reach_package): structuring style
2859        (get_full_path): new helper for centralizing the full package path
2860        computation
2861        (reduce_path): new helper to normal form with $<PACKAGE>ROOT
2862        (get_paths): add debug prints
2863        (show_sub_uses): structuring style
2864
2865        * src/cmt_system.h (class CmtSystem):
2866        * src/cmt_system.cxx (reduce_file_separators): helper to reduce
2867        multiple file separators into one
2868        (is_package_directory): structuring style
2869
2870        * src/cmt_pattern.cxx (apply): add debug prints
2871
2872        * src/cmt_parser.h (enum): Add CmtStructuringStyle options
2873
2874        * src/cmt_parser.cxx:
2875         Introducing support for structuring style.
2876         m_current_structuring_style global variable
2877         (scan_path):
2878         (scan_package):
2879         (run):
2880         (PackageCollector::run):
2881         (configure): calling configure_current_structuring_style
2882         (configure_current_package):
2883         (configure_current_structuring_style): new method
2884         (do_broadcast): use Use::get_full_path
2885         (do_config):
2886         (do_create):
2887         (do_help):
2888         (do_lock): suppress unused local variable
2889         (do_remove):
2890         (do_show_macros): add pattern for selection instead of default '*'
2891         (do_show_sets): idem
2892         (do_unlock): suppress unused local variable
2893         (get_current_strategy): new method
2894         (install_cleanup_scripts): install cleanup scripts on windows
2895         (load):
2896         (parse_arguments): re-number argument array
2897         (parse_arguments): support arguments for cmt show macros
2898         (parse_arguments): support arguments for cmt show sets
2899         (parse_arguments): -with_version_directory option
2900         (parse_arguments): -without_version_directory option
2901         (parse_requirements):
2902         (parser): support arguments for cmt show macros
2903         (parser): support arguments for cmt show sets
2904         (print_context): use Use::get_full_path
2905         (print_macros): selection pattern (reg. expression) on symbols
2906         (reach_current_package):
2907         (set_standard_macros): add getting pwd
2908         (set_standard_macros): structuring style
2909
2910        * src/cmt_generator.cxx
2911         (SourceFile::set): use CmtSystem::reduce_file_separators
2912         (prepare_use_context): idem
2913         (prepare_use_context): use Use::get_full_path
2914         (set_full_name): idem
2915         (build_make_setup): idem
2916
2917        * src/cmt_fragment.cxx
2918         (print): use Use::reduce_path factorization
2919         (locate): use Use::get_full_path factorization
2920         (locate): Support structuring style options
2921
2922        * src/cmt_cvs.cxx:
2923          + need cmt.h for accessing structuring style
2924          + support for structuring style
2925
2926        * src/cmt.h (class Cmt):
2927        Adding support for structuring style
2928       
2929        do_show_macros now accepts arguments
2930
2931        do_show_sets now accepts arguments
2932
2933        print_macros now accepts a pattern for selecting symbols
2934
2935        * src/demo/tprivate.cmt: Scenario for testing private uses and
2936        -no_auto_imports
2937
2938        * src/demo/demo1.cmt: Scenario for the general test/demo sequence.
2939       
2940        * src/demo/scenario.awk: Add a script for installing
2941        scenarios. This script can
2942          - create packages
2943          - install text files relatively to the packages.
2944
2945        * mgr/Makefile (demo): Replace the copy operations for the demo
2946        targets by an awk-based mechanism (only for Unix -> keep old
2947        mechanism for Windows). The scenario.awk script is able to create
2948        packages and install text files into the newly created packages.
2949
2950        Add a target (a scenario) for testing private uses and
2951        -no_auto_imports
2952
2953        Add an help target describing all special targets.
2954
2955        * fragments/constituents_header (first): Differentiate setup.make
2956        with the package name when $(bin) is common.
2957
29582002-05-17  unknown  <arnault@lal.in2p3.fr> 85
2959
2960        * doc/todo.html: Adding a web page for ToDo list, and bug reports.
2961
2962        * src/cmt_parser.cxx (install_test_setup_scripts):
2963        * src/cmt_parser.cxx (install_test_cleanup_scripts): Fix the bug
2964        to "source setup" standalone with a current directory outside the
2965        package itself.
2966
29672002-05-15  Christian Arnault  <arnault@asc.lal.in2p3.fr> 84
2968
2969        * src/cmt_version.h (CMTVERSION): Preparing the new tag v1r12p20020515
2970
2971        * doc/CMTDoc.html: Upgrade the documentation.
2972
2973        * src/setup.tcsh:
2974        * src/setup.zsh: Add all_tags to the list of know show options
2975
2976        * src/cmt_tag.cxx (show_definition):
2977        * src/cmt_tag.h (class Tag): Added Tag::show_definition
2978        (unfiltered show method wrt the selected state)
2979
2980        * src/cmt_parser.cxx (do_help): Implement the new cmt show all_tags command.
2981
2982        * src/cmt.h (class Cmt): Added Cmt::do_show_all_tags ()
2983
2984        * src/cmt_parser.h (enum): Added action_show_all_tags
2985
2986        * mgr/requirements: remove -I$(inc) from default value of ccomp
2987        macro (no longer needed and has side effects)
2988
2989        * src/cmt_use.cxx (add): Protect against null use pointer when not found.
2990
2991        * src/cmt_tag.cxx (action): do increase the tag ref list when
2992        overridden. It used to be un-overridden...
2993
2994        * fragments/constituents_trailer (clean): add a semi-colon between the two shell commands.
2995       
2996        * src/cmt_system.cxx (create_symlink): Explicit .c_str() in system calls.
2997
2998        * doc/table.html: setup a direct URL to CVSWeb rather than through
2999        an intermediate page
3000
30012002-04-12  Christian Arnault  <carnault@lxplus030.cern.ch> 84
3002
3003        * doc/CMTDoc.html:
3004        * src/setup.zsh:
3005        * src/setup.tcsh:
3006        * src/cmt_parser.cxx (do_help):
3007        * src/cmt.h (class Cmt):
3008        * src/cmt_parser.h (enum): introduce action_show_all_tags do
3009        display all defined tags (while action_show_tags only shows all
3010        active tags)
3011
3012        * fragments/constituents_trailer (clean): typo in the clean target.
3013
30142002-04-11    <arnault@lal.in2p3.fr> 83
3015
3016        * src\cmt_parser.cxx (print_clean): Suppress the unset of CMTCONFIG
3017
30182002-04-10    <arnault@lal.in2p3.fr> 82
3019
3020        * fragments\library:
3021        * fragments\library_no_share: Suppress the experimental change for
3022        erasing the object files after filling the library
3023
30242002-04-10  Christian Arnault  <carnault@lxplus044.cern.ch> 81
3025
3026        * src/cmt_version.h: preparing tagging for v1r12
3027
3028
3029       
3030        * mgr/requirements: Adapt to Darwin
3031
3032        * src/cmt_symbol.cxx (action):
3033        * src/cmt_use.cxx (action):
3034        * src/cmt_use.h (class Use): Introduce m_has_native_version
3035
3036        * mgr/requirements: Add standard $(library_prefix) and $(library_suffix) macros
3037
3038        * mgr/cmt_make_shlib_common.sh (temp_shlib): Set verbose mode to
3039        the linker command and control it through the QUIET macro. Fix the
3040        temporary expansion directory
3041       
3042        * mgr/cmt_make_shlib_common.sh (temp_shlib):
3043        * fragments/library_header:
3044        * fragments/cleanup_library: Add standard $(library_prefix) and $(library_suffix) macros
3045
3046        * fragments/constituents_trailer (makefilesclean):
3047        * fragments/constituent: remove specific makefile fragments for
3048        the constituents (instead of *.make)
3049
3050        * fragments/library_no_share:
3051        * fragments/library: erase *.o files after filling the library
3052
3053        * src/cmt_use.h (class Use): Add use::sub_use_auto_imports to save
3054        specifications on sub uses. Add Use::set_auto_imports to possibly
3055        promote auto_imports to sub uses when it is changed from Off to
3056        On.
3057
3058        * src/cmt_parser.h (enum):
3059        * src/cmt_pattern.cxx (show_all_applied_patterns):
3060        * src/cmt_pattern.h (class Pattern): adding Pattern::show_all_applied_patterns ()
3061        * src/setup.tcsh:
3062        * src/setup.zsh:
3063        * src/cmt_parser.cxx (do_help):
3064        * src/cmt.h (class Cmt): Adding Cmt::do_show_applied_patterns for
3065        the new command "cmt show applied_patterns"
3066
30672002-04-04  Christian Arnault  <carnault@lxplus044.cern.ch> 80
3068
3069        * src/cmt_use.cxx (add): Protect against duplicated registration of
3070        current_use.
3071
3072        * src/cmt_parser.cxx (install_setup_scripts): Append an empty line
3073        at the end of the generated setup script (problem on some shells)
3074       
3075        * src/cmt_parser.cxx (do_create):
3076        * src/cmt.h (class Cmt): Change the signature of the do_create
3077        function to receive its arguments from the "arguments" list rather
3078        than changing current_package etc...
3079
3080        * src/Makefile.header: Add a systematic config target (for backward compatibility)
3081
3082        * fragments/constituents_trailer (binclean): added the binclean
3083        target to completely remove the binary directory at once.
3084
3085        * fragments/make_header:
3086        * fragments/constituents_header:
3087        * fragments/nmake/make_header (CMTEXTRATAGS):
3088        * fragments/nmake/constituents_header (CMTEXTRATAGS): Remove the settings of CMTCONFIG
3089
30902002-03-22  Christian Arnault  <carnault@lxplus037.cern.ch> 79
3091
3092        * src/cmt_symbol.cxx (suppress_OS_delimiters): operate on %...%
3093        patterns only on Windows machines.
3094
30952002-03-20  Christian Arnault  <carnault@lxplus042.cern.ch> 78
3096
3097        * mgr/Makefile (Atlas): Suppress HP rebuild for Atlas group
3098
3099        * src/cmt_cvs.cxx (filter): Improve the recursive passes and
3100        handle the new qualifiers of the use statements.
3101
3102        * fragments/cleanup_header (clean): Fix bad insertion of the .DEFAULT target
3103
3104        * src/cmt_symbol.cxx (suppress_OS_delimiters): Introduce this new
3105        function to ensure that only $() syntax is used in tag makefiles
3106        (ie suppress ${} and %% syntaxes)
3107        (show_macro): apply this new function for action_build_tag_makefile
3108
3109        * src/cmt_generator.cxx (reset): Do not generate the Visual
3110        directory on non-windows machines
3111
3112        * fragments/group (clean): Suppress one echo on gmake clean
3113
31142002-03-14  Christian Arnault  <carnault@lxplus037.cern.ch> 77
3115
3116        * src/cmt_parser.cxx (set_standard_macros): Cleanup management of m_current_tag
3117
31182002-03-07  Christian Arnault  <carnault@lxplus048.cern.ch> 76
3119
3120        * src/cmt_parser.cxx (print_context): Suppress the automatic
3121        settings of CMTEXTRATAGS
3122
3123        * src/Makefile.header: Do not change CMTCONFIG
3124        * src/NMakefile.header: Do not change CMTCONFIG
3125
31262002-02-27  Christian Arnault  <carnault@lxplus042.cern.ch> 75
3127
3128        * fragments/jar: Adding removal of jar file for clean target
3129
3130        * src/cmt_use.cxx (show_sub_uses): show no_auto_imports status
3131
3132        * src/cmt_parser.cxx (reach_current_package): reapply global
3133        pattern at once until side effects are solved in user projects.
3134
3135        * fragments/jar: Apply an old fix to Unix fragments (was applied
3136        to Windows only)
3137
31382002-02-26  Christian Arnault  <carnault@lxplus016.cern.ch> 74
3139
3140        * src/cmt_use.cxx (move_to): select_alternate must be applied
3141        after reach_package for searches against an absolute path or
3142        against the current directory.
3143
31442002-02-25    <arnault@lal.in2p3.fr> 73
3145
3146        * fragments/cleanup_header (clean): Add default action
3147
3148        * src/Makefile.header (common_target): Remove debug print
3149
3150        * src\cmt_parser.cxx (parse_requirements): Apply global patterns
3151        right after parsing a requirements file, and only considering the
3152        Use context, one at a time (rather than applying all global
3153        patterns to all Uses at once after reading all requirements file)
3154
3155        * src\cmt_pattern.cxx (apply_all_globals):
3156        * src\cmt_pattern.h (class Pattern): Add a method to apply all
3157        global patterns in the context of only one Use object.
3158
31592002-02-24    <arnault@lal.in2p3.fr> 72
3160
3161        * src\cmt_system.cxx (command_separator): New method for getting
3162        the shell command separator (& or ;)
3163
3164        * src\cmt_cvs.cxx (class CvsImplementation): Add
3165        CmtSystem::command_separator() between cvs co of each branch
3166        (instead of newlines).
3167
3168        * src\cmt_system.cxx (has_device): Accepts the \\xxx\ syntax as a
3169        device name in file paths on windows.
3170
3171        * src\cmt_parser.cxx (configure_cmt_path): Hide show_set action
3172        when recursive definition of CMTCONFIG
3173
3174        * src\cmt_use.cxx (need_new): Some optimizations
3175       
3176        * src\cmt_use.cxx (move_to): Exchange the priority of CMTPATH
3177        versus version when selecting the best version.
3178
3179        * src\cmt_parser.cxx (use_cmt): Hide CMTDEBUG while parsing the
3180        requirements of CMT itself
3181
31822002-02-20  Christian Arnault  <arnault@lal.in2p3.fr> 71
3183
3184        * src/cmt_parser.cxx (do_broadcast): Fix a bug for setting the
3185         style the the Current use. This effect was induced by the new
3186         mechanism for constructing the Current Use object, now a singleton
3187         of the Use class.
3188
31892002-02-07    <arnault@lal.in2p3.fr> 70
3190
3191        * src\cmt_use.cxx (change_path): Add a m_located flag in Use class
3192        to record the success of the package localization. Test against
3193        this info instead of real_path to allow for package found in
3194        current directory (where real_path stays empty)
3195
3196        * src\cmt_parser.cxx (configure):
3197
3198        * src\cmt_use.cxx (show_sub_uses): Ensure that the cmt show uses
3199        displays the correct scoping information for uses and
3200        sub-uses. cmt show uses also displays the full tree even when it
3201        contains private uses.
3202
32032002-02-06    <arnault@lal.in2p3.fr> 69
3204
3205        * src\cmt_use.cxx (class use_action_iterator): Install UseContext
3206        to manage proper propagation of -no_auto_imports
3207
32082002-01-30    <arnault@lal.in2p3.fr> 68
3209
3210        * src/cmt_parser.cxx (parse_arguments): Fix the bug of private
3211        environment variables which could not be set even within the
3212        package (bug in the management of the -pack= -version= -path=
3213        options).
3214
3215        * src/cmt.h : Install all attributes of the Cmt class as private
3216        attributes, and make them follow the convention : m_xxx. This
3217        implies to install few accessor methods.
3218
32192002-01-29    <arnault@lal.in2p3.fr> 67
3220
3221        * src/cmt_use.cxx (class use_action_iterator): The private uses
3222        are accessed for
3223            - broadcast operations
3224            - show uses operations
3225
3226        * src/cmt_symbol.cxx (action): Expands the specified script name
3227        for the setup_script and cleanup_script statement.
3228          Protect against empty script names.
3229
32302002-01-11  Christian Arnault  <carnault@lxplus035.cern.ch> parallelbuilds
3231
3232        * src/Makefile.header: Reorganize basic Makefile fragment
3233        generation to permit better support for parallel & concurrent
3234        builds.  Mimize also the number of makefile fragments generated
3235        and kept : only $(tag).make remains in ../cmt . All other are
3236        thrown away after use.
3237
3238        Make those changes a branch "parallelbuilds"
3239       
3240
32412002-01-09  Christian Arnault  <carnault@lxplus001.cern.ch> 66
3242
3243        * src/NMakefile.header (tags): Apply the fix for tags onto
3244        NMakefile.header
3245
32462002-01-07    <arnault@lal.in2p3.fr> 65
3247
3248        * src/Makefile.header (tags): Attempt to fix the continuity break
3249        between v1r9 and v1r10, by re-installing the possibility to use
3250        gmake tag=<...> rather than having to use source setup.[c]sh
3251        -tag=<...>
3252
3253        (This fix has to be tested before any validation)
3254
32552001-11-26  Christian Arnault  <carnault@atlas50.cern.ch> 64
3256
3257        * Tagging v1r10p20011126
3258       
3259        * src/Makefile.header: tag is now ${CMTCONFIG} and tags ${CMTEXTRATAGS}
3260
3261        * mgr/requirements: Provide the macro tags as ${CMTEXTRATAGS}
3262
3263        * src/cmt_tag.cxx: Various changes in strategy for tags:
3264          - tag inclusion (defined by the "tag" statement) transmits the priority.
3265          - tag selection can be discarded by exclusion specifications. Exclusion
3266          qualifies a set of contradictory tags. Contradictory tags will be selected
3267          according to their priority or to their declaration order in case of
3268          equal priority.
3269
3270        * src/cmt_parser.h (enum Priority): Change the priority list:
3271        Arguments get highest priority
3272        then CMTCONFIG
3273        then user tags (those defined in requirements)
3274
3275        * fragments/make_setup: produce uses.make and tags.make
3276
3277        * src/cmt_parser.cxx (parse_arguments):
3278        * src/cmt.h (class Cmt): Suppress the mechanism of
3279        primary_tag. CMTCONFIG is enough.
3280
32812001-11-21  Christian Arnault  <carnault@lxplus040.cern.ch> 63
3282
3283        * src/cmt_symbol.cxx (add_value_to_list): fix protection on
3284        value_list.size () to start at 1 (not at 2)
3285
3286        * src/cmt_symbol.cxx (build): Reflective values of Sets should
3287        consider previous setenv settings.
3288
3289        * src/cmt_generator.cxx (build_dependencies): Using ../$(tag) for
3290        output base of the dependencies fragment rather then
3291        Cmt::current_tag
3292
3293        * src/Makefile.header (CMTPRIMARYTAG): tag=... argument of gmake
3294        will override CMTPRIMARYTAG. However internal tag macro is only
3295        replaced with ${CMTCONFIG}
3296
3297        * fragments/make_setup (config): create a tags.log (for cmt show
3298        tags)
3299
3300        * mgr/cmt_make_shlib_common.sh: Add the ${lib} prefix to the
3301        temporary expansion directory. Fix a bug in sed filter for all
3302        module files.
3303
3304        * src/cmt_parser.cxx (configure_tags): Add a protection against
3305        absence of CMTPRIMARYTAG
3306
3307        * src/cmt_system.cxx (create_symlink):
3308        * src/cmt_system.h (class CmtSystem): Adding the create_symlink
3309        function.
3310
3311        * src/cmt_parser.cxx (do_build_library_links): Using direct system
3312        calls to create symlinks.
3313
33142001-11-13  Christian Arnault  <carnault@lxplus010.cern.ch> 62
3315
3316        * Tagging v1r10p20011113
3317
3318        * mgr/requirements:
3319        * src/constituents.make (build_library_links): Define macros for
3320        build_library_links and remove_library_links
3321
3322        * fragments/make_setup (config): Add build_library_links target
3323
3324        * src/cmt_parser.cxx (set_standard_macros): Fix bad production of
3325        use_includes when private is used.
3326
3327        * src/cmt_parser.cxx (do_broadcast): Fix -begin=<pattern> error
3328
33292001-11-08  Christian Arnault  <carnault@lxplus028.cern.ch> 61
3330
3331        * src/cmt_version.h: tagging v1r10
3332
3333        * src/cmt_system.cxx (add_cmt_path): Get cwd alias to each selected path.
3334
3335        * src/cmt.h (class Cmt): Add cmt_path_cwd vector of all CMTPATH
3336        entries normalized to getcwd.
3337
3338        * src/cmt_generator.cxx (java_file_action):
3339        * src/cmt_generator.cxx (proto_file_action):
3340        * src/cmt_generator.cxx (module_file_action): Pass reference to the constituent in order
3341        to transmit constituent variables to the fragment.
3342
3343        * src/cmt_parser.cxx (set_standard_macros): Insert a space
3344        character for all generated macro_append operations.
3345
3346        * src/cmt_fragment.cxx (xxxcopy):
3347        * src/cmt_fragment.h (class Variable): Adding the expansion of
3348        fragments variables using both the ${} syntax AND the $() syntax.
3349
3350        * src/cmt_tag.h :
3351        * src/cmt_tag.cxx (is_selected): Change the Tag::selected attribute to bool.
3352
33532001-11-07  Christian Arnault  <carnault@lxplus006.cern.ch> 60
3354
3355        * src/cmt_symbol.cxx (build): Implement the possibilty to have
3356        reflexive asignment to symbols: when a symbol value is exactly
3357        specified (from set, macro or path statements) using $(<name>) or
3358        ${<name>} or %<name>% then the old value is preserved for all
3359        corresponding selectors.
3360
3361        * src/cmt_parser.cxx (set_standard_macros): Re-activate -import
3362        options (that had been discarded!)
3363
3364        * src/cmt_use.cxx (add): Generate an error when a package is not
3365        found (the error was only generated at "cmt show uses")
3366
3367        * src/cmt_constituent.cxx (show): Display -import options
3368
3369        * fragments/dependencies: Force checking $(bin)
3370
3371        * fragments/constituent: Adding some printout to display when
3372        constituent fragment is rebuilt
3373
3374        * src/cmt_parser.cxx (set_standard_macros): Re-validate
3375        -no_auto_imports option for use and -import options for
3376        constituents.
3377
33782001-11-06  Christian Arnault  <carnault@lxplus038.cern.ch> 59
3379
3380        * src/cmt_generator.cxx (build_document_makefile): protect against
3381        missing files (causing infinite loops in Make)
3382
33832001-11-05  Christian Arnault  <carnault@lxplus005.cern.ch> 58
3384
3385        * mgr/Makefile (application_suffix): Define application_suffix in
3386        the CMT's Makefile
3387
3388        * src/cmt_parser.cxx (print_context): Do not generate ROOT and
3389        CONFIG for cmt_standalone packages.
3390
3391        * mgr/requirements: Reomving the cmt_selector.cxx source file.
3392
3393        * src/constituents.make: Force the dirs target for
3394        build_library_links
3395
3396        * src/cmt_parser.cxx (restore_all_tags): Get the value of
3397        CMTPRIMARYTAG to configure Cmt::primary_tag.
3398
3399        Leave unchanged the primary_tag and the extra_tags except if
3400        overridden through the -tagxxx= options
3401
3402        * src/cmt_parser.h (enum): Add PrioritySite in the list of
3403        possible priorities.
3404
3405        * src/cmt.h (class Cmt): Add the restore_all_tags function. Add
3406        the extra_tags attribute . Change the strategy of tag persistency:
3407
3408          o CMTPRIMARYTAG always contains what had been specified using
3409        the -tag= option,
3410
3411          o CMTEXTRATAGS contains what had been manipulated by -tag_add=
3412        and -tag_remove= options.
3413
3414          o CMTCONFIG is setup independently of the primary tag.
3415
3416        * src/Makefile.header (primary_tag): Propagate tags using
3417        CMTPRIMARYTAG instead of CMTCONFIG (except when CMTPRIMARYtAG is
3418        not yet defined)
3419
3420        * src/cmt_constituent.cxx (parse): Fix the word parsing for
3421        constituent specification...
3422
34232001-11-02  Christian Arnault  <arnault@asc.lal.in2p3.fr> 57
3424
3425        * src/cmt.h
3426        * src/cmt_database.cxx
3427        * src/cmt_database.h
3428        * src/cmt_parser.cxx
3429        * src/cmt_parser.h
3430        * src/cmt_selector.cxx
3431        * src/cmt_selector.h
3432        * src/cmt_symbol.cxx
3433        * src/cmt_symbol.h
3434        * src/cmt_tag.cxx
3435
3436        * src/cmt_tag.h:
3437        Suppressing cmt_selector objects (only tags are needed!!)
3438        Add tag_exclude keyword for building tag-exclusions.
3439
34402001-10-31  Christian Arnault  <carnault@atlas50.cern.ch> 56
3441
3442        * mgr/requirements: Don't need to explicitly declare make_fragment
3443        headers (automatically declared in the -header= option)
3444
3445        * src/cmt_symbol.cxx (print_clean): Cleaning up path variables may
3446        be either unsetenv when the result is empty or setenv if not.
3447       
3448        * fragments/application_launcher: evolution
3449
3450        * src/cmt_parser.cxx (configure_tags): protect against empty
3451        declaration of CMTCONFIG : by default will take uname...
3452
34532001-10-30  Christian Arnault  <carnault@atlas50.cern.ch> 55
3454
3455        * src/cmt_symbol.cxx (clean): Implement the cleanup correctly,
3456        with in particular the cleanup of the path variables.
3457
3458        * src/cmt_parser.cxx (print_context): improve output of cmt show tags
3459
3460        * src/cmt_symbol.h (class Symbol): Add clean_macro_value for
3461        building the result of the clean operations induced by this symbol
3462        (only implemented for path_xxx)
3463
3464        * src/cmt_parser.cxx: New post-context requirements file :
3465        user_context in addition to home package.  Added Use* use
3466        arguments to configure_xxx functions to transfer.
3467
3468        * src/cmt_parser.cxx(configure_cmt_path): Attempt to make use of
3469        CMTPATH definitions from requirements files.
3470
3471        * src/cmt_parser.cxx(configure_config_selector): Install context
3472        information for tag creation
3473
3474        * src/cmt_parser.cxx(configure_home): Attempt to make use of
3475        CMTHOME definitions from requirements files.
3476
3477        * src/cmt_parser.cxx(configure_user_context): Install user_context
3478        management
3479
3480        * src/cmt_parser.cxx(configure_site_selector): Get CMTSITE from
3481        requirements as well
3482
3483        * src/cmt_parser.cxx(configure_tags): Add a configure_tags
3484        finction to retreive tags from all possible sources: CMTCONFIG
3485        (from req) then CMTPRIMARYTAG then CMTCONFIG then CMTBIN then
3486        append all CMTEXTRATAGS.
3487
3488        * src/cmt_parser.cxx(parse_arguments): fix parsing bug for the
3489        -home= argument
3490
3491        * src/cmt_parser.cxx(parser): Set action_show_path to be recursive
3492
3493        * src/cmt_parser.cxx(parser): Call the HOME package just after
3494        using CMT. Call the use_context package just after reaching the
3495        current package.
3496
3497        * src/cmt_parser.cxx(print_clean): reformat the output (with
3498        newlines). Clear CMTPRIMARYTAG CMTEXTRATAGS and CMTCONFIG.
3499
3500        * src/cmt_parser.cxx(print_context): set CMTPRIMARYTAG
3501        CMTEXTRATAGS and CMTCONFIG from the current definitions.
3502
3503        * src/cmt_parser.cxx(set_standard_macros): Rationalize the
3504        production of current_tag
3505
3506        * src/cmt_parser.cxx(use_user_context_requirements):
3507
3508        * src/cmt_use.cxx (show_all): Display new user_context package
3509
3510        * src/cmt_use.cxx (class use_action_iterator): query function ok()
3511        includes both home_package and user_context_package
3512
3513        * src/cmt_use.cxx (reach_package): special treatment for
3514        home_package and user_context_package since they do not follow the
3515        standard location scheme.
3516
3517        * src/cmt_use.cxx (add): Improve the detection of packages not found.
3518
3519        * src/cmt_tag.cxx (unmark): Reset the use pointer
3520
3521        * src/cmt_tag.cxx (action): Install the use origin.
3522
3523        * src/cmt_tag.cxx (add): Install the use origin and the context
3524        information. It will be reset to the new context in case of
3525        re-definition. Suppress various excessive debug printouts.
3526
3527        * src/cmt_tag.cxx (clear): clear use and context new information
3528
3529        * src/cmt_tag.cxx (show): Improve the display of tags with
3530        hierarchical display of subtags and context information.
3531
3532        * src/cmt_tag.h (class Tag): Added Use* use parameter to action
3533        and add methods. Store a pointer to the package (Use*) who
3534        originated the definition, and a context string to qualify the
3535        definition.
3536
3537        * src/cmt_system.h (class CmtSystem):
3538        * src/cmt_system.cxx (add_cmt_paths_from_text): Factor out the
3539        code to register a set of CMTPATH entries, with the context
3540        information.
3541       
3542        * src/cmt_system.cxx (is_home_package): Add is_home_package and
3543        is_user_context_package query functions.
3544
3545        * src/cmt_system.cxx (get_cmt_site): Default site is empty
3546        (instead of LAL)
3547
3548        * src/cmt_symbol.cxx (print_clean): Suppress some obsolete
3549        print_tabs () formattings. Apply unset instead of unset for
3550        aliases as well.
3551       
3552        * src/cmt_symbol.cxx (action): Add special treatment for CMTXXX
3553        environment variables : the new setting has to be taken into
3554        account as soon as it is parsed.
3555
3556        * src/cmt_selector.cxx (create): remove some debug code.
3557
3558        * src/cmt_generator.cxx (build_default_makefile): Produce only
3559        Makefile on Unix and only NMake on Windows.
3560
3561        * mgr/requirements: Renaming new script_launcher fragments into
3562        application_launcher
3563
3564        * src/cmt.h (class Cmt): Added Use* use arguments to configure_xxx
3565        functions to transfer.
3566       
3567        Added use_user_context_requirements () to include post-context
3568        requirements file.
3569
3570        Added the static value primary_tag to store the primary tag.
3571       
3572
3573        * src/cmt_generator.cxx (build_default_makefile): Create Makefile
3574        only un Unix and NMake only on WIN32
3575
35762001-10-24  Christian Arnault  <carnault@lxplus038.cern.ch> 55
3577
3578        * src/cmt_parser.cxx (parser): add the recursive property to
3579        action_show_path.
3580
3581        * src/cmt_system.h (class CmtSystem):
3582        * src/cmt_system.cxx (get_user_context_package):
3583        * src/cmt_system.cxx (is_user_context_package):
3584        * src/cmt_use.cxx (add):
3585        (show_all):
3586        (class use_action_iterator):
3587        (reach_package):
3588        (add):
3589        * src/cmt_parser.cxx (configure):
3590        * src/cmt_parser.cxx (parser):
3591        * src/cmt_parser.cxx (parse_arguments):
3592        * src/cmt_parser.cxx (configure_user_context):
3593        * src/cmt.h (class Cmt):
3594
3595        Adding user_context equivalent of CMTHOME support for post
3596        requirements file. The corresponding env. var. is CMTUSERCONTEXT.
3597        The complete scheme for supporting PRE-parsed HOME requirements
3598        file is exactly copied to those POST-parsed files.
3599
3600        * mgr/requirements:
3601        * fragments/script_launcher_header:
3602        * fragments/script_launcher:         
3603        * fragments/script_launcher_trailer: Introduce a new document
3604        generator for launching scripts. The same convention as the
3605        check_application is reused, for pre-action, argument passing and
3606        post-action. Several scripts (specified in the source list of the
3607        document) can be executed in sequence.
3608
3609        * src/cmt_use.cxx (class use_action_iterator):
3610        * src/cmt_system.cxx (is_home_package):
3611        * src/cmt_system.h (class CmtSystem): Add the is_home_package
3612        function to encapsulate the syntax of a HOME package (and apply it
3613        in Use::use_action_iterator)
3614
3615        * src/cmt_symbol.cxx (action): Prepare specific actions when the
3616        parsed symbol is one of the CMTXXX standard symbols. So far
3617           CMTHOME -> re-configure home.
3618
3619        * src/cmt_parser.cxx (parser): apply use_home_requirements right
3620        after reading CMT requirements file (ie. before reading current
3621        package)
3622
3623        * src/cmt_parser.cxx (configure_home): understand the possible
3624        "set CMTHOME" declarations (but keep $CMTHOME)
3625
3626        * src/cmt_parser.cxx (reach_current_package): * src/cmt_system.cxx
3627        (get_cmt_paths): Restore the automatic addition of "current
3628        package" in the CMTPATH list.
3629
3630        * src/cmt_parser.cxx (parse_arguments): bad parsing of the
3631        -home=xxx argument
3632
3633       
3634
36352001-10-23  Christian Arnault  <carnault@lxplus007.cern.ch> 54
3636
3637        * mgr/Makefile (demo): Need to add CMTPATH towards ${CMTROOT}/demo
3638        since CMTPATH to current package is no longer supported !!!
3639
3640        * fragments/nmake/check_application (check):
3641        * fragments/nmake/cleanup_application:
3642        * fragments/nmake/application_header:
3643        * fragments/nmake/application:
3644        * fragments/application:
3645        * fragments/application_header:
3646        * fragments/cleanup_application:
3647        * fragments/check_application (check):
3648        * mgr/requirements: Create a new standard macro
3649        "application_suffix" for making possible to change the .exe
3650        default suffix of applications
3651
36522001-10-22  Christian Arnault  <carnault@lxplus026.cern.ch> 53
3653
3654        * src/cmt_parser.cxx :
3655        * src/cmt_system.cxx : Suppress the automatic addition of current
3656        package's path into CMTPATH.
3657
3658        * mgr/Makefile: Change the method to rebuild
3659        cmt_dependencies by copying what is obtained from CVS. Rebuild it
3660        manually when needed.
3661
36622001-10-19  Christian Arnault  <carnault@lxplus025.cern.ch> 52
3663
3664        * fragments/make_setup (config): Creating uses.log needs to use an
3665        intermediate temporary file
3666
3667        * src\setup.[c]sh : Avoid re-definition of CMTCONFIG
3668
3669        * src\cmt_use.cxx (add): temporarily discard the mecanism by which
3670        uses.log files are read before the requirements files.
3671
3672        * src\cmt_system.cxx (is_version_directory): returns -1 for fields
3673        that were wildcarded
3674
3675        * src\cmt_use.cxx (add):
3676        * src\cmt_use.cxx (need_new):         
3677        * src\cmt_use.cxx (BestFitSelector::operate): Start the
3678        implementation of priority control between explicit use
3679        specification over wildcarded ..
3680
3681        * src\cmt_parser.cxx (reach_current_package): Change the value of
3682        the CMTPATH for the current package once it has been reached (but
3683        before reading its requirements file)
3684       
3685        * src\cmt_parser.cxx (install_setup_scripts): (improvement) Add the transfer of
3686        arguments towards cmt.exe into setup.bat
3687
3688        * src\cmt_system.cxx (get_cmt_paths): (bug fix) path_sources was
3689        not cleared as paths.
3690        Prepend "current path" to the path list under "current package".
3691
3692        * src\cmt_parser.cxx (parse_arguments): (bug fix) Suppress
3693        enclosing quotes around cmt.exe arguments so that setup.bat can
3694        transmit arguments properly
3695
3696        call setup.bat "-tag_add=a,b,c"
3697
36982001-10-18  Christian Arnault  <carnault@lxplus047.cern.ch> 51
3699
3700        * src/cmt_parser.cxx (set_standard_macros): Set current_tag to
3701        CMTBIN when in CMT itself (not complete yet)
3702       
3703        * src/cmt_generator.cxx (build_dependencies): Use CMTBIN for CMT
3704        itself (instead of current_tag) well this should be cured later on
3705        to ensure that current_tag is always set to CMTBIN for CMT itself
3706
3707        * src/cmt_version.h (CMTVERSION): install v1r10 (not tagged yet)
3708
3709        * mgr/cmt_system.sh: Do not try to use AFS on Darwin and LynxOS.
3710
3711        * src/setup.[c]sh: Define CMTBIN as `uname` on Unix and CMTCONFIG
3712        as `cmt_system.sh`
3713
3714        * src/cmt_symbol.cxx (show_macro): the trailing space must be
3715        added only for WIN32 !!
3716
37172001-10-17  Christian Arnault  <carnault@lxplus047.cern.ch> 50
3718
3719        * src/cmt_symbol.cxx (show_macro): add a trailing space on all
3720        macro definitions (to avoid problem of trailing backslash)
3721       
3722        * src/cmt_parser.cxx (set_standard_macro): remove the insertion of
3723        trailing spaces after the last backslash for WIN32/NMake
3724
3725        * src/constituents.make (all): (bug fix) re-install the
3726        build_library_links action for the all target
3727
37282001-10-11  Christian Arnault  <carnault@lxplus021.cern.ch> 49
3729
3730        * src/cmt_version.h: Tagging for v1r9p20011011
3731       
3732        * fragments/library: (bug fix) transmit both -tag=<tag> and
3733        -tag_add=<tag_list> to cmt_make_shlib_common.sh
3734
37352001-10-11  Christian Arnault  <arnault@asc.lal.in2p3.fr> 48
3736
3737        * src/cmt_parser.cxx: remove debug print options
3738
37392001-10-10  Christian Arnault  <arnault@asc.lal.in2p3.fr> 47
3740
3741        * src/cmt_parser.cxx (parse_arguments): fix problems in multiple
3742        tag management.
3743
3744        converge in the question of HOME requirements file to support
3745          - no default
3746          - define the path to the HOME requirements file in ${CMTHOME}
3747
3748        converge in the arguments for manipulating the extra tags
3749          -tag=<tag>
3750          -tag_add=<tag-list>
3751          -tag_remove=<tag-list>
3752
37532001-10-03  Christian Arnault  <carnault@lxplus036.cern.ch> 46
3754
3755        * src/constituents.make (makefilesclean): Make all action lists
3756        run in one single shell (ie. use ;\ everywhere)
3757
3758        Make an explicit target for build_library_links
3759        Make it called before any group
3760
37612001-10-02  Christian Arnault  <carnault@lxplus007.cern.ch> 45
3762
3763        * src/cmt_awk.h (class Awk): add a state variable
3764        (m_continuation_allowed) which when true, take into account the
3765        trailing backslashes, so as to first accumulate continued lines
3766        into one. Add the allow_continuation method to base Awk class.
3767
37682001-10-01  Christian Arnault  <carnault@lxplus034.cern.ch> 44
3769
3770        * src/cmt_cvs.cxx (class CvsImplementation): Bug in
3771        checkout_from_requirements. Did not accept leading spaces on use
3772        statements.
3773
37742001-09-27  Christian Arnault  <carnault@lxplus036.cern.ch> 43
3775
3776        * src/cmt_version.h: Tagging for v1r9p20010927
3777
3778        * src/setup.zsh: add the -begin option to the auto-expansion.
3779
3780        * src/cmt_use.cxx (show_all): Visualize the HOME package when
3781        applicable.
3782
3783        * src/cmt_system.cxx (get_home_package): (also do some formatting
3784        cleanup)
3785       
3786        * src/cmt_system.h (class CmtSystem): Adding get_home_package
3787        function to build the name given to the HOME package (provides the
3788        HOME requirements file)
3789
37902001-09-26  Christian Arnault  <arnault@asc.lal.in2p3.fr> 42
3791
3792        * src/cmt_parser.cxx (do_show_macro): Improving error detection on
3793        cmt show macro/set
3794
3795        * doc/CMTDoc.html: Improve the doc.
3796
3797        * src/cmt_parser.cxx (print): produce the CMTEXTRATAGS environment
3798        variable, at setup time.
3799                             (parse_arguments): take into account this new
3800        env.var. to retreive previous extra tags.
3801
3802        * src/Makefile.header: Add the CMTEXTRATAGS environment variable
3803        to propagate additional tags to Make.
3804       
3805        * fragments/make_setup:
3806        * fragments/constituent:
3807        * src/Makefile.header:
3808        * src/constituents.make: Adding  -tag=$(tags) to all calls to cmtexe
3809
3810        * src/cmt_system.h (class CmtSystem): Adding the bool testenv
3811        (name) function to test if an environment variable is defined or
3812        not.
3813
3814        * src/cmt_parser.cxx (use_home_requirements):
3815        * src/cmt.h (class Cmt): Adding support of CMTHOME environment
3816        variable for specifying home requirements file. Default value will
3817        be ${HOME}. And can be overridden through the -home=<directory>
3818        global option. An explicit empty value (or set to eg. NONE) will
3819        discard the feature
3820
3821        * src/cmt_parser.cxx (parse_arguments): Implement the tag list
3822        (comma separated list of extra tags) option -tag=<tag-list> to
3823        specify a list of tags to validate.
3824
38252001-09-25  Christian Arnault  <carnault@lxplus034.cern.ch> 41
3826
3827        * src/setup.csh: fixed PATH settings (may accept a path with space
3828        characters eg. for Darwin)
3829       
3830        * mgr/cmt_system.sh: Insert the knowledge of Darwin OS (Mac OS
3831        X). The default CMTCONFIG will be Darwin.
3832
3833        * src/constituents.make (makefilesclean): Ensure that removal of
3834        makefile fragments is performed AFTER all cleanup uperations.
3835
3836        * src/cmt_parser.cxx (use_home_requirements): Add the systematic
3837        search for a requirements file located in ${HOME}. This
3838        requirements file when found, is systematically parsed AFTER the
3839        requirements file of the current package has been parsed (so as to
3840        give the highest precedence to its statements)
3841       
3842        (do_remove_library_links): Upgrade "remove library_links" to make
3843        it compliant to the algorithm used in "build library_links"
3844
38452001-09-24  Christian Arnault  <carnault@lxplus014.cern.ch> 40
3846
3847        * src/cmt.h (class Cmt): * src/cmt_parser.cxx (configure): Add a
3848        global configure_error variable to store the possible error
3849        produced during the configuration.
3850        (install_test_setup_scripts): Add the -quiet option to the build
3851        temporary_name command used in setup script generation.
3852
3853        * src/cmt_error.cxx (get_last_error):
3854        * src/cmt_error.h (class CmtError): Add get_last_error to retrieve
3855        the formatted text of the last error.
3856
3857        * src/cmt_symbol.cxx (create):
3858                             (all_print):
3859                             (print):
3860                             (build):
3861        * src/cmt_parser.cxx (select): Understand the "path" statement as
3862        a complete re-definition of a path-like variable.
3863
3864        * src/cmt_system.cxx (add_cmt_path):
3865        * src/cmt_error.cxx (class Error):
3866        * src/cmt_error.h (class CmtError): Adding "path not found" error
3867        code, for CMTPATH checking.
3868
3869        * src/cmt_pattern.cxx ((const cmt_string& name): Return a warning
3870        for pattern not found.
3871
3872        * src/cmt_error.h (class CmtError):
3873        * src/cmt_error.cxx (class Error): Adding "pattern not found" error
3874        code, for showing diagnostics in "cmt show pattern"
3875
3876        * src/cmt_parser.cxx (do_show_macro): Return a warning for symbol
3877        not found.
3878
3879        * src/cmt_error.h (class CmtError):
3880        * src/cmt_error.cxx (class Error): Adding "symbol not found" error
3881        code, for showing diagnostics in "cmt show macro/set"
3882
38832001-09-19  Christian Arnault  <carnault@lxplus045.cern.ch> 39
3884
3885        * mgr/cmt_make_shlib_common.sh : return a status value which
3886        reflects the success or failure of the shared library build
3887        command.
3888
3889        * src/cmt_cvs.cxx (class CvsImplementation): Discard the versions
3890        specified with wild cards in the recursive checkout.
3891
3892        * src/cmt_triggers.cxx: Protect the error messages in the trigger
3893        facility by Cmt::quiet.
3894
3895        * src/cmt_constituent.cxx (class constituents_action_iterator):
3896        temporarily discard the -triggers option.
3897
38982001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38
3899
3900        Tagging v1r9p2001p0824
3901
39022001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38
3903
3904        * mgr/cmt_system.sh: Improve the reliability of the cmt_system.sh
3905        script against variants of "fs sysname"
3906
39072001-08-23  Christian Arnault  <carnault@lxplus030.cern.ch> 37
3908
3909        * src/cmt_cvs.cxx (class CvsImplementation): Since the tag filter
3910        is back to cmtcvs.cxx, the temporary forced tag filter in CMT is
3911        removed.
3912
3913        * src/setup.zsh: upgrade the completion for the broadcast command.
3914
3915        * src/cmt_parser.cxx (do_broadcast): Make the -select independent
3916        of the -local or -global options. This is achieved by adding a
3917        "path_selections" list only managed by the -depth, -local -global
3918        modifiers while the "selections" list is managed by the -select
3919        modifier. The -exclude is left unchanged.
3920
39212001-08-22  Christian Arnault  <carnault@lxplus024.cern.ch> 36
3922
3923        * src/cmt_cvs.cxx (class CvsImplementation): Add the possibility
3924        to transmit a flag to the CVS pluggin, by inserting a /cmtcvstest
3925        in the module name to import. This will have to be decoded by the
3926        CVS pluggin itself !!
3927
39282001-08-21  Christian Arnault  <carnault@lxplus013.cern.ch> 35
3929
3930        * src/setup.tcsh: Improving the tcsh completion mechanism (for cmt co).
3931
3932        * src/setup.zsh: Improving the zsh completion mechanism (for cmt co).
3933
3934        * src/cmt_cvs.cxx (class CvsImplementation): Converging on HEAD
3935        management strategy...
3936
3937        Starting implementation of the Atlas filter for CVS tags right
3938        into cmt_cvs.cxx rather than inside the CVS pluggin...
3939
39402001-08-20  Christian Arnault  <carnault@lxplus028.cern.ch> 34
3941
3942        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
3943        recursive checkout process
3944
39452001-08-20    <arnault@lal.in2p3.fr> 33
3946
3947        * src\cmt_cvs.cxx (class CvsImplementation): Reorganizing some CVS operations:<ul>
3948          <li> Apply the CMTCVSOFFSET env. variable to all actions (tags, branches, subpackages)
3949          <li> cleanup checkout algorithms (remove some obsolete variables)
3950          <li> add the -requirements <requirements-file-path> option to checkout according to
3951            a set of use statements.
3952          <li> remove the inheritance to Awk of CvsImplementation to split the filter into 2
3953            phases (implemented as 2 separated Awk derived classes) RecursivePass1 and
3954            RecursivePass2.</ul>
3955
39562001-08-16  Christian Arnault  <carnault@lxplus046.cern.ch> 32
3957
3958        * src/cmt_symbol.cxx (print): Bug in path_remove when the
3959        specified path variable only contained one item : the remove
3960        operation was not applied.
3961
39622001-07-20  Christian Arnault  <arnault@lal.in2p3.fr> 31
3963
3964        * src/cmt_version.h: setting the patch v1r9p20010720
3965
39662001-07-20  Christian Arnault  <carnault@lxplus019.cern.ch> 30
3967
3968        * src/cmt_regexp.h (cmt_regexp::begin): Add an optional pos
3969        argument to the begin method.
3970
3971        * doc/CMTDoc.html: Improvements, English cleanup...
3972
39732001-07-18  Christian Arnault  <carnault@lxplus041.cern.ch> 29
3974
3975        * src/cmt_cvs.cxx (CvsImplementation::checkout_package): Change
3976        the mechanism to get top files, since the " -d . " does not work
3977        anymore when CVSROOT is set to kserver!!!!
3978
39792001-07-16  Christian Arnault  <carnault@lxplus030.cern.ch> 28
3980
3981        * doc/CMTDoc.html: Old PREFIX fragment variable has been replaced
3982        by FILEPATH long ago. This was not upgraded in the doc.
3983
3984        * fragments/constituent: The -f <file> MUST be specified BEFORE
3985        other Make flags!!
3986
3987        * fragments/dependencies: Tried to comment out the dependencies to
3988        cmt_path.make etc... but it confused the dependencies fragment
3989        production. Uncomment it but need to understand the side effect.
3990
39912001-07-09  Christian Arnault  <carnault@lxplus012.cern.ch> 27
3992
3993        * src/cmt_generator.cxx (build_readme): Bug: the VERSION variable
3994        was not used for installing the readme_trailer (although the
3995        documentation was mentioning it)
3996
39972001-07-04  Christian Arnault  <carnault@lxplus034.cern.ch> 26
3998
3999        * src/cmt_version.h: setting the patch v1r9p20010704
4000
40012001-07-02  Christian Arnault  <carnault@lxplus034.cern.ch> 25
4002
4003        * fragments/dependencies: Cleaning some old debug printouts.
4004
4005        * src/cmt_cvs.cxx (class CvsImplementation): Bug in replacing the
4006        wild card expression. v5r* has to be replaced by v5r0 while v5*
4007        has to be replaced by v5 in case no matching tag exists in the CVS
4008        repository.  Other bug : All split operations should be performed
4009        against " \t" (include tab character)
4010
40112001-06-29  Christian Arnault  <carnault@lxplus047.cern.ch> 24
4012
4013        * src/cmt_cvs.cxx (class CvsImplementation): Final Validation of
4014        the change in the implementation of the m_installed stack used to
4015        avoid recursion due to dependency cycles.
4016
40172001-06-22  Christian Arnault  <carnault@lxplus020.cern.ch> 23
4018
4019        * src/cmt_cvs.cxx (class CvsImplementation): doing some
4020        optimizations for the big checkout operations.
4021
4022        * src/cmt_parser.cxx (do_config): Remove .[n]make files also from
4023        the binary directory.
4024
4025        * src/cmt_cvs.cxx (class CvsImplementation): Always fetch the cmt
4026        branch at HEAD even if the checkout operation is applied to a
4027        required tag (temporary feature).
4028
40292001-06-18    <arnault@lal.in2p3.fr> 22
4030
4031        * src\cmt_cvs.cxx (class CvsImplementation): insert a space
4032        between top tags and other tags.
4033
4034        * mgr\cmt_make_shlib.bat: Write extra options received through
4035        arguments into a temporary option file, used by @<optionfile> to
4036        resolve line-too-long prolems.
4037
4038        * fragments\nmake\cpp_library:
4039        * fragments\nmake\cpp:
4040        Add the /Tp qualifier for allowing non-standard file suffixes.
4041
40422001-06-05  Christian Arnault  <arnault@lal.in2p3.fr> 22
4043
4044        * src/cmt_use.cxx (class use_action_iterator): Default to the
4045        -no_auto_import was to keep the most recent specification. Change
4046        this to always request auto_import by default, (unless otherwise
4047        specified)
4048
40492001-06-01  Christian Arnault  <arnault@lal.in2p3.fr> 22
4050
4051        * src/cmt_parser.cxx (do_broadcast): Bug fix in do_broadcast: the
4052        -begin option wrongly implied the -global option.
4053
40542001-06-13    <arnault@lal.in2p3.fr> 22
4055
4056        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
4057        strategy for getting version tags from the repository:
4058          o If a request specifies a tag which is not applied to the
4059            requirements file, the specified tag is used to create the
4060            version directory but the HEAD is used in the repository.
4061          o CvsImplementation::show_cvs_infos () :
4062            stores all received infos into xxx_info corresponding
4063            local properties. Thus this method is only called once per
4064            package.
4065          o Error messages are really obtained from the error_info field.
4066
40672001-05-30  Christian Arnault  <arnault@lal.in2p3.fr> 22
4068
4069        * src/cmt_generator.cxx (build_document_makefile):
4070        * src/cmt_system.cxx (get_dot_suffix): fix bug for file_names
4071        without any suffix
4072
4073        * src/cmt.h & src/cmt_parser.cxx (set_standard_macros): Add a
4074        state standard_macros_done to protect against multiple calls to
4075        set_standard_macros.
4076
40772001-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 22
4078
4079        * src/cmt_cvs.cxx (class CvsImplementation): display the tags in a
4080        one-per-line basis instead of space separated when doing cmt
4081        cvstags.
4082
4083        * src/cmt_use.cxx (operate): Make the version selector operator a
4084        little bit more quiet...
4085
40862001-05-25  Christian Arnault  <arnault@lal.in2p3.fr> 22
4087
4088        * mgr/Makefile (demo): improve the gmake check action in the demo
4089        target.
4090
4091        * src/cmt_use.cxx (fill_macro_all): build use_xxx standard macros
4092        using macro_append instead of macro.
4093
40942001-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 22
4095
4096        * src/cmt_parser.cxx (do_broadcast): Fix the default (-local)
4097        option to act as -depth=1.
4098        Improve some error messages.
4099
41002001-05-21    <arnault@lal.in2p3.fr> 21
4101
4102        * src\setup.bat: Improved skeleton for setup.bat. Base it on
4103        CMTBIN rather than on CMTCONFIG. Do not override CMTCONFIG if
4104        defined by the user. Do not care about PATH for Visual tools.
4105
4106        * mgr\install.mak: change the strategy for building the setup.bat
4107        script for CMT itself at INSTALL time. Now copy ..\src\setup.bat
4108        skeleton.
4109
4110        * mgr\requirements: Fix WIN32/VisualC tag definitions and PATH
4111        settings for cleaner handling of default tag overriding.
4112
4113        * src\cmt_use.cxx (operate): Implement the algorithm for using
4114        aliases to alternate version specification in uses.
4115
4116-------------------------------------------------------------------------------------
41172001-05-18  Christian Arnault  <arnault@lal.in2p3.fr> 21
4118
4119        -> Tag CMTv1r9p20010521
4120
4121        * src/cmt_use.cxx (show_sub_uses): Start the implementation of
4122        version_alias and path_alias for equivalencing two version naming
4123        policies.
4124
4125        * src/cmt_cvs.cxx (class CvsImplementation): Adding the -o offset
4126        option to cmt checkout for specifying a global offset to the base
4127        CVS repository. This offset will be prepended to all modules
4128        during the various CVS operations.
4129
4130        the m_offset attribute is added to the CvsImplementation class.
4131
4132        (class CvsImplementation): Improve protection against CVS modules
4133        not found.
4134       
4135        (class CvsImplementation): Added the --help option the cmt checkout.
4136
41372001-07-10  Christian Arnault  <carnault@lxplus017.cern.ch> b-21
4138
4139        * mgr/requirements: add the -tag=$(tag) option to the
4140        build_dependencies macro.
4141
4142        * fragments/dependencies: take the improvements into account.
4143
4144        * src/cmt_generator.cxx (build_dependencies): Improve the
4145        dependency builder: re-generate all entries of the
4146        <constituent>_dependencies.make that are missing from the complete
4147        source list (thus regenerate it when it is empty).
4148        Optimize the file scan for getting the new source list.
4149
4150        * src/cmt_parser.cxx (do_build_dependencies): Dynamically shifts
4151        arguments of the build dependencies command to keep only the
4152        new-source-list. The complete command being
4153        "cmt <args> build dependencies <constituent-name> <new-source-list>"
4154       
4155        (do_config): drop all makefile fragments from the mgr/cmt
4156        directory AND from the binary directory.
4157
41582001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 20
4159
4160        * Moving to v1r8
4161       
4162       
41632001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 19
4164
4165        * src/cmt_deps_builder.cxx (): Augmented local internal
4166        line buffer (from 1024 to 16384).
4167
4168        * doc/CMTDoc.html: document the new &lt;package>_root macro
4169
4170        * src/cmt_parser.cxx (set_standard_macros) (get_best_form): Define
4171        a new set of standard macros using the pattern <package>_root
4172        similar to <PACKAGE>ROOT except that this new definition uses the
4173        get_best_form, with a relative path to the package. The
4174        <PACKAGE>ROOT macro is restored to the previous convention, that
4175        it uses the absolute path.
4176       
4177        * src/cmt_use.cxx (fill_includes_macro): Adapt the
4178        fill_includes_macro to use the new <package>_root standard macro
4179
4180
41812001-05-10  Christian Arnault  <arnault@lal.in2p3.fr> 18
4182
4183        * src/cmt_parser.cxx (do_broadcast): Add the -begin=<pattern>
4184        option to start the broadcast loop from a given package. This
4185        option can be combined with other options such as -select or
4186        -exclude.
4187
4188        * src/cmt_generator.cxx (filter_paths): Suppress two unused
4189        variables.
4190
4191        * src/cmt_use.cxx (add): Bug fixing: during the discovery of
4192        versions requested for a given package, the discarded versions
4193        were not correctly replaced by the finally selected version,
4194        especially in the Use::get_paths method. The
4195        Use::get_selected_version has been added to obtain the effective
4196        replacement for a discarded version.
4197
4198        * fragments/check_application: suppress the ". setup.sh" before
4199        application run.
4200
42012001-05-04  Christian Arnault  <carnault@lxplus023.cern.ch> 17
4202
4203        * src/cmt_parser.cxx (set_standard_macros): The production of all
4204        use_xxx standard macros now is based on a "macro_append" keyword
4205        instead of "macro", since "macro" resets all previous
4206        definitions. Therefore if the user's requirements did augment
4207        those use_xxx macros, these specifications would be ignored.
4208       
4209        (do_broadcast): Set the -local option to broadcast the
4210        default. Add the -global option to revert to the old default (with
4211        no selection and to any depth)
4212
42132001-05-03  Christian Arnault  <carnault@lxplus019.cern.ch> 17
4214
4215        * src/cmt_symbol.cxx (add_value_to_list): A new macro or set
4216        keyword resets (discards) all previous definitions for the
4217        corresponding symbol.
4218
4219        * src/cmt_symbol.h (class SymbolValueList): Added an attribute
4220        discarded for symbol resetting.
4221
4222        * src/cmt_parser.cxx (print_macros): Exclude scripts from macros
4223        defined in the $(tag).make file.
4224
42252001-04-27  Christian Arnault  <carnault@lxplus022.cern.ch> 16
4226
4227        * src/cmt_parser.cxx (get_best_form): Validate the compression
4228        algorithm for paths to packages (only for the macro <PACKAGE>ROOT
4229        - this is still not true for the <PACKAGE>ROOT environment
4230        variable) into a relative form when it is shorter than the
4231        absolute form.
4232
4233        * src/cmt_system.cxx (compress_path): Fix the algorithm for
4234        compressing the patterns "aaaa/xxxx/../bbbb" into aaaa/bbbb.
4235
4236        * src/cmt_generator.cxx (filter_paths): use
4237        CmtSystem::compress_path instead of duplicating its algorithm for
4238        erasing "/aaa/.." patterns
4239
42402001-04-25  Christian Arnault  <carnault@lxplus022.cern.ch> 15
4241
4242        * src/cmt_parser.cxx (set_standard_macros): Prepare the production
4243        of <PACKAGE>ROOT macros as relative paths rather than absolute
4244        ones, when the relative expression is shorter than the absolute
4245        one. Temporarily, trigger that feature by setting the
4246        CMTTESTPREFIX environment variable until absence of side effects
4247        is confirmed.
4248
42492001-04-18  Christian Arnault  <carnault@atlas009.cern.ch> 15
4250
4251        * src/cmt_generator.cxx (build_readme): bug when generating the
4252        readme_trailer fragment : the PACKAGE variable should be reset to
4253        current.
4254
42552001-04-11  Christian Arnault  <arnault@lal.in2p3.fr> 15
4256
4257        * src/cmt_generator.h (class Generator):
4258        * src/cmt_parser.cxx (do_build_readme):
4259        * src/cmt.h (class Cmt): do_build_readme now propagates argument list
4260
4261        * fragments/readme_trailer:
4262        * src/cmt_generator.cxx (build_readme): Added DATE and USER information when building the README.html file. readme_trailer fragment updated accordingly.
4263       
4264        (build_readme): Add the -url=<url> argument to the cmt build
4265        readme command. The specified URL will be used in place of the
4266        package path when generating the URL for used packages.
4267
42682001-04-18  Christian Arnault  <arnault@lal.in2p3.fr> 14
4269
4270        * src/cmt_symbol.cxx (build): In all builder objects, symbol value
4271        lists registered by discarded Uses are now ignored.
4272
4273        * src/cmt_symbol.h (class SymbolValue): cleanup a comment.
4274
4275        * src/cmt_symbol.cxx (print): protect setup script execution
4276        against missing files.
4277
42782001-04-10  Christian Arnault  <arnault@lal.in2p3.fr> 13
4279
4280        * src/cmt_generator.cxx (build_readme):
4281        * fragments/readme_use: building readme.html requires to know the
4282        mgr/cmt style of each used package. This fragment now requires a
4283        fourth variable MGRSTYLE which reflects the use->mgr_style
4284        attribute. Generator::build_readme fills in this new variable.
4285
42862001-04-06  Christian Arnault  <arnault@lal.in2p3.fr> 12
4287
4288        * src/cmt_parser.cxx
4289        (reach_current_package): Use CmtSystem::getenv instead of base getenv
4290       
4291        * src/cmt_symbol.cxx (action): Now really private stuff is
4292        selected when access is at UserMode and scope is Private.
4293
4294        * src/cmt_use.cxx (add): This method does not need to maintain
4295        current scope and access mode any longer.
4296
4297        * src/cmt_parser.cxx (parse_requirements): Cmt::parse_requirements
4298        now manages the AccessMode and Scope when recursing into
4299        requirements files of used packages.
4300
4301        Cmt::scope          handles the sticky state provided by private/public statements
4302        Cmt::current_access handles the access mode that reflects the situation of the user
4303
4304        * src/cmt_parser.h (enum): introduce the AccessMode to distinguish
4305        between DeveloperMode (when pwd is in the current package
4306        directory) and UserMode (otherwise).
4307
4308        * src/cmt.h (class Cmt): Cmt::current_mode is now current_access
4309        and is of type AccessMode
4310
4311        * src/cmt_parser.cxx (reach_current_package): Use
4312        CmtSystem::getenv instead of base getenv
4313
4314        * src/cmt_use.cxx (Use::get_paths):
4315        * src/cmt_pattern.cxx (Pattern::apply ()) : bug in computing the
4316        path between two Uses. The result now includes the current Use.
4317
43182001-04-05    <arnault@lal.in2p3.fr> 12
4319
4320        * src\cmt_tag.cxx (Tag::add(const cmt_string& name, int priority):
4321        clear a newly created Tag object (to deal with the reuse of old
4322        objects)
4323
4324        * src\cmt_pattern.cxx (Pattern::add) : clear a newly created
4325        pattern object (to deal with the reuse of old objects)
4326
4327        * src\cmt_use.h (class Use): Add Use::author_action and
4328        Use::manager_action to fill in the author and manager information.
4329
4330        * src\cmt_parser.cxx (select): fill in author and manager values
4331        with the complete line. When several author and manager statements
4332        are provided, fill in as several lines (separated with a new-line).
4333
4334        * src\cmt_generator.cxx (analyze_file (const Constituent&
4335        constituent, const cmt_string& file) : production of objects for
4336        libraries and applications is strictly identical.
4337
43382001-04-03  Christian Arnault  <arnault@lal.in2p3.fr> 11
4339
4340        * src/cmt_constituent.cxx (clear): constituent.parameters was not
4341        cleared in Constituent::clear
4342
4343        * src/cmt_symbol.cxx (build): add cleanup ValueList objects after
4344        their addition for ensuring a really new value (due to cmt_string
4345        optimizing)
4346
43472001-04-03  Christian Arnault  <carnault@atlas006.cern.ch> 10
4348
4349        * mgr/Makefile: Operate the demo targets on different make action
4350        lines
4351
4352        * src/Makefile.header: Added -tag=$(tag) to cmt actions
4353
4354        * fragments/generator_header: create the output directory if
4355        needed
4356
43572001-04-02    <arnault@lal.in2p3.fr> 9
4358
4359        * fragments\nmake\constituent: added the -tag=$(tag) option to cmt
4360        build actions
4361
4362        * src\cmt_parser.cxx (parser): show_constituentxxx recursively
4363        reads used requirements files
4364
4365        * src\cmt_pattern.cxx (Pattern::apply () const): protection added
4366        for the case where the pattern is applied to the package that
4367        defines it.
4368
43692001-03-29  Christian Arnault  <carnault@atlas005.cern.ch> 8
4370
4371        * src/cmt_use.cxx (get_paths):
4372        * src/cmt_use.h (class Use):
4373        * src/cmt_pattern.h (class IgnorePattern):
4374        * src/cmt_pattern.cxx (const apply): Bug in apply global patterns
4375        : a pattern defined in one package should only be applied to the
4376        Uses that are on one of the paths between the current Use and the
4377        one wher the pattern is defined (and not to the Uses that never
4378        pretend to inherit that pattern!!!)
4379
4380        This required to implement the Use::get_paths which fills in the
4381        inclusive list of all Uses that are between two Uses.
4382
43832001-03-27  Christian Arnault  <carnault@lxplus017.cern.ch> 7
4384
4385        * fragments/dependencies: protection against missing dependency
4386        make fragment during clean operations.
4387
4388        * src/cmt_constituent.cxx (class constituents_action_iterator):
4389        the -suffix= option was hidden by the user variable specification
4390        while parsing the constituent parameters.
4391
43922001-03-23  Christian Arnault  <carnault@atlas007.cern.ch> 6
4393
4394        * mgr/requirements: clean up WIN32 tag variants definitions
4395
4396        * src/Makefile.header (setup.make): Display of the target in case
4397        of target not found (.DEFAULT)
4398
4399        * fragments/make_setup (csh): few checks
4400
4401        * fragments/installer: add the creation of $(install_dir) if
4402        needed
4403
44042001-03-21  Christian Arnault  <arnault@lal.in2p3.fr> 5
4405
4406        * src/cmt_parser.cxx (parse_arguments): When the tag specified in
4407        the command line arguments (using -tag=<tag>) is the same as
4408        CMTCONFIG, then still validate the tag given by uname
4409
4410        * fragments/dependencies: generate
4411        ${CONSTITUENT}_dependencies.make into $(bin)
4412
4413        * fragments/constituent: generate ${CONSTITUENT}.make into $(bin)
4414
4415        * src/cmt_constituent.cxx (parse):
4416        * src/cmt_constituent.h (class Constituent): Added the two-step
4417        parsing of the constituents specifications : first stage during
4418        parsing of the requirements file, parameters are simply stored in
4419        the constituent object and not interpreted. Second stage : after
4420        building the standard macros (once requirements files have
4421        entirely been read) then constituent objects are parsed.
4422
4423        * src/cmt_parser.cxx: Add Constituent::parse_all in
4424        Cmt::set_standard_macros to finalize the constituent
4425        parsing. Install set_standard_macros in several additional actions
4426
4427
4428
44292001-03-16  Christian Arnault  <arnault@lal.in2p3.fr> 4
4430
4431        * src/cmt_cvs.cxx (class CvsImplementation): Get the files at the
4432        top directory when doing a cmt checkout. 
4433
4434        Only checkout at head for the top package (ie do not recurse at
4435        head) and when -r is not specified.
4436
4437        * src/cmt_symbol.cxx (resolve_value_for_macros): Perform the
4438        substitution of ${} to %% (or reverse) even if the env. var. is
4439        not defined in CMT.
4440
4441        * src/cmt_parser.cxx (install_setup_scripts): Setup scripts on
4442        Windows generate the temporary expansion script in
4443        %HOMEDRIVE%%HOMEPATH%.
4444
44452001-03-16  Christian Arnault  <carnault@atlas009.cern.ch> 3
4446
4447        * mgr/requirements: clean up variants for VisualC and
4448        VisualC/debug
4449
44502001-03-15    <arnault@lal.in2p3.fr> 2
4451
4452        * src\cmt_use.cxx (class use_action_iterator): Strange name
4453        conflict: the use_action_iterator::set method is in conflict with
4454        something else when the class is named "action_iterator" (is it a
4455        conflict with the same private class defined in Symbol.cxx ??)
4456
4457        * src\NMakefile.header (cmtexe): Fix for re-building cmt when
4458        cmt.exe does not exist.
4459
44602001-03-13  Christian Arnault  <arnault@lal.in2p3.fr> 1
4461
4462        * src/cmt_use.cxx (class action_iterator): Introducing the
4463        action_iterator class for managing the local expansion of macros
4464        in the syntax parser (similart to what was done in Symbol::action)
4465
4466        * src/cmt_generator.cxx (Generator::build_make_setup) when
4467        generating setup.make, the default value for constituents is
4468        extracted from the constituents macro.
4469
44702001-03-06  Christian Arnault  <arnault@lal.in2p3.fr>
4471
4472        * src/cmt_cvs.cxx (class CvsImplementation): Show both top tags
4473        and non-top tags in cmt cvstags.
4474
4475        * doc/CMT.htm: Addition of several slide shows (from Atlas)
4476
4477        * mgr/cmt_buildcvsinfos2.sh (error): The awk script had to be
4478        protected against multiple ocurrences of the /symbols/,/locks/
4479        pattern.
4480
4481        Implement both in python and in shell script the differntiated
4482        production of top tags and non-top tags. Top tags are the set of
4483        tags sharing the most recent CVS tagged version id (ie. the HEAD
4484        may be more recent)
4485
44862001-03-05    <arnault@lal.in2p3.fr>
4487
4488        * src\cmt_parser.cxx (do_build_library_links): Handle libraries
4489        specified as a full path in <package>_libraries
4490
4491        * src\cmt_parser.cxx (print_context):
4492        * src\cmt_symbol.cxx (all_print): Use one line per
4493        env. var. assignment when generating setup scripts (instead of ;
4494        separated instructions) . The latter style should be no longer
4495        needed since we use temporary files.
4496
4497        * src\cmt_parser.cxx (set_standard_macros): Add CMTCONFIG to the
4498        standard sets, so as to let it known as a plain "symbol"
4499
45002001-03-02    <arnault@lal.in2p3.fr>
4501
4502        * src\cmt_system.h: introduce the CmtSystem::ev_open () and
4503        CmtSystem::ev_close () to get the OS-dependent pattern for
4504        environment variable definition.
4505
4506        * src\cmt_symbol.cxx (resolve_value_for_macros): Substitute
4507        patterns ${xxx} or %xxx% to the appropriate OS-dependent pattern
4508        when producing "set" values only (this is only done when the
4509        pattern is not already the good one)
4510
4511        * src\cmt_parser.cxx (install_setup_scripts): Changed
4512        >>${tempfile} into >${tempfile} in setup scripts (fix a constraint
4513        in csh)
4514
45152001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>
4516
4517        * src/cmt_parser.cxx (do_build_temporary_name): Add the build
4518        temporary_name command to supply that missing function on various
4519        shells.
4520        (install_test_setup_scripts): Apply this new build service to
4521        setup scripts generation.
4522
4523        * src/Makefile.header: Needed a trailing end-of-line
4524
45252001-02-15  Christian Arnault  <arnault@lal.in2p3.fr>
4526
4527        * src/cmt_cvs.cxx (class CvsImplementation): Fix misuse of
4528        checkout_package arguments (confusion between package path and
4529        checkout directory)
4530
45312001-02-26    <arnault@lal.in2p3.fr>
4532
4533        * src\cmt_parser.cxx (install_test_setup_scripts): use mktemp for
4534        setup scripts.
4535
4536        * mgr\requirements: Suppress local private configuration of
4537        MSVC++. It has to be done previously to operate on CMT (even
4538        before making the INSTALL.bat)
4539
45402001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>
4541
4542        * src/cmt_deps_builder.cxx ((char* ptr,
4543                              state_def& state,
4544                              const cmt_string& dir_name,
4545                              int current_path_index,
4546                              const CmtSystem::cmt_string_vector& include_paths,
4547                              const CmtSystem::cmt_string_vector& substitutions,
4548                              CmtSystem::cmt_string_vector& all_deps,
4549                              CmtSystem::cmt_string_vector& deps)
4550        * src/cmt_generator.cxx ((const cmt_string& file_name)
4551
4552        Rollback recent change to work on cmt_strings rather than char* to
4553        restore speed.
4554
45552001-02-15  Christian Arnault  <arnault@lal.in2p3.fr>
4556
4557        * src/cmt_generator.cxx (build_dependencies): Restore the
4558        mechanism that takes into account the arguments, and the source
4559        list when -all_sources option is provided.
4560
4561        * mgr/requirements: change /machine:I386 into /machine:IX86 as
4562        link option for VisualC
4563
45642001-02-13    <arnault@lal.in2p3.fr>
4565
4566        * src\cmt_generator.cxx (build_dependencies): Do not require the
4567        source list from the arguments. Instead, get the sources directly
4568        from the constituents definition.
4569
4570        The "cmt build dependencies" now only requires the constituent name.
4571
4572        * src\cmt_deps_builder.cxx: Read files at once into a cmt_string
4573        and work from the text instead of reainf line by line from the file.
4574
4575        Install the detection of fortran include statements
4576
45772001-02-06    <arnault@lal.in2p3.fr>
4578
4579        * src\cmt_use.cxx: clean up space & tabs
4580
4581        * cmt_parser.cxx (parse_requirements_text): Abort the parser in
4582        case of error, but only for check configuration command.
4583
4584        * NMakefile.header (lex_echo): Add -quiet option to cmt command
4585        except cmt check configuration
4586       
4587        * constituents.nmake: Add -quiet option to cmt command
4588
45892001-01-30    <arnault@lal.in2p3.fr>
4590
4591        * all dsp fragments : suppress the Win32 Release
4592        configuration. Only keep the Win32 Debug. This makes possible the
4593        generation of msdev using the syntax cmt build msdev
4594        -tag=VisualCdbg
4595
45962001-01-30    <arnault@lal.in2p3.fr>
4597
4598        * mgr/cmt_buildcvsinfos.py: first attempt to make the cvs script
4599        written in Python
4600
4601        * mgr/requirements: Consistently base Windows tag on VisualC rather
4602        than WIN32
4603
4604        upgraded setup.tcsh setup.zsh
4605
4606        introduced cmt show include_dirs
4607       
4608        introduced cmt show constituent <name>
4609
4610        bug in Pattern::add : overridden patterns were not cleared.
4611
4612        cmt config must recursively get used packages (at least to get patterns)
4613
4614        introduced cmt show pattern_names (at least for completion mechanisms)       
4615          new action : action_show_pattern_names
4616
4617        experimental work started on build triggers
4618       
4619          macro build_triggers
4620                implied_library_prefix
4621                implied_library_sufffix
4622
4623          new library option -triggers
4624          new constituent attribute build_triggers
4625          new fragment dependencies_and_triggers for libraries
4626
4627        bug in cmt_system.cxx::scan_dir
4628
4629        Recursively get all requirements file in cmt config action
4630
4631
4632        Changed strategy for argument parsing error detection
4633       
46342001-01-30    <arnault@lal.in2p3.fr>
4635
4636        * cmt_use.cxx ((const cmt_string& from_path) : bug in detection of
4637        "use pack " without version specification at all (ie equiv. to
4638        *). We needed to check we are on a real CMT package.
4639
4640        * cmt_constituent.cxx (class action_iterator): Expand the macros
4641        before acting upon a constituent specification. Each expanded word
4642        may then result in several words. Thus the line parser is
4643        re-implemented through a local operator class "action_iterator",
4644        in charge of filling up a new constituent object from the expanded
4645        statement. (Note that this mechanism could perfectly be reused for
4646        other statements eg "use" !!!)
4647
4648        * cmt_parser.cxx (set_standard_macros): Implement all_constituents
4649        and all_constituentsclean unconditionally.
4650
4651        * NMakefile.header (checkuses): if defined statements require that
4652        the macro to test is provided without quotes.
4653
4654        * cmt_generator.cxx: Apply the new convention of installing object
4655        files into $(bin)${CONSTITUENTS} also for applications (was only
4656        done for libraries)
4657
4658        * cmt_parser.cxx (print_context): Take the current CONFIG name
4659        from CmtSystem::get_cmt_config rather than recursively calling
4660        "cmt system", when generating setup scripts.
4661
4662        * cmt_cvs.cxx (class CvsImplementation): Use '/' ínstead of
4663        CmtSystem::file_separator for CVS-only file specs.
4664
46652000-12-26    <arnault@lal.in2p3.fr>
4666
4667        * cmt_fragment.h (class Fragment and FragmentHandle): Install all
4668        variants of (win)copy methods that act upon a cmt_string instead
4669        of a FILE*.
4670
4671        * cmt_model.cxx: Create the implementation file for CmtModel
4672
4673        * cmt_model.h (class CmtModel): Create the CmtModel class
4674
4675        * cmt_parser.cxx (do_expand_model): Add the new command verb :
4676        'expand model' and all associated features
4677        (do_expand_model): call the CmtModel::expand
4678
Note: See TracBrowser for help on using the repository browser.