source: CMT/v1r18p20050501/ChangeLog @ 51

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

fix bug in standard macro settings - see CL 272-1

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