source: CMT/v1r16p20040901/ChangeLog

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

Import all tags

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