source: CMT/HEAD/ChangeLog @ 80

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

Bug fixes - see CL#276

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