source: CMT/v1r19/ChangeLog @ 1

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

Import all tags

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