source: CMT/v1r18p20051101/ChangeLog

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

Permit version directories not starting with a letter - see CL 291

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