source: CMT/HEAD/ChangeLog @ 46

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

Prepare new release v1r18p20050501

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