source: CMT/v1r19/ChangeLog @ 9

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

Temporary step for project management

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