source: CMT/HEAD/ChangeLog @ 86

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

Fix for CYGWIN

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