source: CMT/v1r18p20050401/ChangeLog

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

finalizing release

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