source: CMT/HEAD/ChangeLog @ 82

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

Make include_dirs subject to private sections - see CL#277

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