source: CMT/HEAD/ChangeLog @ 515

Last change on this file since 515 was 515, checked in by rybkin, 15 years ago

See C.L. 404

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-trac-wiki
File size: 250.3 KB
RevLine 
[515]12009-07-15    <rybkin@lal.in2p3.fr> 404
2
3        * source/cmt_system.cxx: In function CMTPathManager::do_add_cmt_path, ensure
4        that CMTUSERCONTEXT or CMTHOME is not set as parent project for other
5        projects. In function CmtSystem::get_cmt_paths, create CMTUSERCONTEXT and/or
6        CMTHOME projects before projects from CMTPATH so that their source does not
7        change after sourcing a setup script
8        * source/cmt_project.h: In function Project::visit, add offset parameter
9        * source/cmt_project.cxx: In function ProjectFactory::create_project, do not
10        make CMTUSERCONTEXT or CMTHOME project top project because it has no parent,
11        or add it as child to the top project. In function
12        Project::ordered_projects, make CMTUSERCONTEXT first and CMTHOME last
13        project, if existent, with the child - the next, and the parent - last but
14        one project in order respectively. In functions Project::fill_selection,
15        Project::show_all make use of Project::ordered_projects. In function,
16        Project::visit, make use offset parameter, when reordering projects, put the
17        child project right after the parent project. In function Project::show,
18        ensure the project is shown once
19        * source/cmt_use.cxx: In function Use::get_strategy, fix the search of the
20        project for a use (in case the use has an offset), make use of function
21        Project::ordered_projects instead of Project::projects function
22       
[514]232009-07-01    <rybkin@lal.in2p3.fr> 403
24       
25        * mgr/cmt_svn_checkout.py: Introduce a version working on Windows. Do not
26        use module commands, instead, in class Utils, introduce portable (static)
27        methods getstatusoutput, getstatuserror, and make use of them
28       
[513]292009-06-27    <rybkin@lal.in2p3.fr> 402
30       
31        * mgr/cmt_svn_checkout.py: Introduce the version using the Subversion CLI
32        (rather than Subversion Python bindings). Introduce the CMTHEADVERSION
33        environment variable to hold the string that is written into the
34        version.cmt file on "cmt checkout" of the package's trunk when it is
35        different from any existing tag. The value may contain the templates
36        <package>, <PACKAGE>, <revision>, where <revision> is replaced with
37        last_changed_rev of the trunk. Use "cmt -q config" and always return 0 from
38        function generate of CmtContext to avoid error messages even when the
39        function actually succeeds. Treat URL, OFFSET, PATH as (Subversion scheme)
40        URLs, introduce function urljoin (using "the last wins algorithm") to
41        construct the checkout URL from them
42        * mgr/requirements: For Linux, set macro svn_checkout_command to use the
43        Python in the PATH to execute mgr/cmt_svn_checkout.py
44       
[512]452009-06-18    <rybkin@lal.in2p3.fr> 401
46       
47        * mgr/cmt_svn_checkout.py: Introduce function trunk_tag to determine
48        the tag of the module's trunk
49       
[507]502009-05-23    <rybkin@lal.in2p3.fr> 400
51       
52        * src/NMakefile.core: Fix a typo
53        * mgr/fragments/cmt_action_runner_header: Remove ${CONSTITUENT}_dependencies
54        as it is dealt with in constituents.make, cannot be dealt here anyway (but
55        may only generate a warning)
56       
[504]572009-05-20    <rybkin@lal.in2p3.fr> 399
58       
59        * source/cmt_parser.cxx: In function set_standard_macros, if the Verbose
60        level is activated, check whether the names of different packages in upper
61        case coincide and issue a warning appropriately
62        * source/cmt_pattern.cxx: In function ApplyPattern::action, add the package
63        name (and offset) to the warning message about an undefined pattern
64       
[503]652009-05-19    <rybkin@lal.in2p3.fr> 398
66       
67        * source/cmt_parser.cxx: In function fill_for_use_requirements, build the
68        macro making use of macros <package>_root rather than <PACKAGE>ROOT to
69        avoid ambiguity if the names of different packages in upper case coincide
70       
[502]712009-05-18    <rybkin@lal.in2p3.fr> 397
72       
73        * mgr/fragments/library: Pass all objects as arguments to macro ar to allow
74        the macro to be "libtool -o" for Darwin. Rebuild static library completely
75        whenever an object changes to be consistent on all systems
76        * mgr/requirements: For Darwin, build statically linked (archive) libraries
77        with "libtool", the recommended way. For Linux, use the system Python in
78        svn_checkout_command to ensure the Subversion Python bindings installed
79        on the system are used
80       
[501]812009-05-15    <rybkin@lal.in2p3.fr> 396
82       
83        * source/cmt_project.cxx: In function Project::add, print a diagnostic
84        message only if the Verbose level is activated
85        * mgr/cmt_lsb_system_version.sh: Make the script more generic
86        * mgr/cmt_svn_checkout.py: Update the version
87       
[500]882009-05-05    <rybkin@lal.in2p3.fr> 395
89       
90        * mgr/cmt_svn_checkout.py: Improve error messages (string representation
91        of SubversionException is simply a tuple)
92       
[499]932009-05-04    <rybkin@lal.in2p3.fr> 394
94       
95        * mgr/cmt_linux_version.sh: Take into account Fedora distribution, make
96        the output of the form DISTRIBUTION-VERSION where VERSION has the `.'s
97        unchanged so that is possible to filter the major and minor versions later
98       
[498]992009-04-29    <rybkin@lal.in2p3.fr> 393
100       
101        * mgr/cmt_svn_checkout.py: To allow for checkout of branch tags
102       
[497]1032009-04-29    <rybkin@lal.in2p3.fr> 392
104       
105        * source/cmt_system.cxx: In function CmtSystem::execute, return -1 on
106        failure and return status of the command otherwise
[498]107        * source/cmt_vcs.cxx: Ensure "cmt checkout" command exit status is set to
[497]108        a nonzero value on error. In particular, in function execute_and_retry, on
109        failure, exit with the exit status of the last failed command, in function
110        check_protocol, on failure, exit with 1, also make use of CmtError::set
111        when appropriate
112        * mgr/cmt_svn_checkout.py: Catch ImportError exception in case Subversion
113        Python bindings cannot be imported
114       
[496]1152009-04-27    <rybkin@lal.in2p3.fr> 391
116       
117        * source/cmt_error.h: Add an error configuration_error
118        * source/cmt_error.cxx: idem
119        * source/cmt_commands.cxx: Set CmtError::syntax_error for "cmt checkout"
[498]120        command when appropriate to ensure the exit status is set to a nonzero
[496]121        value on error. Add the mention of SVN to help message
122        * source/cmt_vcs.h: Declare generic CVS-like checkout class Vcs (for
123        Version Control System) and Subversion checkout class Svn
124        * source/cmt_vcs.cxx: Implement Vcs, Svn classes. The choice between CVS
125        and Subversion is made based on which environment variable - CVSROOT or
126        SVNROOT - is set. Svn uses the command specified via macro
127        svn_checkout_command for checkout from Subversion repository. CVS checkout
128        is still done via Cvs::checkout
129        * source/cmt_parser.cxx: Add the possibility to do checkout from Subversion
130        repository by making use of class Vcs to implement "cmt checkout" command.
131        After help message is printed, return a nonzero value from Cmt::parser on
132        error
133        * mgr/requirements: For Linux, Darwin, and Windows, set macro
134        svn_checkout_command to mgr/cmt_svn_checkout.py. Replace cmt_cvs.cxx with
135        cmt_vcs.cxx
136       
[495]1372009-04-20    <rybkin@lal.in2p3.fr> 390
138       
139        * mgr/cmt_svn_checkout.py: Add script to checkout CMT package(s) from
140        Subversion repository
141       
[494]1422009-04-07    <rybkin@lal.in2p3.fr> 389
143       
144        * source/cmt_pattern.cxx: Print a warning message when an undefined pattern
145        is referenced with the Verbose level activated
146       
[493]1472009-03-28    <rybkin@lal.in2p3.fr> 388
148       
149        * mgr/fragments/cleanup_header: For the DEFAULT target, add a check
150        in case the file recording the package setup is referred to by the
151        older name
152       
[492]1532009-03-15    <rybkin@lal.in2p3.fr> 387
154       
155        * mgr/fragments/constituent: Restore the dependency of
156        $(cmt_local_${CONSTITUENT}_makefile) on $(${CONSTITUENT}_dependencies).
157        For the constituent makefile to be generated properly, the constituent
158        source files have to exist. The latter may be generated as a result of
159        building other constituent(s). Discard the ${CONSTITUENT}clean dependency
160        on $(cmt_local_${CONSTITUENT}_makefile). Make ${CONSTITUENT}uninstall
161        also depend on $(${CONSTITUENT}uninstall_dependencies) and compute the
162        latter to insure that uninstallation be done in reverse build order
163        * mgr/fragments/constituent_lock: idem
164        * mgr/fragments/nmake/constituent:  Restore the dependency of
165        $(cmt_local_${CONSTITUENT}_makefile) on $(${CONSTITUENT}_dependencies) as
166        detailed above. Discard the ${CONSTITUENT}clean dependency
167        on $(cmt_local_${CONSTITUENT}_makefile). Make ${CONSTITUENT}uninstall
168        independent of $(cmt_local_${CONSTITUENT}_makefile) but rather generate the
169        latter in the rule command, if non-existent
170        * mgr/fragments/nmake/constituent_lock: idem
171        * mgr/fragments/check_application_header: Discard the ${CONSTITUENT}check
172        dependency on $(cmt_local_${CONSTITUENT}_makefile) but rather generate the
173        latter in the rule command, if non-existent
174        * mgr/fragments/nmake/check_application_header: idem
175        * mgr/cmt_lockfile.sh: Use POSIX conformant syntax for the test utility
176        * mgr/fragments/nmake/library: Improve control of NMake verbosity
177        * mgr/fragments/nmake/library_no_share: idem
178        * mgr/fragments/nmake/library_no_static: idem
179       
[491]1802009-02-11    <rybkin@lal.in2p3.fr> 386
181       
182        * mgr/fragments/cleanup_header: Use POSIX conformant syntax for the expr
183        utility
184       
[490]1852009-02-05    <rybkin@lal.in2p3.fr> 385
186       
187        * mgr/cmt_mac_version.sh: Add script to optimise the retrieval of the
188        Mac OS version
189        * mgr/requirements: Make use of the added script
190       
[489]1912009-02-02    <rybkin@lal.in2p3.fr> 384
192       
193        * mgr/requirements: Under Windows, add a trailing space to the make action
194        definition so that the trailing backslash (\) in $(bin) is not followed by
195        a newline character when the action is executed via NMake (NMake interprets
196        a backslash followed by a newline character as a space in the command)
197       
[488]1982009-01-30    <rybkin@lal.in2p3.fr> 383
199       
[490]200        * source/cmt_generator.h: In class CmtGenerator, introduce member
[488]201        m_HASDEPENDENCIES
202        * source/cmt_generator.cxx: idem
203        * source/cmt_generators.cxx: Depending on whether the constituent needs
[490]204        the generation of dependencies, set m_HASDEPENDENCIES appropriately and
[488]205        fill the makefiles fragments with the value
206        * mgr/fragments/nmake/constituent: Implement the generation of
[490]207        dependencies depending on the files modifications rather than every time
[488]208        NMake is run
209        * mgr/fragments/nmake/constituent_lock: idem
210        * mgr/fragments/nmake/dependencies: idem
211        * mgr/fragments/nmake/cpp: idem
212        * mgr/fragments/nmake/cpp_library: idem
213        * mgr/fragments/nmake/c: idem
214        * mgr/fragments/nmake/c_library: idem
215        * mgr/fragments/nmake/fortran: idem
216        * mgr/fragments/nmake/fortran_library: idem
217        * mgr/fragments/nmake/yacc: idem
218        * mgr/fragments/nmake/yacc_library: idem
219        * mgr/fragments/nmake/lex: idem
220        * mgr/fragments/nmake/lex_library: idem
221        * mgr/fragments/nmake/make_header: idem
222        * mgr/fragments/nmake/constituents_trailer: Fix a typo
223        * mgr/fragments/nmake/cmt_action_runner: Introduce NMake version of the
224        file
225        * mgr/requirements: Under Windows, build the stamps files for dependencies
226        by default (as under Linux, Darwin)
227        * mgr/cmt_format_deps.bat: Use the type command to create the stamps files
228        * mgr/fragments/constituents_header: Introduce the makefiles target to only
229        build all the makefiles
230        * mgr/fragments/constituent: idem
231        * mgr/fragments/constituent_lock: idem
232       
[487]2332009-01-08    <rybkin@lal.in2p3.fr> 382
234       
235        * source/cmt_parser.cxx: In function Cmt::do_show_groups, ensure that the
236        constituents are parsed so that command "cmt show groups" is functional
237        * src/Makefile.header: Make the READONLY mode obsolete (the relocation
238        of the binary build directory provides this functionality as well).
239        Change the name of the file recording the setup to $(bin)setup.make and
240        generate it here. Do not specify the first, config targets. Add the
241        uninstall targets to the help message
242        * mgr/fragments/constituents_header: Make the READONLY mode obsolete.
243        Change the name of the file recording the setup to $(bin)setup.make and
244        do not generate it here. Remove the first, config, checkuses targets
245        * mgr/fragments/constituent: Make the READONLY mode obsolete.
246        Change the names of the files recording the setup to $(bin)setup.make and
247        $(bin)setup_${CONSTITUENT}.make, do not override the latter when identical
248        (see C.L. 233). Make $(cmt_local_${CONSTITUENT}_makefile) only depend on
249        $(cmt_local_tagfile_${CONSTITUENT}). Make ${CONSTITUENT}clean also depend
250        on $(cmt_local_${CONSTITUENT}_makefile)
251        * mgr/fragments/constituent_lock: idem
252        * mgr/fragments/make_header: Make the READONLY mode obsolete.
253        Change the names of the files recording the setup to $(bin)setup.make and
254        $(bin)setup_${CONSTITUENT}.make. Add a rule with an empty command for
255        $(use_requirements) for optimisation.
256        * mgr/fragments/cmt_action_runner_header: Improve control of Make verbosity
257        * mgr/fragments/protos_header: idem
258        * mgr/fragments/buildproto: idem
259        * mgr/fragments/cleanup_objects: Clean up per object file dependencies
260        files and stamps
261        * mgr/fragments/library: idem
262        * mgr/fragments/library_no_share: idem
263        * mgr/fragments/library_no_static: idem
264        * mgr/fragments/dependencies: Do not include dependencies fragment in the
265        constituent makefile when "make uninstall" is run
266        * mgr/fragments/c: idem
267        * mgr/fragments/c_library: idem
268        * mgr/fragments/cpp: idem
269        * mgr/fragments/cpp_library: idem
270        * mgr/fragments/cleanup_library: Fix for the clean command
271        * mgr/fragments/check_application_header: Improve control of Make verbosity,
272        make ${CONSTITUENT}check depend on $(cmt_local_${CONSTITUENT}_makefile)
273        * mgr/fragments/check_application: Specify the application path when
274        running it (so that the command does not fail if . is not in the PATH)
[490]275        * mgr/fragments/constituents_trailer: Minor change to diagnostic messages
[487]276        * mgr/fragments/cleanup_application: idem
277        * mgr/fragments/cleanup_header: Replace cd . with an empty command
278        * mgr/cmt_uninstall_action.sh: Ensure that dangling symbolic links can be
279        uninstalled
280        * src/NMakefile.header: Improve the help message, make it the same as for UNix-like
281        systems. In the QUICK mode, generate $(cmt_constituents_makefile) if non-existent
282        * mgr/fragments/nmake/constituents_header: Do not override the $(bin)setup.nmake
283        when identical (see C.L. 233). In the QUICK mode, generate $(cmt_local_tagfile)
284        if non-existent. Add diagnostic messages
285        * mgr/fragments/nmake/constituent: Change the names of the files recording
286        the setup to $(bin)setup.nmake and $(bin)setup_${CONSTITUENT}.nmake, do not
287        override the latter when identical (see C.L. 233).
288        Make $(cmt_local_${CONSTITUENT}_makefile) only depend on
289        $(cmt_local_tagfile_${CONSTITUENT}). Make ${CONSTITUENT}clean also depend
290        on $(cmt_local_${CONSTITUENT}_makefile).
291        In the QUICK mode, generate $(cmt_local_tagfile_${CONSTITUENT}) if non-existent
292        * mgr/fragments/nmake/constituent_lock: idem
293        * mgr/fragments/nmake/cmt_action_runner_header: Improve control of Make verbosity
294        * mgr/fragments/nmake/protos_header: idem
295        * mgr/fragments/nmake/buildproto: Introduce NMake version of the file
296        * mgr/fragments/nmake/cpp: Fix a typo
297        * mgr/fragments/nmake/cpp_library: idem
298        * mgr/fragments/nmake/c: idem
299        * mgr/fragments/nmake/c_library: idem
300        * mgr/fragments/nmake/application: Remove the connection between clean and
301        uninstall targets - same as the for Unix-like systems (see C.L. 246)
302        * mgr/fragments/nmake/library: idem
303        * mgr/fragments/nmake/library_no_share: idem
304        * mgr/fragments/nmake/library_no_static: idem
305        * mgr/fragments/nmake/jar: idem
306        * mgr/fragments/nmake/java_header: idem
307        * mgr/fragments/nmake/install_includes_header: idem
308        * mgr/fragments/nmake/dependencies: Do not attempt to include the dependencies
309        file if non-existent
310        * mgr/fragments/nmake/group: Make ${GROUP} also depend on
311        $(${GROUP}_dependencies)
312        * mgr/fragments/nmake/check_application_header: Improve control of Make verbosity,
313        make ${CONSTITUENT}check depend on $(cmt_local_${CONSTITUENT}_makefile)
314        * mgr/fragments/nmake/make_header: Change the names of the files recording the
315        setup to $(bin)setup.nmake and $(bin)setup_${CONSTITUENT}.nmake. Add a rule with
316        an empty command for $(use_requirements) for optimisation
317        * mgr/fragments/nmake/constituents_trailer: Remove the connection between
318        binclean and clean targets to make the former a fast removal of $(bin)
319        * mgr/fragments/nmake/cleanup_header: Add a clean target dependent on
320        ${CONSTITUENT}clean
321       
[486]3222008-12-17    <rybkin@lal.in2p3.fr> 381
323       
324        * source/cmt_language.h: In class Language, replace the members
325        dependencies_options, native_dependencies with m_dependencies_options,
326        m_native_dependencies and make them private, introduce member functions
327        to retrieve the values and to setup m_native_dependencies member on demand
328        for the language(s) that is/are actually used (rather than for all known)
329        * source/cmt_language.cxx: Implement the introduced functions
330        dependencies_options and native_dependencies
331        * source/cmt_generators.cxx: Make use of Language::dependencies_options ()
332        and Language::native_dependencies () functions
333        * source/cmt_generator.cxx: In function CmtGenerator::fill_names_outputs,
334        replace parts of the sources paths (m_LINE) with standard macros, if
335        possible
336        * mgr/fragments/document_header: Improve diagnostic messages by using the
337        standard macros
338       
[485]3392008-12-15    <rybkin@lal.in2p3.fr> 380
340       
341        * source/cmt_parser.cxx: In functions fill_for_use_libraries and
342        fill_for_all_constituents, discard the previous modification concerning the
343        use_libraries and <constituent>_libraries macros. This is in order to be
344        consistent with the command "cmt build library_links" that creates symlinks
345        based on the used packages macro <package>_libraries regardless of the
346        -no_auto_imports options
347       
[484]3482008-12-14    <rybkin@lal.in2p3.fr> 379
349       
350        * source/cmt_parser.cxx: In function fill_for_use_stamps, ensure that the
351        use_stamps macro is set taking into account the -no_auto_imports options,
352        in function fill_for_all_constituents, set the <constituent>_stamps macro
353        to the stamps introduced by the -import=<package> option(s). Similar for
354        use_libraries, <constituent>_libraries macros
355        * mgr/fragments/application: Make use of the <constituent>_stamps macro
356        * mgr/fragments/nmake/application: idem
357       
[483]3582008-12-13    <rybkin@lal.in2p3.fr> 378
359       
360        * source/cmt_language.h: In class Language, introduce the members
361        dependencies_options, native_dependencies
362        * source/cmt_language.cxx: In class Language, in function action, add the
363        parsing of the -dependencies_options=OPTIONS option, in function show,
364        add the display of that option, implement the setup_native_dependencies
365        function to set <language>.native_dependencies to true, if
366        <language>.dependencies_options expands to a non-empty string
367        * source/cmt_generator.h: In class CmtGenerator, add the m_DEPENDENCIESOPTS
368        member
369        * source/cmt_generator.cxx: Handle the m_DEPENDENCIESOPTS member
370        * source/cmt_generators.cxx: In function LibraryGenerator::module_file_action,
371        replace the DEPENDENCIESOPTS template in the <language>, <language>_library
372        fragments with the value of <language>.dependencies_options, do not include
373        the dependencies fragment in the constituent (library/application) Make
374        file, if the language preprocessor(s) of all the source file(s) support the
375        generation of dependencies and the corresponding compiler options are
376        passed via the -dependencies_options=OPTIONS option of the language(s)
377        * mgr/fragments/cpp: Implement the generation of dependencies Make files
378        (one per source file) making use of the language compiler if the
379        the corresponding compiler options are passed
380        * mgr/fragments/cpp_library: idem
381        * mgr/fragments/c: idem
382        * mgr/fragments/c_library: idem
383        * mgr/fragments/nmake/cpp: idem
384        * mgr/fragments/nmake/cpp_library: idem
385        * mgr/fragments/nmake/c: idem
386        * mgr/fragments/nmake/c_library: idem
387        * mgr/requirements: define the cppdepflags, cdepflags macros to generate
388        dependencies making use of the language compiler for Linux, Darwin, VisualC
389        when the tags cpp_native_dependencies, c_native_dependencies are activated,
390        pass cppdepflags, cdepflags to the c++, c languages, define the
391        format_dependencies macro
392        * src/Makefile.core: Add the dep_echo, dep_silent macros to be used when
393        generating dependencies, add .make .stamp .cxx to the list of known
394        suffixes for optimisation
395        * src/NMakefile.core: idem
396        * src/Makefile.header: Remove the Make rule for src/Makefile.core
397        * mgr/fragments/constituent: In case STRUCTURED_OUTPUT is defined, create
398        the $(bin)${CONSTITUENT} here rather than in the constituent Make file
399        * mgr/fragments/constituent_lock: idem
400        * mgr/fragments/make_header: idem
401        * mgr/NMake: Filter macros containing personal names out of VisualC.nmake
402        * mgr/VisualC.nmake: idem
403        * mgr/cmt_format_deps.sh: Introduced to be used for the generation of
404        one dependencies Make file per source file
405        * mgr/cmt_format_deps.bat: idem
406       
[482]4072008-11-29    <rybkin@lal.in2p3.fr> 377
408       
409        * source/cmt_project.cxx: In function show_paths, introduce and implement
410        the -d option of the "cmt show path" command to show how the the package
411        search paths list is formed (default: the original succinct one line per
412        path output)
413        * source/cmt_project.h: idem
414        * source/cmt_parser.cxx: idem
415        * source/cmt_commands.cxx: idem. Add help text for the introduced option.
416       
[481]4172008-11-28    <rybkin@lal.in2p3.fr> 376
418       
419        * source/cmt_parser.cxx: In function fill_for_all_constituents, ensure that
420        the <constituent>_use_linkopts macro is set in case the constituent
[482]421        -import=<package> options effectively import nothing
[481]422
[474]4232008-11-18    <rybkin@lal.in2p3.fr> 375
424       
425        * source/cmt_generator.h: Introduce function CmtGenerator::fill_names_outputs
426        in order to fill the Make LINE macro taking in account the constituent
427        -k=regexp, -x=regexp options
428        * source/cmt_generator.cxx: Implement the CmtGenerator::fill_names_outputs
429        function
430        * source/cmt_generators.cxx: Make use of the CmtGenerator::fill_names_outputs
431        function to fill m_LINE. In function DependencyGenerator::build, allow for
432        the options specification Windows style (/option[:value]) as the Windows
433        command shell may not pass on -option=value with the = character
434        * mgr/fragments/dependencies: Restore passing the arguments on to the
435        $(build_dependencies) command (via $(LINE)) to allow for external tool use
436        * mgr/fragments/nmake/dependencies: idem, use the -out:file option (rather
437        than -out=file)
438        * mgr/cmt_build_deps.sh: Add and implement options -no_stamps (creating
439        stamps if not specified), -out=<dependencies file>.
440        Use the same preprocessor flags as those used in fragments c, c_library,
441        cpp, cpp_library. Treat the files with non-C or non-C++ extensions as C++
442        files. Allow for the use of macro c_pp to specify the C preprocessor (the
443        tool used by default is cpp -M)
444        * mgr/cmt_filter3_version.sh: Minor correction in the description
445        * mgr/cmt_lsb_system_version.sh: Add script to retrieve the Linux
446        distribution info on LSB conformant systems in the format <distro>-<version>
447        * mgr/cmt_filter1_version.sh: Add script to keep the major version only (in
448        tags)
449       
[473]4502008-11-02    <rybkin@lal.in2p3.fr> 374
451       
452        * mgr/fragments/nmake/constituent: Do not pass the NMake QUICK macro value
453        from constituents.nmake to constituent *.nmake files on the command line
454        as it is not necessary
455        * mgr/fragments/nmake/constituent_lock: idem
456       
[472]4572008-11-01    <rybkin@lal.in2p3.fr> 373
458       
459        * src/NMakefile.header: Do not rebuild any *.nmake or dependencies files
460        when the NMake QUICK macro is set to a non-empty string
461        * mgr/fragments/nmake/constituents_header: idem
462        * mgr/fragments/nmake/constituent: idem
463        * mgr/fragments/nmake/constituent_lock: idem
464        * mgr/fragments/nmake/dependencies: idem
465       
[471]4662008-11-01    <rybkin@lal.in2p3.fr> 372
467       
468        * source/cmt_project.h: Optimise performance of the previous change. In
469        class Project, change method ordered_projects to return ProjectPtrVector,
470        add method visit (int&, ProjectPtrVector&), add member m_order
471        * source/cmt_project.cxx: Implement method visit (int&, ProjectPtrVector&),
472        make use of it to re-implement method Project::ordered_projects, use the
473        latter in Project::fill_cmtpaths
474       
[470]4752008-10-30    <rybkin@lal.in2p3.fr> 371
476       
477        * source/cmt_project.h: In class IProjectVisitor, add method in_again to
478        be executed when the project is visited more then once. In class Project,
479        add method ordered_projects to return ProjectVector ordered according to
480        the CMTPATH entries, add method visit (IProjectVisitor&, ProjectPtrVector&),
481        add member m_visits to hold the number of times the project has been visited
482        * source/cmt_project.cxx: Implement method Project::ordered_projects,
483        implement method in_again in classes VisitorForFillCMTPATH,
484        VisitorForShowPaths. In Project::broadcast, Project::reverse_broadcast make
485        use of ordered_projects to ensure that cmtpath_pattern and
486        cmtpath_pattern_reverse are applied according to the order of the CMTPATH
487        entries. Implement method visit (IProjectVisitor&, ProjectPtrVector&) to
488        be used to visit the projects tree - the order is the projects upon which
489        the project depends directly, then the direct dependencies of the of the
490        first dependency, of the second dependency and so on. That is first left to
491        right, then downwards. In method Project::start_visit, make use of the visit
492       
[469]4932008-10-29    <rybkin@lal.in2p3.fr> 370
494       
495        * source/cmt_parser.cxx: In function fill_for_branches, generate the BIN
496        macro to hold an absolute path for the path specified by the bin macro
497        (both are file separator terminated)
498        * source/cmt_generators.cxx: In function DependencyGenerator::build,
499        implement the -out=file option of the cmt build dependencies command,
500        do not read the existing dependency file (if any) with the -all_sources
501        option
502        * mgr/fragments/dependencies: Make use of the -out=file option to allow
503        for the relocation of the binary build directory
504        * mgr/fragments/nmake/dependencies: idem
505        * mgr/fragments/library: Allow for the relocation of the binary build
506        directory (via redefinition of the bin macro)
507        * mgr/fragments/library_no_share: idem
508        * mgr/fragments/library_no_static: idem
509        * mgr/fragments/application: idem
510        * mgr/fragments/cpp_library: idem
511        * mgr/fragments/cpp: idem
512        * mgr/fragments/c_library: idem
513        * mgr/fragments/c: idem
514        * mgr/fragments/fortran_library: idem
515        * mgr/fragments/fortran: idem
516        * mgr/fragments/cleanup_objects: idem
517        * mgr/fragments/nmake/library: idem
518        * mgr/fragments/nmake/library_no_share: idem
519        * mgr/fragments/nmake/library_no_static: idem
520        * mgr/fragments/nmake/application: idem
521        * mgr/cmt_make_shlib_common.sh: idem
522        * mgr/cmt_make_shlib.bat: idem
523        * mgr/requirements: idem
524        * src/NMakefile.header: Allow for the relocation of the binary build
525        directory (via redefinition of the bin macro), place all the make files
526        generated by CMT in the binary build directory
527        * mgr/fragments/nmake/constituents_header: idem
528        * mgr/fragments/nmake/constituent: idem
529        * mgr/fragments/nmake/constituent_lock: idem
530        * mgr/fragments/nmake/make_header: idem
531       
[468]5322008-10-20    <rybkin@lal.in2p3.fr> 369
533       
534        * source/cmt_parser.cxx: In function fill_for_all_constituents, correct the
535        setting of macros in case the -import option for constituents is used so as
536        to import what is requested only. Do not set macro ${CONSTITUENT}linkopts
537        * mgr/fragments/application: Use $(cmt_installarea_linkopts) with
[469]538        $(${CONSTITUENT}_use_linkopts) instead of $(use_linkopts)
[468]539        * mgr/fragments/dsp_application_header: idem
540        * mgr/fragments/dsp_windows_header: idem
541        * mgr/fragments/nmake/application: idem
542       
[467]5432008-09-24    <rybkin@lal.in2p3.fr> 368
544       
545        * source/cmt_log.h: Introduce the Verbose level of diagnostic messages that
546        is higher than the Debug level and lower than the Info level.
547        * source/cmt_parser.cxx: Set the Verbose level of diagnostic messages if
548        the CMTVERBOSE environment variable is set to a non-empty string
549        * source/cmt_symbol.cxx: Print the message about non-existent directories
550        in path-like environment variables when the Verbose level is activated
551        * source/cmt_generator.cxx: Optimise the build_windefs function
552       
[466]5532008-09-22    <rybkin@lal.in2p3.fr> 367
554       
555        * source/cmt_generators.cxx: Implement the -no_static option for libraries
556        * source/cmt_generators.h: idem
557        * source/cmt_parser.cxx: idem
558        * source/cmt_commands.cxx: idem. Add the help text for the enhanced
559        cmt build windefs command which now accepts multiple object and/or library
560        files on the command line and/or via command file(s) and has an option
561        to specify the library name
562        * source/cmt_generator.h: In the build_windefs function, implement the
563        enhanced functionality of the cmt build windefs command
564        * source/cmt_generator.cxx: idem
565        * mgr/fragments/constituent_lock: Minor code cleanup
566        * mgr/requirements: Add the c option for the ar utility on Linux to avoid
567        the warning. Declare the library_no_static make fragment
568        * mgr/fragments/library_no_static: Introduce the make fragment to use with
569        the -no_static option
570        * mgr/fragments/nmake/library_no_static: idem for Windows
571       
[465]5722008-07-30    <rybkin@lal.in2p3.fr> 366
573       
574        * mgr/cmt_gcc_version.sh: Set the "C" locale
575        * mgr/cmt_cxx_version.sh: idem
576        * mgr/cmt_dcc_version.sh: idem
577        * mgr/cmt_CC_version.sh: idem
578        * mgr/cmt_filter_version.sh: idem
579        * mgr/cmt_filter3_version.sh: idem
580        * mgr/cmt_linux_version.sh: idem
581        * mgr/cmt_system.sh: idem
582        * mgr/cmt_make_shlib.sh: idem
583        * mgr/cmt_make_shlib_common.sh: Set GREP_OPTIONS to the empty string, if
584        not empty
585       
[464]5862008-07-19    <rybkin@lal.in2p3.fr> 365
587       
588        * source/cmt_system.cxx: In the CmtSystem::compress_path function, take
589        into account one more boundary case
590       
[463]5912008-07-18    <rybkin@lal.in2p3.fr> 364
592       
593        * source/cmt_system.cxx: In the CmtSystem::compress_path function, add the
594        replacement of "/.." with "/" (one cannot walk down past the root), more
595        careful treatment of some boundary cases
596        * source/cmt_parser.cxx: Add 2 debug level messages in the function
597        Cmt::guess_current_project
598       
[462]5992008-06-25    <rybkin@lal.in2p3.fr> 363
600       
601        * src/Makefile.header: Ensure that $(cmt_final_setup) is (re)built when
602        make is run with non default target(s)
603       
[461]6042008-06-24    <rybkin@lal.in2p3.fr> 362
605       
606        * source/cmt_use.h: In the Package class, declare get_version_file_name ()
607        to return "version.cmt", and get_version () to retrieve the package version
608        when structuring style used is `without_version_directory' by checking:
609        1) the get_version_file_name () file if available (and readable)
610        2) version statement in the package requirements file
611        * source/cmt_use.cxx: Implement and systematically use the
612        get_version_file_name (), and get_version () functions
613        * source/cmt_parser.cxx: Systematically use the implemented functions
614        * source/cmt_awk.cxx: idem
615        * source/cmt_cvs.cxx: idem
616       
[460]6172008-06-22    <rybkin@lal.in2p3.fr> 361
618       
619        * source/cmt_parser.cxx: Ensure the requirements file in ${CMTHOME} is
620        parsed if exists
621        * source/cmt_project.cxx: Ensure the cmt broadcast command works correctly
622        in case CMTHOME or/and CMTUSERCONTEXT is/are defined
623       
[459]6242008-05-30    <rybkin@lal.in2p3.fr> 360
625       
626        * source/cmt_log.h: Introduce an enumeration to hold diagnostic messages
627        levels (Debug, Info, Warning, Error, Fatal). Implement a class to hold
628        and manage diagnostic messages prefix, level (default values: #CMT--->,
629        Info), and functions to produce diagnostic messages
630        * source/cmt_parser.cxx: Implement functions to configure diagnostic
631        messages prefix, and level using the environment variables CMTMSGPREFIX,
632        and CMTDEBUG, CMTINFO, CMTWARNING, CMTERROR, CMTFATAL (in order of
633        precedence) if set to a non-empty string. Extend functions to configure
634        the diagnostic messages level using the existing command line options
635        -warnings (Warning), -disable_warnings (Error), -quiet (Fatal).
636        Introduce the CMTFLAGS environment variable (set up automatically) in order
637        to contain command line options (currently, to configure the diagnostic
638        messages level and the structuring style) so as to pass the flags to
639        recursive cmt invocations. If CMTFLAGS exists in the environment, the
640        flags from it are processed before the command line options. Implement
641        the CMTFLAGS functionality described above.
642        Use the diagnostic message functions for the messages
643        * source/cmt.h: idem
644        * source/cmt_tag.cxx: Use the diagnostic message functions for the messages
645        * source/cmt_awk.cxx: idem
646        * source/cmt_system.cxx: idem
647        * source/cmt_use.cxx: idem
648        * source/cmt_install_area.cxx: idem
649        * source/cmt_fragment.cxx: idem
650        * source/cmt_generators.cxx: idem
651        * source/cmt_constituent.cxx: idem
652        * source/cmt_syntax.cxx: idem
653        * source/cmt_triggers.cxx: idem
654        * source/cmt_error.cxx: idem
655        * source/cmt_model.cxx: idem
656        * source/cmt_commands.cxx: idem
657        * source/cmt_project.cxx: idem
658        * source/cmt_pattern.cxx: idem
659        * source/cmt_lock.cxx: idem
660        * source/cmt_generator.cxx: idem
661        * source/cmt_cvs.cxx: idem
662        * source/cmt_symbol.cxx: idem
663        * mgr/requirements: Do not use the -quiet command line option
664        * mgr/fragments/constituent:  idem
665        * mgr/fragments/make_setup: idem
666        * mgr/fragments/check_application_header: idem
667        * mgr/fragments/constituents_header: idem
668        * mgr/fragments/constituent_lock: idem
669        * mgr/fragments/generator_header: idem
670        * mgr/fragments/cleanup_header: Improve control of Make verbosity
671        * mgr/fragments/make_setup_nmake: Do not use the -quiet command line option
672        * mgr/fragments/nmake/constituent: idem
673        * mgr/fragments/nmake/check_application_header: idem
674        * mgr/fragments/nmake/constituents_header: idem
675        * mgr/fragments/nmake/yacc: idem
676        * mgr/fragments/nmake/constituent_lock: idem
677        * mgr/fragments/nmake/lex: idem
678        * mgr/fragments/nmake/generator_header: idem
679        * mgr/fragments/nmake/yacc_library: idem
680        * mgr/fragments/nmake/lex_library: idem
681        * src/Makefile.header: idem, improve control of Make verbosity
682        * src/constituents.make: Do not use the -quiet command line option
683        * src/NMakefile.header: idem
684        * src/constituents.nmake: idem
685
[458]6862008-05-14    <rybkin@lal.in2p3.fr> 359
687       
688        * mgr/fragments/cleanup_header: Add a workaround to work in the parallel
689        execution mode with the PEDANTIC Make switch
690       
[457]6912008-05-13    <rybkin@lal.in2p3.fr> 358
692       
693        * source/cmt_project.cxx: Add the real CMTPATH of project to the paths returned
694        by Project::fill_selection ()
695        * source/cmt_parser.cxx: When cmt broadcast is run, ensure that the current package
696        is not skipped due to symlinks in the paths
697       
[456]6982008-04-21    <rybkin@lal.in2p3.fr> 357
699       
700        * mgr/fragments/dependencies: Do not include the dependencies fragment in
701        the constituent makefile at all when make clean is run
702       
[455]7032008-04-19    <rybkin@lal.in2p3.fr> 356
704       
705        * mgr/fragments/dependencies: Do not re-calculate the dependencies when
706        make clean is run
707       
[454]7082008-04-17    <rybkin@lal.in2p3.fr> 355
709       
710        * source/cmt_cvs.cxx: Add the -rs suffix option to the cmt checkout command
711        (proposed by David Rousseau)
712       
[453]7132008-04-15    <rybkin@lal.in2p3.fr> 354
714       
715        * source/cmt_parser.cxx: Take into account current value of type CmtDirStyle
716        when checking for file version.cmt
717        * source/cmt_generators.cxx: make a copy of a vector of type Use::UsePtrVector
718        rather than get a reference
719       
[452]7202008-04-14    <rybkin@lal.in2p3.fr> 353
721       
722        * source/cmt_cvs.cxx: Correct the handling of the -with_version_directory
723        and -without_version_directory command line options with cmt checkout.
724        Comment out a duplicate "cmt -quiet config" after the checkout
725       
[451]7262008-04-11    <rybkin@lal.in2p3.fr> 352
727       
728        * source/cmt_parser.cxx: Remove all the library links built, including those
729        for the current package
730       
[447]7312008-02-23    <rybkin@lal.in2p3.fr> 351
732       
733        * mgr/fragments/constituent_lock: Remove the lockfile on receipt of signal HUP, INT, TERM
734        (1, 2, 15)
735       
[446]7362008-02-22    <rybkin@lal.in2p3.fr> 350
737       
738        * src/NMakefile.core: Replace CMTMSGHDR with CMTMSGPREFIX
739        * src/Makefile.core: idem
740        * mgr/cmt_install_action.sh: idem
741        * mgr/cmt_uninstall_action.sh: idem
742        * mgr/cmt_make_shlib.sh: idem
743        * mgr/fragments/cleanup_header: Improve diagnostic messages
744        * mgr/fragments/tex: Correct the fragment
745       
[445]7462008-02-21    <rybkin@lal.in2p3.fr> 349
747       
748        * src/NMakefile.core: Control the verbosity of NMake (similar to Make, see below)
749        * src/NMakefile.header: idem
750        * mgr/fragments/nmake/constituents_header: idem
751        * mgr/fragments/nmake/group: idem
752        * mgr/fragments/nmake/constituent: idem, correct the passing of NMake options
753        * mgr/fragments/nmake/constituent_lock: idem, correct the passing of NMake options
754        * mgr/fragments/nmake/constituents_trailer: idem
755        * mgr/fragments/nmake/application_header: idem
756        * mgr/fragments/nmake/application: idem
757        * mgr/fragments/nmake/library_header: idem
758        * mgr/fragments/nmake/library: idem
759        * mgr/fragments/nmake/library_no_share: idem
760        * mgr/fragments/nmake/c: idem
761        * mgr/fragments/nmake/c_library: idem
762        * mgr/fragments/nmake/cpp: idem
763        * mgr/fragments/nmake/cpp_library: idem
764        * mgr/fragments/nmake/fortran: idem
765        * mgr/fragments/nmake/fortran_library: idem
766        * mgr/fragments/nmake/java_header: idem
767        * mgr/fragments/nmake/jar_header: idem
768        * mgr/fragments/nmake/jar: idem
769        * mgr/fragments/nmake/installer: idem
770        * mgr/cmt_install_action.bat: idem
771        * mgr/cmt_uninstall_action.bat: idem
772        * mgr/fragments/library: Improve control of the verbosity of Make
773        * mgr/fragments/jar_header: idem
774        * mgr/fragments/installer: idem
775       
[444]7762008-02-18    <rybkin@lal.in2p3.fr> 348
777       
778        * source/cmt_system.cxx: Check the pclose () function return value to obtain
779        the exit status of the executed command
780        (used in the CvsImplementation::execute_and_retry () method)
781       
[443]7822008-02-16    <rybkin@lal.in2p3.fr> 347
783       
784        * source/cmt_parser.cxx: Issue a warning when structuring style used
785        is `without_version_directory' but `version.cmt' file is missing (suggested
786        by Laurent Vacavant). Issue a warning when `version.cmt' file exists
787        but cannot be read
788       
[442]7892008-02-16    <rybkin@lal.in2p3.fr> 346
790       
791        * src/Makefile.core: Improve the control of the verbosity of Make
792        * mgr/fragments/library: idem
793        * mgr/cmt_install_action.sh: idem
794        * mgr/cmt_uninstall_action.sh: idem
795        * mgr/cmt_make_shlib.sh: idem
796       
[441]7972008-02-15    <rybkin@lal.in2p3.fr> 345
798       
[442]799        * src/Makefile.core: Control the verbosity of Make by setting the following
800        Make variables (in order of precedence):
801        VERBOSE - print CMT messages and echo Make commands
[441]802        QUIET - print CMT messages (default)
803        ECHO - echo Make commands
804        SILENT - no CMT messages or Make commands echoing
805        Control the prefix of the CMT messages via the Make variable CMTMSGHDR
806        (default value: #CMT--->)
807        * src/Makefile.header: idem
808        * mgr/fragments/constituents_header: idem
809        * mgr/fragments/group: idem
810        * mgr/fragments/constituent: idem
811        * mgr/fragments/constituent_lock: idem
812        * mgr/fragments/constituents_trailer: idem
813        * mgr/fragments/make_header: idem
814        * mgr/fragments/application_header: idem
815        * mgr/fragments/application: idem
816        * mgr/fragments/application_launcher: idem
817        * mgr/fragments/library_header: idem
818        * mgr/fragments/library: idem
819        * mgr/fragments/library_no_share: idem
820        * mgr/fragments/dependencies: idem
821        * mgr/fragments/c: idem
822        * mgr/fragments/c_library: idem
823        * mgr/fragments/cpp: idem
824        * mgr/fragments/cpp_library: idem
825        * mgr/fragments/fortran: idem
826        * mgr/fragments/fortran_library: idem
827        * mgr/fragments/java_header: idem
828        * mgr/fragments/jar: idem
829        * mgr/fragments/cleanup_application: idem
830        * mgr/fragments/installer: idem
831        * mgr/cmt_make_shlib.sh: idem
832        * mgr/cmt_install_action.sh: idem
833        * mgr/cmt_uninstall_action.sh: idem
834       
[440]8352008-02-09    <rybkin@lal.in2p3.fr> 344
836
837        * mgr/cmt_install_action.sh: Optimise by reducing the number of processes
838        making use of the POSIX shell features
839        * mgr/cmt_uninstall_action.sh: idem, fix options processing
840       
[438]8412008-02-02    <rybkin@lal.in2p3.fr> 343
842
843        * source/cmt_parser.cxx: Correct treatment of the -with_version_directory
844        and -without_version_directory command line options
845        * source/cmt.h: idem
846       
[437]8472008-02-02    <rybkin@lal.in2p3.fr> 342
848
849        * source/cmt_project.h: Optimise the use of realpath_
850        * source/cmt_project.cxx: idem
851        * source/cmt_use.cxx: idem
852       
[436]8532008-01-31    <rybkin@lal.in2p3.fr> 341
854
855        * mgr/fragments/dependencies: Make sure the dependencies are re-calculated
[440]856        whenever the included files are changed (the problem pointed out by Marco)
[436]857        * mgr/fragments/c: idem
858        * mgr/fragments/c_library: idem
859        * mgr/fragments/cpp: idem
860        * mgr/fragments/cpp_library: idem
861        * mgr/fragments/fortran: idem
862        * mgr/fragments/fortran_library: idem
863        * mgr/fragments/lex: idem
864        * mgr/fragments/lex_library: idem
865        * mgr/fragments/yacc: idem
866        * mgr/fragments/yacc_library: idem
867
[435]8682008-01-25    <rybkin@lal.in2p3.fr> 340
869
870        * source/cmt_system.h: Improve the handling of symlinks in the paths
871        * source/cmt_system.cxx: idem
872        * source/cmt_use.cxx: idem
873        * source/cmt_project.cxx: idem
874        * source/cmt_parser.cxx: Comment out a duplicate piece of code
875       
[434]8762008-01-18    <rybkin@lal.in2p3.fr> 339
877
878        * mgr/fragments/constituent: Do not rebuild any *.make files when QUICK
879        is defined, build all the *.make files in the binary tag directory,
880        do not use MAKEFLAGS explicitly, do not leave a lock file in /tmp
881        * mgr/fragments/constituent_lock: idem
882        * mgr/fragments/constituents_header: idem
883        * mgr/fragments/make_header: idem
884        * src/Makefile.header: idem
885       
[432]8862008-01-14    <rybkin@lal.in2p3.fr> 338
887
888        * mgr/cmt_dcc_version.sh: Optimise by reducing the number of processes
889        making use of sed
890        * mgr/cmt_gcc_version.sh: idem
891        * mgr/cmt_filter_version.sh: idem
892        * mgr/cmt_filter3_version.sh: idem
893        * mgr/cmt_linux_version.sh: Optimise by reducing the number of processes
894        making use of sed and the POSIX shell features (patch from KELEMEN Peter)
895       
[431]8962008-01-14    <rybkin@lal.in2p3.fr> 337
897
898        * source/cmt_parser.cxx: Make use of the structuring style, when
899        configuring a package without a version.cmt file, to allow the use
900        of digits in package names of such packages structured without
901        a version directory
902       
[430]9032007-11-25    <rybkin@lal.in2p3.fr> 336
904
905        * mgr/cmt_lockfile.bat: Enhance basic semaphore-file creator for Windows
906        * mgr/cmt_lockfile.sh: Enhance basic semaphore-file creator for Unix
907        * mgr/requirements: Use enhanced basic semaphore-file creator for Windows
908        * mgr/lockfile.bat: Make obsolete basic semaphore-file creator for Windows
909        * mgr/lockfile.sh: Make obsolete basic semaphore-file creator for Unix
910       
[429]9112007-11-22    <rybkin@lal.in2p3.fr> 335
912
913        * source/cmt_generators.h: idem
914        * source/cmt_generators.cxx: idem
915        * source/cmt_lock.cxx: idem
916        * mgr/fragments/constituent_lock: idem
917        * mgr/fragments/nmake/constituent_lock: idem
918        * mgr/requirements: Implement a locking mechanism to allow simultaneous/parallel
919        builds for multiple binary tags. Used suggestions from Pere, Stefan, and Andrea
920        * mgr/lockfile.bat: Basic semaphore-file creator for Windows
921        * mgr/lockfile.sh: Basic semaphore-file creator for Unix
922       
[428]9232007-10-31    <rybkin@lal.in2p3.fr> 334
924
925        * source/cmt_parser.cxx: idem
926        * source/cmt_commands.cxx: idem
927        * source/cmt_generator.h: idem
928        * source/cmt_generator.cxx: idem
929        * source/cmt_generators.h: idem
930        * source/cmt_generators.cxx: Implement the new -out=file option of the
931        cmt build constituent_makefile command
932        * mgr/fragments/constituent: Make use of the new -out=file option of the
933        cmt build constituent_makefile command to allow simultaneous builds for multiple
934        binary tags
935
[427]9362007-09-01    <rybkin@lal.in2p3.fr> 333
937
938        * source/cmt_deps_builder.h: idem
939        * source/cmt_deps_builder.cxx: idem
940        * source/cmt_generators.h: idem
941        * source/cmt_generators.cxx: Implement a header file filter mechanism to replace
942        header files matching a pattern with a stamp file when calculating files dependencies
943
[424]9442007-07-09    <rybkin@lal.in2p3.fr> 332
945
946        * source/cmt_deps_builder.cxx: Restore the erase of continuation character logic
947
[423]9482007-07-06    <rybkin@lal.in2p3.fr> 331
949
[424]950        * source/cmt_awk.cxx: Reinstate print out
[423]951
[412]9522007-04-27    <arnault@lal.in2p3.fr> 330
953
954        * source\cmt_cvs.cxx (class CvsImplementation): Forgot to consider
955        the minimal case where only one tag exists for the package, the
956        tag related with the original import.
957
[411]9582007-04-24    <arnault@lal.in2p3.fr> 329
959
960        * source/cmt_cvs.cxx (class CvsImplementation): Don't consider CVS branches when tag is not specified
961
962        * source/cmt_project.cxx: Protect warning messages with -quiet
963
964        * source/cmt_system.cxx: idem
965        * source/cmt_system.h: Improvement of the FilePath class definition
966
967        * source/cmt_parser.cxx: Prepare using FilePath objet for current dir
968        Better management of the -quiet option
969       
970        * source/cmt.h: Prepare using FilePath objet for current dir
971
[401]9722007-04-23    <arnault@lal.in2p3.fr> 328
973
974        * mgr/fragments/java_header: Make use of the $(jar) macro
975
[400]9762007-04-23    <arnault@lal.in2p3.fr> 327
977
978        * source/cmt_system.cxx: activate the support to PWD env. var.
979        Start the definition of the new generic class FilePath to store physical and logical file specifications
980
9812007-04-20    <arnault@lal.in2p3.fr> 327
982
983        * source/cmt_use.cxx: idem
984        * source/cmt_triggers.cxx: idem
985        * source/cmt_tag.cxx: idem
986        * source/cmt_system.cxx: idem
987        * source/cmt_syntax.cxx: idem
988        * source/cmt_symbol.cxx: idem
989        * source/cmt_sequence.cxx: idem
990        * source/cmt_script.cxx: idem
991        * source/cmt_regexp.cxx: idem
992        * source/cmt_project.cxx: idem
993        * source/cmt_pattern.cxx: idem
994        * source/cmt_parser.cxx: idem
995        * source/cmt_model.cxx: idem
996        * source/cmt_log.cxx: idem
997        * source/cmt_lock.cxx: idem
998        * source/cmt_language.cxx: idem
999        * source/cmt_install_area.cxx: idem
1000        * source/cmt_group.cxx: idem
1001        * source/cmt_generators.cxx: idem
1002        * source/cmt_generator.cxx: idem
1003        * source/cmt_fragment.cxx: idem
1004        * source/cmt_cvs.cxx: idem
1005        Send error & warning messages to stderr instead of stdout
1006
1007        * source/cmt_constituent.cxx: idem
1008        * source/cmt_cmtpath_pattern.cxx : idem
1009        * source/cmt_branch.cxx : idem
1010        * source/cmt_awk.cxx : idem
1011        * source/cmt.cxx: formatting text
1012
[397]10132007-03-28 Vincent Garonne <garonne@lal.in2p3.fr> 326
1014
1015        * source/cmt_deps_builder.cxx, cmt_syntax.cxx: Change or by ||, not by ! which create problem on windows
1016
[389]10172007-03-22 Vincent Garonne <garonne@lal.in2p3.fr> 325
1018
1019        * source/cmt.cxx: Extract the pure status code when executing an action
1020
[388]10212007-03-07 Vincent Garonne <garonne@lal.in2p3.fr> 324
1022
1023        * source/cmt_commands.cxx: Remove a extra debugging print remained...
1024       
[371]10252007-02-08 Vincent Garonne <garonne@lal.in2p3.fr> 323
1026
1027        * source/cmt_parser.cxx: Disable the creation of ROOT/CONFIG variable for the PACKAGE_POLICY_<project> virtual package 
1028
[363]10292007-01-02 Vincent Garonne <garonne@lal.in2p3.fr> 322
[360]1030
[363]1031        * source/cmt_parser.cxx:  update to deal with the action return status code
1032         and the -no_auto_imports differents cases.
[366]1033        * source/cmt_constituents.cxx: Add support for the -import=PkgA,PkgB
[363]1034        * source/cmt_error.*: update to deal with the action return status code
1035        * source/cmt.cxx: return status code   
1036       
[360]10372007-31-01 Vincent Garonne <garonne@lal.in2p3.fr> 321
1038
1039        * cmt_deps_builder.cxx:  Add support for space, line continuing character, etc.
1040
[325]10412006-15-11 Vincent Garonne <garonne@lal.in2p3.fr> 320
1042
1043    * mgr/fragments/group, mgr/fragments/nmake/group: Add macros $(${GROUP}_pre_constituents),  $(${GROUP}_post_constituents) for having target executed by default.
1044   
[323]10452006-14-11 Vincent Garonne <garonne@lal.in2p3.fr> 319
1046
1047    *  cmt.h, cmt_parser.cxx: Generate a native_version.cmt file if the <package>_native_version macro exists at the config step.
1048
[318]10492006-14-11 Vincent Garonne <garonne@lal.in2p3.fr> 318
1050
1051    *  cmt_tag.cxx: Correct the fact that "apply_tag" protected by a private section is exported in all the clients packages.
1052
[366]10532006-10-24    <arnault@lal.in2p3.fr> 317
1054
[397]1055        * source\\cmt_cmtpath_pattern.cxx (apply): Implement the two
[366]1056        different traversal modes for the project graph
1057
[397]1058        * source\\cmt_cmtpath_pattern.h (class CmtPathPattern): Add extra
[366]1059        arguments to action and add AND a new attribute to hold the
1060        possible revert mode in the project traversal
1061
[397]1062        * source\\cmt_syntax.cxx (class KwdCmtPathPatternRevert): Implement
[366]1063        the parsing of the new keyword simply by adding an extra optional
1064        arg to the CmtPathPattern::action
1065        (SyntaxParser): Add a new keyword cmtpath_pattern_revert to handle
1066        project traversal in reverse order (wrt the current order of
1067        cmtpath_pattern)
1068
[282]10692006-18-10 Vincent Garonne <garonne@lal.in2p3.fr> 317
[281]1070
[282]1071    *  cmt_commands.*, cmt_parser.cxx, cmt.h: Add the -disable_warnings option to not print certains warnings, e.g. the CMTSITE value etc.
1072   
10732006-12-10 Vincent Garonne <garonne@lal.in2p3.fr> 316
[281]1074
1075    * source/cmt_parser.cxx, source/cmt_syntax.cxx, source/cmt_use.*: Enable and propagate the -native_version syntax at the use level.
1076     IMPORTANT NOTES: STILL NOT FINISHED.
[282]1077     
10782006-12-10 Vincent Garonne <garonne@lal.in2p3.fr> 315
[281]1079
[280]1080    * source/cmt_std.h: add __APPLE__ for removing compilation warnings   
1081
[282]10822006-11-10 Vincent Garonne <garonne@lal.in2p3.fr> 314
[273]1083
1084    * source/cmt_project.*: Add two functions - get_project_releases, select_release   
1085    * source/cmt_project.*: Add support for wildcarded project dependencies
1086
[282]10872006-10-10 Vincent Garonne <garonne@lal.in2p3.fr> 313
[272]1088
1089    * source/cmt_symbol.*, source/cmt_parser.*, source/cmt_commands.*, source/cmt_syntax.*, source/cmt.h: Add support for the show project author command
1090    * src/setup.*: Add auto-expand for project_author
1091 
[257]10922006-09-28 Vincent Garonne <garonne@lal.in2p3.fr> 312
1093
1094        * source/cmt_symbol.cxx: Bug fixed on the windows platform. 
1095
[228]10962006-08-17 Vincent Garonne <garonne@lal.in2p3.fr> 311
1097
1098        * source/cmt_syntax.cxx: Add support for author syntax to project
1099
[206]11002006-06-15 Vincent Garonne <garonne@lal.in2p3.fr> 310
1101
1102        * source/cmt_system.cxx: Correct touch function to conserve permission
1103
11042006-06-15 Vincent Garonne <garonne@lal.in2p3.fr> 309
1105
1106        * mgr/fragments/application, mgr/fragments/c_library, mgr/fragments/cleanup_librarymgr/fragments/cpp, mgr/fragments/cpp_library, mgr/fragments/dependencies, mgr/fragments/fortran_library, mgr/fragments/library: Add the support for the PRINT_PREREQISITES mode during the make operation
1107
1108        * mgr/fragments/library: Fixed a bug
1109
[201]11102006-05-31 Vincent Garonne <garonne@lal.in2p3.fr> 308
1111
1112        * source/cmt_cvs: Add modification to deal with non working checkout by creating the cvs files manually ,e.g. cvs entries.
1113        * source/cmt_cvs: Add the "-f" option which supposes to force cvs to ignore the .cvsrc file during cvs command execution.
1114
[189]11152006-05-20  Christian Arnault  <arnault@lal.in2p3.fr> 307
1116
1117        * source/cmt_pattern.cxx (expand): Make use of
1118        use->get_cmtpath_and_offset to compute the project of the package
1119        when expanding the <project> template to fix packages with offset
1120
11212006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 306
1122
1123        * cmt_generator.cxx: Add the fixe recommend by markus to deal with extern c data on visual
1124
[184]11252006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 305
1126
1127        * mgr/fragments/cleanup_header, mgr/fragments/constituent: Add a PEDANTIC option for building which stop
1128        directly after detecting a missing file or target
1129       
1130        * mgr/fragments/constituent, mgr/fragments/constituents_header, mgr/fragments/cleanup_header,
1131        mgr/fragments/make_header : correct some bad behaviours and change the internal file name convention
1132        *setup* -> *_setup*
1133
11342006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 304
1135
1136        * source/cmt_parser.cxx: Remove only the specific makefiles depending on the platform, e.g. remove *.make
1137        on linux and *.nmake on windows
1138
11392006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 303
1140
1141        * source/cmt_commands.cxx, source/cmt_commands.h, source/cmt_parser.cxx, source/cmt_parser.h: Add a new cmt         
1142        command "relocate" to generate only setup script whithout makefile
1143
1144        * src/setup.tcsh : Enable the auto-expand mechanism for the relocate command
1145
11462006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 302
1147
1148        * source/cmt_cvs.cxx: Do the exact mathing for tag during recursive checkout operation
1149
11502006-04-24   Christian Arnault  <arnault@lal.in2p3.fr> 301
1151
1152        * source/cmt_pattern.cxx(expand): Add support for a <project> template in patterns
1153
[157]11542006-14-03   Christian Arnault  <arnault@lal.in2p3.fr> 300
1155
1156        * source/cmt_cvs.cxx: Switch checkout sequence from multi-co to multi update
1157
[152]11582006-03-01  Vincent Garonne <garonne@lal.in2p3.fr> 299
1159
1160        * mgr/requirements: Enable tag v1r18 for the HEAD version
1161
[151]11622006-02-24  Christian Arnault  <arnault@lal.in2p3.fr> 298
1163
1164        * mgr/requirements: Suppress automatic installation of share/bin & share/lib in CLASSPATH for with_installarea
1165
1166        * source/cmt_project.cxx (create_project): Suppress a warning message
1167
1168        * source/cmt_commands.cxx (do_check): Suppress automatic warnings for do_check_configuration
1169        (do_setup): idem for cmt setup
1170
[147]11712006-02-10  Vincent Garonne <garonne@lal.in2p3.fr> 297
1172
1173        * mgr/requirements: Fill <project>_installarea_linkopts in addition to cmt_installarea_linkopts
1174
[145]11752006-02-09  Christian Arnault  <arnault@lal.in2p3.fr> 296
1176
1177        * mgr/requirements: Fill <project>_installarea_linkopts in addition to cmt_installarea_linkopts
1178
[144]11792006-02-07  Christian Arnault  <arnault@lal.in2p3.fr> 295
1180
1181        * mgr/requirements: Protect cmtpath_patterns with strategies
1182        use $(CMTCONFIG) instead of $(tag) in cmtpath_patterns
1183
1184        * source/cmt_parser.cxx (configure_cmt_path): Suppress warnings for bad paths at this stage
1185        (do_check_configuration): Add set_standard_macros for do_check_configuration
1186
1187        * source/cmt_commands.cxx (do_check): Activate warnings for check configuration and for setup
1188
1189        * source/cmt_symbol.cxx (filter_path_value): Don't kill path item when they don't exist.
1190        (action): Reset all_sets_done at each symbol definition.
1191        (all_set): Protect against internal recursivity
1192        (all_print): Print path settings here.
1193        (check_all_paths): Add a new function to check all paths.
1194        (SetBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
1195        (PathBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
1196        (MacroBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
1197        (ActionBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
1198        (SymbolValueList::show): Keep reset to null actions
1199        Print overridings
1200
1201        * source/cmt_system.cxx: Add include cmt_map.h for putenv management
1202        (class CMTPathManager): Suppress generation of an error when the CMTPATH item does not exist
1203
12042006-02-06  Christian Arnault  <arnault@lal.in2p3.fr> 294
1205
1206        * source/cmt_cvs.cxx (class CvsImplementation): Uses the new CmtSystem::putenv API
1207
1208        * source/cmt_symbol.cxx (all_set): Uses the new CmtSystem::putenv API to fix setup problems
1209
1210        * source/cmt_system.h (class CmtSystem): Modifying the API of the internal putenv function
1211
1212        * source/cmt_system.cxx (putenv): Replacing the old putenv implementation with a new one using a static map
1213        of all used environment variables so as to ensure a stable string
1214
[143]12152006-01-31    <arnault@lal.in2p3.fr> 293
[140]1216
[143]1217        * source/cmt_parser.cxx (configure_cmt_path): Force a warning when CMTPATH contains a non existing item.
1218
1219        * source/cmt_awk.cxx (scan_path): Restore commented debug printouts after fix.
1220
1221        * source/cmt_parser.cxx (run): Fix the parsing of requirements file for do_show_clients for use statements without version.
1222
1223        * source/cmt_awk.cxx (scan_path): Detect the non-version-directory mode and launches the run with appropriate flag.
1224
1225        * source/cmt_awk.h (class PathScanner): Add an argument to mark that the scanned package
1226        uses no version directory.
1227
[140]1228        * mgr/requirements: Removed obsolete pp_cflags for Linux (ticket #15)
1229
[142]12302006-01-27 <garonne@lal.in2p3.fr>
1231
1232        * source/cmt_parser.cxx: Allow with_version_directory option for users.
1233
[136]12342006-01-09    <arnault@lal.in2p3.fr> 292
1235
1236        * source/cmt_project.cxx (create_project): Access CMTPROJECTPATH through
1237        symbol or getenv
1238
1239        * source/cmt_symbol.cxx (get_env_value): Make use of the global
1240        display inhibitor to ensure that temporary value builder will not
1241        show unexpected output.
1242
1243        * source/cmt_symbol.h (class Symbol): Define a special accessor function for
1244        retrieving the value a symbols associated with an env. var. (typically
1245        for CMTPATH like variables)
1246
1247        * source/cmt_symbol.cxx (action): Trigger the Cmt::configure_cmt_path
1248        from CMTPROJECTPATH like CMTPATH
1249
[114]12502005-10-31  Christian Arnault  <arnault@lal.in2p3.fr> 291
1251
1252        * source/cmt_system.cxx (is_version_directory): Permit version
1253        directories not starting by a letter (eg 1.0)
1254
[113]12552005-10-30    <arnault@lal.in2p3.fr> 290
1256
1257        * source/cmt_symbol.cxx (all_set): Must expand PATH values before
1258        filtering and setting them
1259
[108]12602005-10-28    <arnault@lal.in2p3.fr> 289
1261
[113]1262        * cmt/fragments/cleanup_header: Temporary hack to deal with missing files
[108]1263        and to avoid infinite loops in make. However, this must be seen as a ugly hack
1264        since it considers an Atlas use case with config.h.in. This hack is
1265        harmless to any user of this special file though.
1266
[113]1267        * source/cmt.h
1268        * source/cmt_parser.cxx
1269        * source/cmt_commands.h
1270        * source/cmt_commands.cxx
1271        * doc/CMTDoc.xml: Add a -warnings option to display various warning messages
[108]1272 
[102]12732005-10-18    <arnault@lal.in2p3.fr> 288
1274
[103]1275        * mgr/Makefile (bintar): Prepare and cleanup binary directories
1276        before creating tar balls.
1277
1278        * mgr/Makefile (Export): Move the docs target from bintar to Export
1279
[102]1280        * source/cmt_symbol.cxx (print): Filter path values before
1281        setting them externally
1282
1283        * source/cmt_symbol.cxx (all_set): Filter path values before
1284        setting them internally
1285
1286        * source/cmt_parser.cxx (configure_cmt_path): Filter out CMTPATH
1287        before creating or updating projects from the CMTPATH value
1288
1289        * source/cmt_symbol.h (class Symbol): Add a static function to
1290        filter out faulty items in a PATH symbol
1291
[101]12922005-10-17    <arnault@lal.in2p3.fr> 287
1293
[102]1294        * mgr/Makefile (cmtexe): Use -quiet option whenever using cmt
1295        within the Makefile of CMT
1296
1297        * source/cmt_cvs.cxx (class CvsImplementation): Protect against
[101]1298        empty protocol level (for backward compatibility)
1299
[100]13002005-10-15    <arnault@lal.in2p3.fr> 286
1301
1302        * source/cmt_project.cxx (use_action): Consider empty release for
[101]1303        Windows (test_directory on Windows does not work with a trailing
1304        backslash)
[100]1305
[97]13062005-10-11  Christian Arnault  <arnault@lal.in2p3.fr> 285
1307
1308        * source/cmt_project.cxx (create_project): Protection against
1309        single level directories in CMTPATH (/xxx)
1310
[96]13112005-10-11    <arnault@lal.in2p3.fr> 284
1312
[98]1313        * mgr/fragments/nmake/constituent (clean): Protect against
1314        unexisting makefile fragment when running the clean target
1315
1316        * source/cmt_parser.cxx (class StandardMacroBuilder): Enclose
[96]1317        items in the use_requirements macro into double quotes using the q
1318        macro. This to cope with spaces in directories on Windows.
1319        (dos_script_prefix): Add quotes for the -path argument
1320
[98]1321        * mgr/requirements: Add a macro definition to hold a double-quote
[96]1322
13232005-09-13    <arnault@lal.in2p3.fr> 283
1324
1325        * mgr/CMT.pacman: Add constraint on version of pacman
1326        Use ./INSTALL instead of just INSTALL
1327
[95]13282005-09-29  Christian Arnault  <arnault@lal.in2p3.fr> 283
1329
1330        * mgr/fragments/nmake/constituents_trailer (makefilesclean): Remove references to checkuses
1331        * mgr/fragments/constituents_header (config): Remove references to checkuses
1332        * mgr/fragments/constituents_trailer (makefilesclean): Remove references to checkuses
1333        * mgr/fragments/make_header (dirs): Remove references to checkuses
1334        * mgr/fragments/make_setup (config): Remove references to checkuses
1335
1336        * source/cmt_parser.cxx (do_broadcast): bug fix: the set_standard_macro was not called
1337        prior to set all EVs before the broadcast loop
1338
[92]13392005-09-09    <arnault@lal.in2p3.fr> 282
1340
1341        * mgr/Makefile: Adapt (fix) to changes in the doc directory.
1342
13432005-09-07    <arnault@lal.in2p3.fr> 281
1344
1345        * source/cmt_version.h: fix tag v1r18p20050901
1346
1347        * source/cmt_cvs.h: Fix bug when generating version.cmt file after checkout
1348
[86]13492005-09-05    <arnault@lal.in2p3.fr> 280
1350
1351        * source/cmt_std.h: Fix std context for CYGWIN
1352
[84]13532005-09-05  Christian Arnault  <arnault@lal.in2p3.fr> 279
1354
1355        * source/cmt_cvs.cxx (class CvsImplementation): Fix do_need_version
1356
1357        * source/cmt_project.cxx (StrategyMgr): Initialize VersionStrategy using default
1358
[83]13592005-09-05    <arnault@lal.in2p3.fr> 278
1360
[397]1361        * source\\cmt_parser.cxx (do_create): Make use of the
[83]1362        structure strategy for creating package directory structure.
1363
[397]1364        * source\\cmt_cvs.cxx (class CvsImplementation): Make use of the
[83]1365        structure strategy for creating package directory structure.
1366
[397]1367        * source\\cmt_parser.cxx (do_show_strategies): Display the structure strategy
[83]1368
[397]1369        * source\\cmt_syntax.cxx (class KwdStructureStrategy): Create the
[83]1370        parsing function for Structure strategies
1371
[397]1372        * source\\cmt_parser.h (enum CmtStructuringStyle): By default the
[83]1373        structuring style is initialized with default_structuring_style
1374        instead of with_version_directory in order to remember whether the
1375        default has been overridden using EV or command option.
1376
[397]1377        * source\\cmt_project.cxx (configure): Initialize the VersionDirectory strategy
[83]1378        (StrategyMgr): Create the VersionDirectory strategy entry.
1379
[397]1380        * source\\cmt_parser.h (enum): Add a StructureStrategy to define with/out version directory.
[83]1381
[82]13822005-09-05  Christian Arnault  <arnault@lal.in2p3.fr> 277
1383
1384        * mgr/cmt_buildcvsinfos2.sh (module): Adapt to the new syntax by adding the protocol level.
1385
1386        * source/cmt_include.cxx (action): Submit include_dirs statement to private scoping
1387
[80]13882005-09-01  Christian Arnault  <arnault@lal.in2p3.fr> 276
1389
[81]1390        * source/cmt_use.cxx (get_strategy): Implement the get_strategy function
1391
1392        * source/cmt_use.h (class Use): Install the get_strategy function as a member function.
1393
1394        * source/cmt_symbol.cxx (all_set): Generate all XXXROOT and XXXCONFIG evs according
[80]1395        to the strategies.
1396
1397        * source/cmt_parser.cxx (get_strategy): Make the use argument of the function a required argument
1398        ie suppress the default arg to Use::current ()
1399        Prepare to migrate this function as a member function of Use
1400
[79]14012005-08-31  Christian Arnault  <arnault@lal.in2p3.fr> 275
1402
[80]1403        * source/cmt.h (class Cmt): Making the get_strategy function a member function
1404        rather than a private local one
1405
[79]1406        * mgr/fragments/constituent (uninstall): Protect against missing un/install targets
1407        * mgr/fragments/nmake/constituent (uninstall): Protect against missing un/install targets
1408
1409        * mgr/fragments/cmt_action_runner_header: Add install and uninstall dummy target
1410        * mgr/fragments/nmake/cmt_action_runner_header: Add install and uninstall dummy target
1411
1412        * mgr/cmt_uninstall_action.bat: [Fix] typo
1413
1414        * source/cmt_project.cxx (create_project): When create a parent-less project, link it to
1415        previous top project(s) and upgrade strategies
1416        (class VisitorForFillCMTPATH): [Fix] Should not add the path separator
1417
1418        * source/cmt_project.h (class Project): Add a function to ask if a project has parents
1419
1420        * source/cmt_include.cxx (parse): When expanding include, the use must be trasmitted to new includes
1421
14222005-08-30  Christian Arnault  <arnault@lal.in2p3.fr> 275
1423
1424        * source/cmt_parser.cxx (class StandardMacroBuilder): Parse all includes for Current use
1425
1426        * source/cmt_include.cxx: Do the parse_all operation in the context of one Use.
1427
1428        * source/cmt_include.h (class Include): Do the parse_all operation in the context of one Use.
1429
1430        * source/cmt_project.cxx (create): Return a boolean status to show success of the creation
1431
1432        * source/cmt_project.h (class Project): create function returns a boolean that
1433        describes if the creation was successful. In case of success the current directory
1434        is in the cmt directory of the project.
1435
1436        * source/cmt_system.cxx (scan_dir): Fix a bug
1437
1438        * source/cmt_deps_builder.cxx (build_deps_text): Fix state change when in single line comment
1439
[78]14402005-08-19  Christian Arnault  <arnault@lal.in2p3.fr> 274
1441
1442        * source/cmt_use.cxx (fill_includes_macro): skip include_dirs entries with empty name
1443
1444        * source/cmt_project.cxx (show_all): Use the top project when current is not defined
1445        (start_visit): idem
1446        (class VisitorForFillCMTPATH): Initialize CMTPATH to empty when filling in CMTPATH for all projects
1447
1448        * source/cmt_cvs.cxx (class CvsImplementation): Add the get_module function to compute the CVS module
1449        from the requested package/offset
1450        (class CvsImplementation): Add a check_structure to verify various structures before doing the checkout
1451        (class CvsImplementation): Ask for the checkout when the directory structure is in place but
1452        when the CMT structure is NOT in place. Useful for mounting disks before the checkout.
1453
1454        * source/cmt_parser.cxx (class StandardMacroBuilder): Apply the post-processing of include_dirs statements.
1455        (get_strategy): Get the top project to compute a strategy when the current project is not defined
1456        in order to avoid losing all strategies for standalone packages.
1457
1458        * source/cmt_include.h (class Include): Suppress print_all and print_filters obsolete functions
1459        * source/cmt_include.cxx: Suppress print_all and print_filters obsolete functions
1460        (parse): Add a post-processing step to expand include_dirs statements at set_standard_macros stage
1461
1462        * source/cmt_deps_builder.cxx (build_deps_text): Fix and Change the way source files are parsed
1463        for computing dependencies. Fill a cmt_string at once and traverse the string without any additional
1464        copy.
1465
14662005-07-21  Christian Arnault  <arnault@lal.in2p3.fr> 274
1467
1468        * source/cmt_symbol.cxx (build): Clean up unneeded path separators
1469
14702005-07-19  Christian Arnault  <arnault@lal.in2p3.fr> 274
1471
1472        * source/cmt_symbol.cxx (build): Suppress old test in CommandPathRemoveRegexp
1473
[50]14742005-05-09  Christian Arnault  <arnault@lal.in2p3.fr> 273
1475
1476        * source/cmt_use.cxx (fill_standard_macros): Fix a bug in setting
1477        the project macros (missing CR)
1478
[45]14792005-05-02  Christian Arnault  <arnault@lal.in2p3.fr> 272
1480
[46]1481        * source/cmt_version.h: Prepare v1r18p20050501
1482
[45]1483        * source/cmt_cvs.cxx: Adding CMTPATH internal management
1484        Improve broadcast operation after recursive checkouts
1485
14862005-05-01  Christian Arnault  <arnault@lal.in2p3.fr> 272
1487
1488        * mgr/Makefile (pacman): Create the pacman file for that version.
1489
1490        * mgr/CMT.pacman: Migrate to Pacman3
1491
1492        * source/cmt_cvs.cxx: Supporting project checkout
1493        recursive project checkouts
1494        without_version_directory mode
1495        container statements in project files.
1496        alias version directory
1497        Various cleanup and restructuring operations
1498
1499        * mgr/requirements: Adapt for shared libs on CYGWIN (thanks to Guy Barrand)
1500
1501        * src/setup.zsh: Add cmt subprojects command
1502
1503        * src/setup.tcsh: Add cmt subprojects command
1504
[43]15052005-04-26  Christian Arnault  <arnault@lal.in2p3.fr> 271
1506
1507        * source/cmt_cvs.cxx: Add recursive passes for cvs co -R on projects (not completed)
1508        Add support/checking of protocol level against CVS pluggin
1509        Detection of non-installation of the CVS pluggin
1510
1511        * mgr/requirements: Add a macro cmt_cvs_protocol_level to specify
1512        the expected protocol level with the CVS pluggin
1513
[42]15142005-04-25    <arnault@lal.in2p3.fr> 270
1515
1516        * source/cmt_cvs.cxx (class CvsImplementation): Accept empty
1517        argument for queries on subprojects
1518
1519        * source/cmt_cvs.cxx (class CvsImplementation): Accept empty
1520        argument for queries on subpackages
1521
1522        * source/cmt_cvs.cxx (class CvsImplementation): Selection for
1523        getting the mudule contents is done using the structure
1524        information.
1525
1526        * source/cmt_cvs.cxx (class CvsImplementation): Isolate specific
1527        behaviour into dedicated functions for getting the specific
1528        contents for packages or for projects.
1529
1530        * source/cmt_cvs.cxx (class CvsImplementation): Retrieve fields
1531        for structure and subprojects from the CVS pluggin.
1532
1533        * source/cmt_cvs.cxx (class CvsImplementation): Manage the
1534        protocol level related with the version of the CVS pluggin.
1535
1536        * source/cmt_cvs.cxx (class CvsImplementation): Suppress all dots
1537        from the tmpdir due to problems on Windows
1538
1539        * source/cmt_cvs.cxx (class CvsImplementation): Add support for
1540        struture_info and subprojects coming from the new CVS pluggin
1541
1542        * source/cmt_parser.cxx (do_cvssubprojects): Handle the
1543        cvssubprojects command
1544        (parser): Commands related with CVS should at least read the
1545        requirements file of CMT
1546
1547        * source/cmt_parser.h (enum): Add cvssubprojects action
1548
1549        * source/cmt_commands.cxx (CommandHelp): Add help for
1550        cvssubprojects command
1551
1552        * source/cmt_commands.cxx (do_cvssubprojects): Accept empty
1553        argument to query for subprojects at top of the repository
1554
1555        * source/cmt_commands.cxx (do_cvssubpackages): Accept empty
1556        argument to query for subpackages at top of the repository
1557
1558        * source/cmt_commands.cxx (ArgParser): Manage cvssubprojects command.
1559
1560        * source/cmt_commands.h (class ArgParser): Add cvssubprojects command
1561
1562        * source/cmt_use.cxx (fill_standard_macros): Production of a new
1563        standard macro for obtaining the project releases
1564
1565        * source/cmt_cvs.h (class Cvs): Add the subprojects function to
1566        query CVS about the existing subprojects of a given module.
1567
[41]15682005-04-23  Christian Arnault  <arnault@lal.in2p3.fr> 269
1569
1570        * source/cmt_project.h (class Project): container and
1571        container_version access methods
1572
1573        * source/cmt_project.cxx (container_action): Implementation of the
1574        container statement
1575
1576        * source/cmt_project.h (class Project): Add handling of the container statement
1577
1578        * source/cmt_syntax.cxx (class KwdContainer): Add support of the
1579        project container package
1580        (SyntaxParser): idem
1581
[39]15822005-04-21  Christian Arnault  <arnault@lal.in2p3.fr> 268
1583
1584        * source/cmt_project.cxx (create_project): Check pwd for finding
1585        projects.
1586
1587        * source/cmt_symbol.cxx (find_path_entry): Look for existing PATH
1588        entries by comparing the real path rather than the logical
[40]1589        path. Use pwd everywhere (or CmtSystem::compress_path when the
1590        path is not exactly found)
1591       
[39]1592
[38]15932005-04-14  Christian Arnault  <arnault@lal.in2p3.fr> 267
1594
1595        * source/cmt_system.cxx (class CMTPathManager): CMTUSERCONTEXT and
[46]1596        CMTHOME environments give a specific name to the associated
[38]1597        project.
1598
1599        * source/cmt_project.cxx (create_project): Fixing the project
1600        naming scheme. Project name specified in the project files take
1601        precedence over the names found in the path.
1602
[37]16032005-04-13  Christian Arnault  <arnault@lal.in2p3.fr> 266
1604
1605        * source/cmt_commands.cxx (do_cvstags, do_cvssubpackages): Fix arg counting.
1606
[36]16072005-04-12  Christian Arnault  <arnault@lal.in2p3.fr> 265
1608
1609        * source/cmt_project.cxx (create_project): Restructure the
[46]1610        algorithm for detection of project structuring cases. Construct a
[36]1611        finite list of cases.
1612        (has_parent): Implement recursive query function
1613        (has_child): Implement recursive query function
1614        (add_parent, add_child): Use the recursive detection to avoid cycles.
1615
1616        * source/cmt_project.h (class Project): Add has_parent and
1617        has_child functions to protect against recursive cycles
1618
[33]16192005-04-02  Christian Arnault  <arnault@lal.in2p3.fr> 264
1620
1621        * source/cmt_version.h (CMTVERSION): Prepare for v1r18p20050401
1622
1623        * mgr/requirements: use ln -fs for cmt_installarea_command
1624
[24]16252005-03-31  Christian Arnault  <arnault@lal.in2p3.fr> 263
[23]1626
[32]1627        * doc/ReleaseNotes: prepare release notes
[24]1628       
1629        * source/cmt_project.cxx (create_project): Fix settings of the project name.
1630
[23]16312005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 262
1632
1633        * mgr/NMake (demo): Adapt to the new syntax of cmt create_project
1634
1635        * source/cmt_project.cxx (create_project): Suppress several warnings
1636
[22]16372005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 261
[21]1638
1639        * doc/table.html: Install link to the Trac bug reporting system. 
1640
[19]16412005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 261
[18]1642
[22]1643        * source/cmt_project.cxx (create): The create function now creates
1644        the complete directory hierarchy for the project including the
1645        release level(s). Can accept a path.
1646        (create_project): Don't assume a release level.
1647
[32]1648        * source/cmt_project.h (class Project): The create function now
1649        accepts a release and a path argument
[22]1650
1651        * source/cmt_commands.cxx (show): Suppress debug printouts
1652        * source/cmt_parser.cxx (do_help): Suppress debug printouts
1653
[19]1654        * source/cmt_system.cxx (is_version_directory): Accept HEAD/head as a valid version directory.
1655
[18]16562005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 260
1657
1658        * doc/CMTDoc.xml: work on the doc (unfinished)
1659
1660        * source/cmt_project.cxx (use_action): The name specification of a
1661        project use statement is used to create the project.
1662 
1663        * source/cmt_project.cxx (create_project): Implement the algo to
1664        construct or discover the real project name and release from the
1665        context. The new algo supports release specifications as a
1666        multi-level directory definition.
1667
1668        * source/cmt_project.cxx (get_release_from_path): Function to
1669        retreive the release sub-string from a path, given the project
1670        name.
1671
1672        * source/cmt_project.h (class ProjectFactory): Add the project
1673        name as first argument to the create_project function.
1674
1675        * source/cmt_system.cxx (class CMTPathManager): when specified
1676        from a CMTPATH item, the project creation has to guess the project
1677        name.
1678
1679        * mgr/Makefile (gendoc): Suppress the | output modifier
1680
[17]16812005-03-16  Christian Arnault  <arnault@lal.in2p3.fr> 259
1682
1683        * mgr/fragments/dependencies: We need to reconsider all sources to
1684        recompute all dependencies that may have changed due to
1685        configuration changes. Thus the -all_sources is added
1686
[16]16872005-03-15  Christian Arnault  <arnault@lal.in2p3.fr> 258
1688
1689        * source/cmt_parser.cxx (clear): Add m_autoconfigure_cmtpath
1690        variable to discard autoconfiguration of CMTPATH during initial
1691        phases of the configuration.
1692       
1693        (guess_current_project): Once the current project is known, the
1694        CMTPATH is re-generated from the effective knowledge of the
1695        project graph.
1696
1697        (do_setup): Add a check of the configuration when doing cmt setup
1698
1699        (do_check_configuration): analyze the tags coming from arguments
1700        or from CMTSITE to detect mistypings. This is done by checking the
1701        effective usage of those tags.
1702
1703        (configure_cmt_path): Analyze CMTPATH from either the symbol value
1704        or from the EV, before asking the project factory to create the
1705        projects from it.
1706
1707        (get_strategy): Add a generic local function to query the strategy elements.
1708
1709        * source/cmt_project.cxx (add): Manage conflicts between project
1710        release requests on a strict basis (no wild card - exact match
1711        only)
1712
1713        * source/cmt_project.h (class ProjectFactory): No longer need m_first and m_previous
1714
1715        * source/cmt_project.cxx (create_project): Implement a graph of projects.
1716        (create_project): Interpret the first top level directory as the project release
1717       
1718        (create_project): Interpret the second top level directory as the
1719        project name when it's not defined in the project file. So we
1720        don't create a dummy project name anymore Project<n>.
1721
1722        * source/cmt_commands.cxx (ArgParser): Suppress obsolete +path option
1723        (parse): Initialize the m_action value to none to fix a bad management of unknown commands
1724        (do_filter): Implement the cmt filter command
1725
[32]1726        * source/cmt_error.cxx (class Error): Add unknown_command and
1727        project_release_conflict errors
[16]1728
[32]1729        * source/cmt_syntax.cxx (class KwdBuildStrategy): Apply the
1730        restructuration of strategy management to strategy decoding
1731
[16]1732        (class KwdSetupStrategy): idem
1733        (class KwdUse): Support the use statement for project files
1734        (SyntaxParser): Support the use statement for project files
1735
[32]1736        * source/cmt_project.h (class StrategyDef): Create a class to hold
1737        the definition of all strategy elements
[16]1738        (class Strategy): Create a class to hold the application of a strategy into a project
1739        (class StrategyMgr): Create a singleton to manage the strategy definitions
1740        (class ProjectFactory): Add parent argument to create_project to handle the project graph
1741        (class IProjectVisitor): Create a class to visit the project graph
[32]1742        (class Project): Transport all definitions related with strategies into Strategy objects
[16]1743
1744        * source/cmt_system.cxx (class CMTPathManager): Add a class to
1745        interact with the ProjectFactory to convert CMTPATH specifications
1746        into projects
1747
1748        (get_cmt_paths): Suppress the setting from $CMTPATH. This is
1749        replaced by a selective understanding of the source of CMTPATH
1750        either from the symbol (when defined in a requirements file) or
1751        from the EV. This selection is performed in
1752        Cmt::configure_cmt_path.
1753
1754        (get_cmt_paths): Suppress the definition of a CMTPATH entry for CMT itself
1755
[15]17562005-03-10    <arnault@lal.in2p3.fr> 257
1757
1758        * mgr/NMake (demo): Add project file to the demo context.
1759
[9]17602005-03-04  Christian Arnault  <arnault@lal.in2p3.fr> 256
1761
1762        * source/cmt_project.cxx: Ongoing work for redefining Project graphs.
1763
[8]17642005-03-03  Christian Arnault  <arnault@lal.in2p3.fr> 255
1765
1766        * source/cmt_project.cxx (add): Manage project release conflicts.
1767
1768        * source/cmt_error.h (class CmtError): Add project_release_conflict error
1769        * source/cmt_error.cxx (class Error): Add project_release_conflict error
1770
[32]1771        * source/cmt_project.h (class Project): Introduce the management
1772        of release information in projects
[8]1773
1774        * source/cmt_parser.cxx (do_check_configuration): Finally suppress the checking of CMTCONFIG
1775        (do_setup): Add do_check_configuration to check some tag settings.
1776
[5]17772005-03-02  Christian Arnault  <arnault@lal.in2p3.fr> 254
[3]1778
1779        * source/cmt_symbol.h (class Symbol): Add an optional argument to build_macro_value to switch display mode
1780
1781        * source/cmt_symbol.cxx (show_macro): Improve the display mode so as to display only once the macro construction steps
1782
1783        * source/cmt_parser.cxx (guess_current_project): Regenerate CMTPATH from the effective set of subprojects.
1784
1785        * source/cmt_commands.cxx (parse): Handle unexpected arguments
1786
1787        * source/cmt_error.cxx (class Error): Added unknown_command error
1788        * source/cmt_error.h (class CmtError): Added unknown_command error
1789
1790        * source/cmt_commands.cxx (do_filter): Missing implementation for the filter command
1791
[5]17922005-03-01  Christian Arnault  <arnault@lal.in2p3.fr> 254
[3]1793
1794        * source/cmt_tag.cxx (use_operand): Add way of checking internal structure of a tag
1795        * source/cmt_tag.cxx (use_ref): Add way of checking internal structure of a tag
1796        * source/cmt_tag.h (class Tag): Add way of checking internal structure of a tag
1797        * source/cmt_symbol.h (class Symbol): Add way of checking if a tag is used by symbols.
1798        * source/cmt_symbol.cxx (print): Suppress the "export" action after defining an alias in Sh mode
1799        * source/cmt_project.cxx: Introduce use_action
1800        * source/cmt_syntax.cxx (SyntaxParser): Add support to use statements in project files
1801        * source/cmt_project.cxx (create_project): Add comments
1802
[5]18032005-02-14  Christian Arnault  <arnault@lal.in2p3.fr> 253
1804
1805        * src/Makefile.header (common_target): mktemp refuses to create
1806        subdirectory when TMPDIR specifies something different than /tmp
1807        that does not exist yet.
1808
18092005-02-07  Christian Arnault  <arnault@lal.in2p3.fr> 252
1810
[32]1811        * source/cmt_system.cxx (scan_dir): Fix a bug that killed the cmt
1812        show packages command in some cases
[5]1813
18142005-02-03    <arnault@lal.in2p3.fr> 251
1815
1816        * source/cmt_commands.cxx (do_cvstags): fix arg counting
1817        * source/cmt_commands.cxx (do_cvssubpackages): fix arg counting
1818
[3]18192004-12-14    <arnault@lal.in2p3.fr> 250
1820
1821        * source/cmt_parser.cxx (class StandardMacroBuilder): Fix a bug
1822        that caused a premature exit from the scan of constituents.
1823
18242004-12-13    <arnault@lal.in2p3.fr> 249
1825
1826        * source/cmt_constituent.cxx (parse): Add a specific behaviour for
1827        documents generated for actions so as to keep the action_value
1828        definition unparsed.
1829
18302004-12-03 <arnault@lal.in2p3.fr> 248
1831
1832        * mgr/fragments/nmake/library: apply patches from Pere about installing pdb files for Debug mode
1833
18342004-12-01    <arnault@lal.in2p3.fr> 247
1835
[16]1836        * source/cmt_version.h (CMTVERSION): Prepare for tagging v1r18p20041201
[3]1837
1838        * source/cmt.h (class Cmt): Fix typo
1839
18402004-12-01  Christian Arnault  <arnault@lal.in2p3.fr> 246
1841
1842        * mgr/cmt_uninstall_action.sh: Better management of directory removal
1843
18442004-12-01  Christian Arnault  <arnault@lal.in2p3.fr> 246
1845
1846        * mgr/fragments/application (install):
1847        * mgr/fragments/library (install):
1848        * mgr/fragments/library_no_share (install):
1849        * mgr/fragments/install_includes_header (install):
1850        * mgr/fragments/jar (install):
1851        * mgr/fragments/java_header (install): Remove the connection
1852        between uninstall and clean targets. So now when gmake clean is
1853        run no uinstallation occurs in the installation area.
1854
18552004-11-11    <arnault@lal.in2p3.fr> 245
1856
1857        * source/cmt_parser.h:
1858        * source/cmt_project.cxx:
1859        * source/cmt_project.h:
1860        * source/cmt_syntax.cxx:
1861        * source/cmt_parser.cxx:
1862        * doc/CMTDoc.xml: Suppress obsolete (and useless) makefile strategy
1863
1864        * source/cmt_parser.cxx (print_context): the setup strategy is
1865        really used to generate the ROOT and CONFIG env. vars.
1866
1867        * source/cmt_parser.cxx (get_setup_strategy): Get the setup
1868        strategy for each use so as to really build ROOT or CONFIG
1869        according to the real project of the use
1870
18712004-11-09    <arnault@lal.in2p3.fr> 244
1872
1873        * source/cmt_version.h: Preparing version tag for v1r18
1874       
1875        * mgr/requirements:
1876        * source/cmt_parser.h:
1877        * source/cmt_projects.cxx: Change default build strategy to without_installarea
1878
18792004-11-08    <arnault@lal.in2p3.fr> 243
1880
1881        * mgr/Makefile (docs): Do some cleanup
1882
1883        * source/cmt_parser.cxx (do_build_library_links): make use of the
1884        new library_install_command macro
1885
1886        * mgr/requirements: Create a new macro library_install_command for
1887        defining how to actually install libraries through the
1888        <package>_libraries macro.
1889
18902004-11-02  Christian Arnault  <arnault@lal.in2p3.fr> 242
1891
1892        * source/cmt_commands.cxx (option_tag): When resetting tags one
1893        need to also call again guess_current_project
1894       
1895        (option_tag): In fact on can simply reset all active tags, and
1896        regenerate activations rather than clearing all tags.
1897
1898        * source/cmt_parser.cxx (guess_current_project): Fix a typo
1899
1900        * source/cmt_tag.cxx (get_default): Make the tag Default a static
1901        object to avoid killing it.
1902
1903
19042004-11-01    <arnault@lal.in2p3.fr> 241
1905
1906        * source/cmt_parser.cxx (guess_current_project): Implement the
1907        detection of the current project
1908
1909        * source/cmt_parser.cxx (configure): Add the detection of the
1910        current project through a project file above the current directory
1911
19122004-10-30  Christian Arnault  <arnault@lal.in2p3.fr> 240
1913
1914        * source/cmt_parser.cxx (class StandardMacroBuilder): Apply the
1915        cmtpath_patterns before setting up the installarea parameters so
1916        as to let the patterns really define the
1917        <project>_installarea_prefix for instance.
1918       
1919        (set_standard_macros): Remove this first setting of installarea
1920        because it's better done only once.
1921
1922        * mgr/fragments/constituent: Remove a debug message
1923
1924        * mgr/requirements: Prepare for new tag v1r18
1925
1926        * mgr/cmt_uninstall_action.sh:
1927        * mgr/cmt_install_action.sh: Late fixes
1928
19292004-10-29    <arnault@lal.in2p3.fr> 239
1930
1931        * source/cmt_parser.cxx (set_standard_macros): Restructure the
1932        StandardMacroBuilder to provide all steps.  Move upward the
1933        fill_for_install_area to make all cmtpath_patterns applied before
1934        manging other macros. This caused the include_dirs installed in a
1935        cmtpath_pattern useless.
1936
1937        * source/cmt_list.h (class cmt_list): few fixes for CYGWIN
1938
1939        * mgr/requirements: CYGWIN tag implies Linux
1940
1941        * mgr/fragments/install_includes_header (uninstall):
1942        * mgr/fragments/java_header (install):
1943        * mgr/fragments/jar (install):
1944        * mgr/fragments/library_no_share (install):
1945        * mgr/fragments/library (install):
1946        * mgr/fragments/application (install):
1947        * mgr/cmt_install_action.sh:
1948        * mgr/cmt_uninstall_action.sh: Improve the argument passing scheme
1949        to make it more flexible. Add an argument to get cmtpath, to check
1950        it against pwd. However this should never occur since cmt itself
1951        is supposed to never generate CMTNSTALLAREA when this is not
1952        appropriate.
1953
1954        * source/cmt_install_area.cxx (setup_current_installarea): Consider <project>_installarea_prefix
1955
1956        * source/cmt_system.cxx (compress_path): Fix a bug: when detecting
1957        the aaa/bbb/../ccc pattern, "bbb" cannot be ".." nor "." nor
1958        contain a macro reference.
1959
19602004-10-25    <arnault@lal.in2p3.fr> 238
1961
1962        * source/cmt_parser.cxx (do_run): Force the settings of EVs
1963        before launching the run action
1964
1965        * source/cmt_parser.cxx (do_broadcast): Force the settings of EVs
1966        before launching the bro action
1967
1968        * source/cmt_commands.cxx (do_run): The run command now transmits all arguments
1969
1970        * source/cmt_list.h: Prepare a list class for future use. This be
1971        used to handle the constituent order mechanisms.
1972
1973        * mgr/Makefile:
1974        * mgr/NMake (post_build): Add a post_build step to re-generate the
1975        cmt_dependencies.[n]make file (one version in mgr without the
1976        stamps and one version in $(bin) with them)
1977       
1978        * source/cmt_generators.h (class DependencyGenerator):
1979        * source/cmt_generators.cxx (build): Add an option -no_stamps to
1980        buid dependencies so as to generate a version of the dependency
1981        files without the extra stamps specifications and with no stamp
1982        file generation. This is need to generate the bootstrap dependency
1983        file for cmt itself.
1984
1985        * source/cmt_generators.cxx:
1986        * source/cmt_generators.h (class DependencyGenerator):
1987        * source/cmt_generator.h (class CmtGenerator): Revisit the construction of dependencies files:
1988        The dependencies file is split as one file fragment per dependency line (ie per file)
1989        This dep fragment is installed into $(bin)/<constituent>/*.stamp
1990        a dep to this stamp file is installed in the dependency line
1991        the stamps file is only touched when it changes
1992        All this to ensure that recompilations are done when anythin in th configuration is changed
1993
1994        * source/cmt_map.h (cmt_vmap): Introduce cmt_vmap to construct
1995        maps of objects by value
1996
1997        * source/cmt.h (class Cmt): Restart of set settings can be
1998        manually triggered. Typically to ensure that they are really set
1999        just before launching an action
2000
2001        * mgr/cmt_make_shlib_common.sh (temp_shlib): Suppress the
2002        automatic construction of bundles on Darwin
2003
2004        * source/cmt_system.cxx (add_cmt_path): Adding protections of
2005        validity of CMTPATH entries
2006
2007        * source/cmt.h:
2008        * source/cmt_parser.h:
2009        * source/cmt_parser.cxx:
2010        * source/cmt_command.h:
2011        * source/cmt_command.cxx: Introducing classes for command line parsing
2012        All decoding of the cmt command line arguments are transfered there.
2013        The decoding is also rationalized.
2014        actions can be seen as cmt command extensions
2015        better preparing of EVs before running actions
2016        prepare the Makefile default file before running actions
2017        improve the generic management of options
2018        * cmt.h: Introduction of the CmtContext class to hold global state variables
2019        for Cmt. The Cmt class now only contains static functions.
2020
2021        * src/source: Major restructuring of the directories:
2022        All real sources of cmt now go to ../source
2023        ../src only contains stuff that need to be exported
2024        ../fragments is transfered to mgr/fragments.
2025
2026        * doc/gendoc.py (Book.book_start): Produce the revision date of the documentation
2027        Install the real version tag in the doc.
2028
2029        * doc/CMTDoc.xml: Improving the doc
2030
20312004-10-17    <arnault@lal.in2p3.fr> 238
2032
2033        * mgr/cmt_make_shlib_common.sh: Suppress the systematic creation
2034        of a bundle in Darwin context
2035
20362004-09-28    <arnault@lal.in2p3.fr> 237
2037
2038        * src/cmt_system.cxx (compress_path): The algorithm must ignore
2039        the following pattern: xxxx/$(mmm)/../yyyy which cannot be reduced
2040        to xxxx/yyyy. In fact it nows expands the path when macros are in it
2041
20422004-09-27    <arnault@lal.in2p3.fr> 237
2043
2044        * src/NMakefile.header (check_config): Ensure that configuration
2045        checking is performed first.
2046
2047        * src/Makefile.header (check_config): Ensure that configuration
2048        checking is performed first.
2049
2050        * src/cmt_use.cxx (need_new): Only display the incompatible case.
2051
2052        * src/cmt_use.cxx (reach_package): IncompatibleMajorIds is no
2053        longer considered. Id comparison is no longer rejected in any
2054        case.
2055
2056        * src/cmt_use.cxx (compare_versions): Really compare major ids. No
2057        longer produce IncompatibleMajorIds
2058
2059        * src/cmt_use.cxx (enum): Add cases to completely analyze the major ids
2060
2061        * src/cmt_use.cxx (operate):
2062
2063        * src/cmt_system.cxx (get_cmt_paths): Suppress the systematic
2064        addition of $CMTROOT in CMTPATH items!
2065
2066        * src/cmt_awk.cxx (scan_path): really stop the too deep recursion
2067
20682004-09-01    <arnault@lal.in2p3.fr> 236
2069
2070        * src/cmt_version.h (CMTVERSION): v1r16p20040901
2071
2072        * doc/ReleaseNotes.html: Prepare next tagging
2073
2074        * mgr/Makefile: Adapt for the new CMTBIN convention
2075
2076        * src/cmt_model.cxx (filter): Substitute <cmt:null/> only just
2077        before printing for empty vector elements
2078
20792004-08-31    <arnault@lal.in2p3.fr> 235
2080
2081        * doc/CMTDoc.xml: Improve the doc.
2082
2083        * src/cmt_model.cxx (strict_expand): Support parameter values enclosed in simple quotes
2084        Only display endl at the very end or recursion.
2085
2086        * src/cmt_project.cxx (configure): Fix typo in tag excludes
2087
20882004-08-30  Christian Arnault  <arnault@lal.in2p3.fr> 234
2089
2090        * mgr/requirements: Keep 3 digits for the compiler version
2091        * mgr/Makefile: augment support for SLC3 machines
2092        * mgr/cmt_linux_version.sh: idem
2093
20942004-08-30    <arnault@lal.in2p3.fr> 233
2095
2096        * doc/CMTDoc.xml:
2097        * doc/table.html: Install the reference to CeCILL licences
2098        * doc/download.html:
2099        * doc/intro.html:
2100        * doc/copyright.html:
2101
2102        * fragments/dependencies: Trigger the reconstruction of dependency
2103        file when the setup changes.
2104
2105        * fragments/constituents_header (first): Do not ovverride
2106        <package>_setup.make when identical. This permits its use as a
2107        real stamp file to trigger reconstruction of dependency files.
2108
2109        * mgr/Makefile (cpp): Take into account the new convention for
2110        CMTBIN (suffixed with `uname -m`)
2111
2112        * mgr/cmt_system.sh: improve the default value of CMTCONFIG on Cygwin
2113
2114        * mgr/requirements: Improve the cleaning and setting of PATH
2115        vaiables WRT installation area strategy
2116
2117        * src/cmt_parser.cxx (dos_script_prefix): Standalone packages
[397]2118        don't need ..\\.. in the -path option of DOS setup scripts
[3]2119
2120        * src/setup.sh (CMTBIN): Suffix CMTBIN with `uname -m` on Unix machines
2121        * src/setup.csh: idem
2122
21232004-08-26    <arnault@lal.in2p3.fr> 232
2124
2125        * src/setup.bat: Suppress the rem--- lines
2126        * src/demo/demoA/init.bat: Suppress the rem--- lines
2127        * src/demo/demoB/init.bat: Suppress the rem--- lines
2128
21292004-08-25  Christian Arnault  <arnault@lal.in2p3.fr> 231
2130
2131        * src/setup.tcsh: Fix typo
2132
2133        * src/cmt_license.sh: Add template file to include in a various sources (commented by hash signs)
2134        * src/cmt_license.h: Add template file to include in a C++ source
2135
2136        * src/cmt_parser.cxx (do_expand_model): Add a -test internal
2137        option to the expand model command to test regular expressions.
2138
2139        * src/cmt_regexp.cxx (match): a or_node matches the longest
2140         matching alternate patterns, instead of the first one.
2141
[397]2142        * src/cmt_system.cxx (split): Detect \\" and \\' patterns and ignore
2143        them as word separators. So a text containing "a b c" d e \\"x\\" will result in 4 fields
[3]2144        a b c
2145        d
2146        e
[397]2147        \\"x\\"
[3]2148
2149        * src/cmt_model.cxx (strict_expand): Implement the strict model
2150        expansion. The new syntax for definning model is:
2151
2152        <cmts:name att="value" ... />         for a single expansion
2153        <cmtv:name att="v1 v2 v3 ..." ... />  for a multiple expansion
2154
2155        The element <cmt:null/> may be used in a vector value to specify an empty value.
2156
2157        name is the name of a declared make_fragment as usual.
2158       
2159
21602004-08-23  Christian Arnault  <arnault@lal.in2p3.fr> 230
2161
2162        * src/cmt_regexp.h (class cmt_regexp): Adding comparison operator
2163        and extraction operator to regexp::iterator
2164
2165        * src/cmt_parser.cxx (do_expand_model): Parse the -strict option
2166
2167        * src/cmt_model.h (class CmtModel): Start designing the support
2168        for stricter model expansion (to support model files in XML)
2169
2170        * src/cmt_license.txt: First introduction of the license text (obtained from CeCILL)
2171
2172        * src/Makefile.header (all): Evaluate the result of the cmt check
2173        configuration and stop Make if it terminates in error.
2174
2175        * src/cmt_generators.cxx (analyze_file): Evaluate if the file
2176        exists. Only generate its SourceFile if it exists or can be built
2177        (build): Accumulate the file names only if they can be built.
2178
2179        * src/cmt_generators.h (class DocumentGenerator): Make
2180        analyze_file return if the file is not found.
2181        (class LibraryGenerator): idem
2182
2183        * src/cmt_parser.cxx (parser): Make the configure_error a fatal error.
2184
2185        * src/Makefile.header (common_target): Improve the tmpdir mechanisms. Support ${TMPDIR}
2186
2187        * src/cmt_parser.cxx (dos_script_prefix): Suppress the -quiet
2188        option in the setup scripts now that errors are sent to stderr
2189        instead of stdout.
2190
2191        * src/cmt_constituent.cxx (class constituents_action_iterator): Use cerr instead of cout
2192
2193        * src/cmt_fragment.cxx (copy): Use cerr instead of cout
2194
2195        * src/cmt_generators.cxx (java_file_action, build, build): Use cerr instead of cout
2196
2197        * src/cmt_parser.cxx (do_awk): typo
2198        (do_filter, parse_arguments, parser): Use cerr instead of cout
2199
2200        * src/cmt_use.cxx (install_library, get_all_clients, operate): Use cerr instead of cout
2201
2202        * src/cmt_system.cxx (remove_file, remove_directory): Use cerr instead of cout
2203
2204        * src/cmt_tag.cxx (action_apply): Use cerr instead of cout
2205
2206        * src/cmt_symbol.cxx (create, build): Use cerr instead of cout
2207
2208        * src/cmt_pattern.cxx (action): Use cerr instead of cout
2209
2210        * src/cmt_syntax.cxx: general substitution of cout to cerr
2211
2212        * src/cmt_error.cxx (get_error_name): format text only
2213        (print): Use cerr instead of cout
2214
2215        * src/cmt_lock.cxx (check): format text only
2216
22172004-08-20  Christian Arnault  <arnault@lal.in2p3.fr> 229
2218
2219        * mgr/requirements: Protect the cmt_installare_linkopts against
2220        ambiguous tag settings
2221
2222        * src/cmt_awk.cxx (scan_path): First compress the path before
2223        calling the actual recursive scanner
2224        (scan_path): Completely revisit the scan algorithm to better
2225        account for directory structures and version.cmt files and package
2226        statements.
2227
2228        * src/cmt_project.cxx (create_project): The project file parsing
2229        must occur after setting the project chain. This caused wrong tag
2230        propagation across the Project chain.
2231
22322004-08-04  Christian Arnault  <arnault@lal.in2p3.fr> 228
2233
2234        * src/cmt_parser.cxx (do_create): use only compressed paths
2235        (do_remove): idem
2236
2237        * src/cmt_use.cxx (get_cmtpath_and_offset): Need to compress the cmtpath to suppress .. patterns
2238
2239        * src/cmt_system.cxx (compress_path): Compress the pattern /xxx/.. or xxx/.. instead of xxx/../
2240
22412004-07-01    <arnault@lal.in2p3.fr> 227
2242
2243        * src/cmt_version.h: Prepare tagging v1r16p20040701
2244
[397]2245        * src\\cmt_parser.h: idem
[3]2246
[397]2247        * src\\cmt.h (class Cmt): Suppress version strategy
[3]2248
[397]2249        * src\\cmt_parser.cxx (do_show_strategies): Suppress version strategy
[3]2250
22512004-06-30    <arnault@lal.in2p3.fr> 226
2252
[397]2253        * src\\cmt_version.h (CMTVERSION): Prepare tagging v1r16p20040630
[3]2254
2255        * src/cmt_generator.cxx (class WinDefAwk): Better generation of .def files for DATA
2256
22572004-06-24    <arnault@lal.in2p3.fr> 225
2258
2259        * src/cmt_use.cxx (need_new): fix a bug that impacted on the order of
2260        compatible use requests with different specifications.
2261
[397]2262        * src\\cmt_symbol.cxx (build): Add a debug print
[3]2263        (SymbolValueList::show): only display actions with a non empty value
2264
[397]2265        * src\\cmt_use.cxx (add): improve the debug statements (no change to algo)
[3]2266
[397]2267        * mgr\\requirements: Improve the removal operations for Windows in the cmtpath_patterns
[3]2268
22692004-06-12    <arnault@lal.in2p3.fr> 225
2270
[397]2271        * src\\cmt_parser.cxx (need_prototypes): Fix access to prototype mask of build strategy
[3]2272
22732004-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 224
2274
2275        * Tagging v1r16p20040527
2276
2277        * src/demo/demo1.cmt: Add a test for -target_tag option
2278
2279        * src/cmt_parser.cxx (do_build_library_links): Transfered the code
2280        to install a lib symlink into cmt_use.cxx
2281
2282        * src/cmt_use.cxx (same_dirs): Add a local helper function to
2283        check if two directory specifications point to the same location
2284        (install_library): Common local function to really create a
2285        symlink to a file either into ../$(tag) or into $(CMTINSTALLAREA)/$(tag)/lib
2286        (build_library_links): Build all the library links for a Use.
2287
2288        * src/cmt_use.h (class Use): Add a function to build the library links (the code is
2289        extracted from Cmt::do_build_library_links () )
2290
22912004-05-27    <arnault@lal.in2p3.fr> 223
2292
[397]2293        * src\\cmt_version.h (CMTVERSION): Prepare for real tagging v1r16p20040527
2294        * doc\\download.html: idem
[3]2295
[397]2296        * doc\\CMTDoc.xml: Update the doc for the new -target_tag option
[3]2297
[397]2298        * src\\cmt_constituent.cxx (add_for_action): Actions always have a target tag.
[3]2299
[397]2300        * src\\demo\\demoA\\requirements: Add a -target_tag option to demoA target to test this feature.
[3]2301
[397]2302        * fragments\\constituent: Construct or not a local tag makefile according to has_target_tag
2303        * fragments\\nmake\\constituent: id
2304        * fragments\\make_header: id
2305        * fragments\\nmake\\make_header: id
[3]2306
[397]2307        * src\\cmt_generators.cxx (LibraryGenerator::build):
[3]2308        (DocumentGenerator::build): Transmit m_HASTARGETTAG
2309
[397]2310        * src\\cmt_generator.cxx (reset): Initialize the new m_HASTARGETTAG variable.
[3]2311
[397]2312        * src\\cmt_generator.h (class CmtGenerator): Add a m_HASTARGETTAG
[3]2313        Variable to propagate the target_tag ability of the constituents
2314
[397]2315        * src\\cmt_constituent.cxx (show): Display the -target_tag option
[3]2316        (class constituents_action_iterator): Parse the -target_tag option
2317
[397]2318        * src\\cmt_constituent.h (class Constituent): Add support for the
[3]2319        new -target_tag option, to control the per-constituent generation
2320        of the target tag. So add a field has_target_tag
2321       
2322
23232004-05-25  Christian Arnault  <arnault@lal.in2p3.fr> 222
2324
2325        * mgr/requirements: Use $(tag) instead of ${CMTCONFIG} in all cmtpath_pattern s
2326
2327        * src/NMakefile.header (tags): idem
2328        * src/Makefile.header (tags): idem
2329        * fragments/nmake/make_header: idem
2330        * fragments/nmake/constituents_header (tags): idem
2331        * fragments/make_header (tags): idem
2332        * fragments/constituents_header (tags): prefix the tags macro with $(tag)
2333
23342004-05-25    <arnault@lal.in2p3.fr> 221
2335
[397]2336        * src\\cmt_version.h (CMTVERSION): Prepare for tagging v1r16p20040525
[3]2337
[397]2338        * mgr\\NMake (gendoc): Add a new target to generate html from xml
[3]2339
23402004-05-25    <arnault@lal.in2p3.fr> 220
2341
[397]2342        * mgr\\NMake (cmttag): Convert VisualC.nmake into VisualC_cmt.nmake
2343        * fragments\\nmake\\constituent: Generate tag file for the target
[3]2344
23452004-05-18    <arnault@lal.in2p3.fr> 219
2346
[397]2347        * mgr\\requirements: Add cmt_log.cxx in the source list
[3]2348
[397]2349        * src\\cmt_tag.cxx (add): First replacements of debug messages using log
2350        * src\\cmt_parser.cxx (configure_tags): idem
[3]2351
23522004-05-18    <arnault@lal.in2p3.fr> 219
2353
[397]2354        * src\\cmt_log.h (class CmtLog): Introducing a centralized log message facility
2355        * src\\cmt_log.cxx: first implementation
[3]2356
23572004-05-18  Christian Arnault  <arnault@lal.in2p3.fr> 218
2358
2359        * fragments/nmake/make_header (tags): idem
2360
2361        * fragments/nmake/constituent: Update to generate the target_XXX tag
2362
2363        * src/cmt_parser.cxx (parse_arguments): Activate the tag target_<action> when "cmt do <action>" is run
2364
2365        * fragments/constituent: Generate the target_${CONSTITUENT} tag
2366
23672004-05-17  Christian Arnault  <arnault@lal.in2p3.fr> 218
2368
2369        * fragments/constituent: Propagate cmt_lock_pid for temporary files
2370        Generate a tag makefile specific to the constituent
2371
2372        * fragments/constituents_header (first): Improve the printout for CMTCONFIG
2373
2374        * fragments/make_header (tags): Generate the target_${CONSTITUENT} tag
2375
2376        * mgr/requirements: Don't generate the tags macro from CMT. Only do it from the Makefile fragments.
2377
2378        * src/cmt_generators.cxx (build): Add PACKAGE variable to individual constituent fragment
2379
23802004-05-13  Christian Arnault  <arnault@lal.in2p3.fr> 217
2381
2382        * fragments/constituent: idem
2383
2384        * fragments/constituents_header (cmt_final_setup): Implement a READONLY mode that generates all intermediate files in /tmp/CMT_*
2385
2386        * src/Makefile.header (tags): Implement a READONLY mode that generates all intermediate files in /tmp/CMT_*
2387        (common_target): Make use of the new -out=file option of the cmt build constituents_makefile command
2388
2389        * src/cmt_generator.cxx (build_constituents_makefile): idem
2390
2391        * src/cmt_generator.h (class Generator): Add the argument list to the build_constituents_makefile function
2392
2393        * src/cmt_generators.cxx (build): idem
2394
2395        * src/cmt_generators.h (class ConstituentsMakefileGenerator): Add the argument list to the build function
2396
2397        * src/cmt_parser.cxx (configure): Chain configure_home, configure_user_context and configure_cmtpat
2398        (do_build_constituents_makefile): Propagate arguments to the Generator::build_constituents_makefile method
2399        (parse_arguments): Accumulate extra-arguments for build constituents_makefile command
2400        (parse_arguments): Restore the home,user_context and cmtpath configurations for the -tag=xxx option
2401
2402        * src/cmt_project.cxx (set_build_strategy): Get tags from their names rather than from their pointer to fix a pointer bug
2403        (set_setup_strategy): idem
2404
2405        * src/cmt_tag.cxx (action_apply): Adding several debug printouts
2406
24072004-05-10    <arnault@lal.in2p3.fr> 216
2408
[397]2409        * doc\\CMTDoc.xml: Add a section on package semantics
[3]2410
24112004-05-07  Christian Arnault  <arnault@lal.in2p3.fr> 215
2412
2413        * mgr/requirements: Improve support for CEL
2414        Upgrade system_version_query_command for Darwin
2415
24162004-05-06  Christian Arnault  <arnault@lal.in2p3.fr> 215
2417
2418        * src/cmt_tag.cxx (action_apply): apply_tag now supports the tag
2419        name given through a symbol expression
2420
2421        * mgr/cmt_linux_version.sh: Support for Entreprise Linux
2422
2423        * mgr/requirements: Create automatic tags from cmt_hardware
2424        cmt_system_version and cmt_compiler_version.
2425        Set the macro shlibsuffix for Win32
2426
2427        * mgr/cmt_filter3_version.sh: Add a filtering procedure to keep 3 digits in the compiler version
2428
24292004-05-05  Christian Arnault  <arnault@lal.in2p3.fr> 214
2430
2431        * src/cmt_syntax.cxx (parse_requirements): Close all scope sections once the requirements file is parsed.
2432
2433        * src/cmt_use.cxx (close_scope_sections): Implement by clearing the vector of scope sections.
2434
2435        * src/cmt_use.h (class Use): Add close_scope_sections to be called
2436        at the end of parsing a requirements file.
2437
24382004-05-03  Christian Arnault  <arnault@lal.in2p3.fr> 213
2439
2440        * doc/ReleaseNotes.html: Fix typo
2441
2442        * src/cmt_system.cxx (is_version_directory): Misunderstands
2443        version specifications of the form v1r2p (without a trailing
2444        number)
2445
24462004-05-03  Christian Arnault  <arnault@lal.in2p3.fr> 212
2447
2448        * src/cmt_parser.cxx (configure): Configure home and user_context
2449        before configuring cmtpaths to associate projects with CMTHOME and
2450        CMTUSERCONTEXT
2451        (configure_cmt_path): Reset the project factory before creating all projects
2452        (configure_user_context): Add a debugging printout
2453
2454        * src/cmt_system.cxx (get_cmt_paths): Remove the initialization of
2455        the project factory from there to transfer it to the caller (eg
2456        cmt_parser::configure_cmt_path)
2457
2458        * src/cmt_parser.cxx (use_special_requirements): Expects a
2459        statically defined version "v0" for all special uses.
2460
2461        (configure_cmt_path): Associate a project with CMTHOME and CMTUSERCONTEXT to manage strategies.
2462
2463        * src/cmt_use.cxx (show_all): Adapt to new naming convention:
2464        display the static version explicitly.
2465
2466        * src/cmt_system.cxx (get_home_package): Convert CMTHOME package
2467        name from "CMTHOME context" to CMTHOME and manage a version
2468        through standard mechanisms (version is statically defined as v0)
2469        (is_home_package): Adpat to new naming convention
2470        (get_user_context_package): Idem for CMTUSERCONTEXT
2471        (is_user_context_package): Adapt to new naming convention
2472
24732004-04-30  Christian Arnault  <arnault@lal.in2p3.fr> 211
2474
2475        * mgr/cmt_install_action.sh: Use /bin/pwd instead of raw pwd [Thanks to Traudl]
2476        * mgr/cmt_uninstall_action.sh: idem
2477        * mgr/cmt_make_shlib.sh: idem
2478        * mgr/cmt_make_shlib_common.sh: idem
2479        * fragments/install_includes_header: idem
2480
2481        * mgr/requirements: Perform path_remove all before path_prepend in
2482        the cmtpath_pattern. Thus state two separate cmtpath_patterns.
2483
24842004-04-02    <arnault@lal.in2p3.fr> 210
2485
[397]2486        * src\\cmt_project.cxx (scan_paths): Late patch for LynxOS limitation
[3]2487
[397]2488        * src\\cmt_version.h: Prepare for v1r16
[3]2489
24902004-03-29    <arnault@lal.in2p3.fr> 209
2491
2492        * mgr/Makefile: Set compiler options for CYGWIN
2493
24942004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 208
2495
2496        * src/cmt_syntax.cxx (class KwdSetupStrategy): Implement setup strategy decoding for projects
2497
24982004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 207
2499
2500        * src/cmt_system.h (class IProjectFactory): Suppress the configure entry point
2501
2502        * src/cmt_system.cxx (get_cmt_paths): see below
2503
2504        * src/cmt_project.h (class ProjectFactory): No longer need to configure from ProjectFactory
2505
2506        * src/cmt_project.cxx (configure): Fix typo mixing prototypes and no_prototypes tags
2507        (add): Systematically create tags just after naming the project.
2508
2509        * src/cmt_project.h (class Project): Only create tags once
2510
2511        * src/cmt_syntax.h (class SyntaxParser): Introduce the different
2512        syntax parsing schemes for requirements files and projects files.
2513        (class SyntaxParser): Rename do_parse_requirements_text and
2514        do_parse_requirements_text into do_parse_text and do_parse_line.
2515
25162004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 206
2517
2518        * src/cmt_syntax.cxx (action): Define a default implementation for project actions
2519        (class KwdBuildStrategy): Define a project action
2520        (class KwdProject): idem
2521        (class KwdSetupStrategy): idem
2522
2523        * src/cmt_syntax.h (class Kwd): Introduce an action for project files (simply virtual)
2524        (class SyntaxParser): Restructure, cleanup and sort the entry points
2525        (class SyntaxParser): Introduce a map of project keywords
2526
2527        * src/cmt_project.cxx (class ProjectReader): Start support for more statements in the project file
2528
2529        * src/cmt_pattern.cxx (action): Augment the decoding logic to be more fault tolerant
2530        (add): Temporarily force the word quoting
2531        Add various debuggin printouts
2532
2533        * src/cmt_parser.cxx (parser): Force the Use* argument type
2534
2535        * src/cmt_cvs.cxx (class CvsImplementation): Install a constructor for setting default values
2536        (class CvsImplementation): Set default verse mode to false
2537
25382004-03-24  Christian Arnault  <arnault@lal.in2p3.fr> 206
2539
2540        * src/cmt_cvs.cxx (class CvsImplementation): Reset default verbose mode to off.
2541
25422004-03-23  Christian Arnault  <arnault@lal.in2p3.fr> 205
2543
2544        * src/cmt_pattern.cxx (class PatternCache): Introduce a cache for
2545        the get_paths operation. To save recursive executions.
2546
2547        * src/cmt_pattern.h (class PatternList): Navigate in pattern list through PatternList
2548
2549        * src/cmt_vector.h (cmt_vector): Trying to optimize vector by changing the frame size
2550
2551        * doc/cmt-mode.el (cmt-mode-map): Revert completion key to <Esc>-<tab>
2552
25532004-03-22  Christian Arnault  <arnault@lal.in2p3.fr> 205
2554
2555        * src/cmt_symbol.cxx (resolve_value): Optimize by checking if $%` exist in the text to expand.
2556        (create): Missing "alias" case
2557
2558        * src/cmt_parser.cxx (do_show_action): Missing "alias" case
2559        (do_show_macro): idem
2560
2561        * src/cmt_project.cxx (clear): Improve the clear function to
2562        ensure a proper initialization
2563
2564        * src/cmt_system.cxx (get_home_directory): Use ::getenv rather than CmtSystem::getenv.
2565
25662004-03-19  Christian Arnault  <arnault@lal.in2p3.fr> 205
2567
2568        * doc/emacs.html: doc on the new emacs mode for CMT
2569        * doc/table.html: include emacs.html
2570
25712004-03-19  Christian Arnault  <arnault@lal.in2p3.fr> 204
2572
2573        * src/cmt_symbol.cxx (all_set): Only set non empty environment variables
2574
25752004-03-22    <arnault@lal.in2p3.fr> 203
2576
[397]2577        * src\\cmt_parser.cxx (get_build_strategy): Create a local helper
[3]2578        function to retrieve the build strategy from the current project.
2579        (get_setup_strategy): Idem for the setup strategy
2580        (parse_arguments): Add a protection against the killing -tag= with empty argument.
2581        (reach_current_package): Specify the use object (current use)
2582        (class StandardMacroBuilder): Isolate the construction of the CMTVERSION macro into a function
2583        (class StandardMacroBuilder): Setting of basic standard macros
2584        specific to packages is transfered to Use::fill_standard_macros
2585        (set_standard_macros): Apply all cmtpath_patterns independently of the build strategy.
2586
[397]2587        * src\\cmt_symbol.cxx (action): Expand the tag name to permit tag
[3]2588        expressions containing macros.
2589
[397]2590        * src\\cmt_syntax.cxx (parse_requirements): Define the standard
[3]2591        macros before reading the requirements file.
2592
[397]2593        * src\\cmt_use.cxx (fill_standard_macros): Implement it (move code from cmt_parser.cxx)
2594        * src\\cmt_use.h (class Use): Add fill_standard_macros function to
[3]2595        fill in all standard macros for a given use before reading its
2596        requirements file.
2597
[397]2598        * mgr\\requirements: Add exclusions between basic tags
[3]2599        Adapt cmtpath_pattern to new strategy management
2600
[397]2601        * fragments\\nmake\\constituents_header (tags): id.
2602        * fragments\\nmake\\constituent: id.
2603        * fragments\\constituent: Add -quiet to CMT command.
[3]2604
26052004-03-19    <arnault@lal.in2p3.fr> 203
2606
[397]2607        * src\\cmt_parser.cxx (get_build_strategy): Install a local
[3]2608        accessor function to get the build strategy either from the
2609        current project or from m_current_build_strategy.
2610
26112004-03-16    <arnault@lal.in2p3.fr> 202
2612
2613        * src/cmt_parser.cxx (fill_for_branches): Add a protection against empty current project
2614
[397]2615        * src\\cmt_system.cxx (get_cmt_paths): Make use of the new
[3]2616        CmtSystem::get_home_directory function
2617
[397]2618        * src\\cmt_parser.cxx (class CmtMountFilterParser): Create a FAwk
[3]2619        parser to decode mout_filter files.
2620        (configure_current_dir): Make use of the CmtMountFilterParser
2621        class to parse cmt_mount_filter and .cmtrc files.
2622
[397]2623        * src\\cmt_system.cxx (get_home_directory): Implementation.
[3]2624
[397]2625        * src\\cmt_system.h (class CmtSystem): Introduced to get ${HOME} in
[3]2626        a portable way
2627
26282004-03-03  Christian Arnault  <arnault@lal.in2p3.fr> 201
2629
2630        * src/cmt_parser.cxx (print_context): Use the new projet based setup strategy
2631
2632        * src/cmt_cvs.cxx: suppress some verbose printouts
2633
26342004-02-25    <arnault@lal.in2p3.fr> 200
2635
[397]2636        * src\\cmt_pattern.cxx (action): add use to warning messages
[3]2637
[397]2638        * doc\\CMTDoc.xml: improvements
[3]2639
[397]2640        * doc\\gendoc.py (Book.book_start): Set a padding on top of every rule
[3]2641
[397]2642        * src\\cmt_cmtpath_pattern.h (class CmtPathPattern): No need to duplicate the vector of words.
[3]2643
[397]2644        * src\\cmt_cmtpath_pattern.cxx (add): Construct the cmt statement as a one line statement
[3]2645
[397]2646        * src\\cmt_cmtpath_pattern.h (class CmtPathPattern): Add an expansion line in the class
[3]2647
[397]2648        * src\\cmt_pattern.cxx (add): Construct the cmt statement as a one line statement
[3]2649        (expand): Create a temporary replacement for full line
2650        (action): relax the syntax by permitting spaces around the "=" sign.
2651        Add checks for the template name to be expected by the pattern.
2652
[397]2653        * src\\cmt_pattern.h (class Pattern): Add an expansion line in the class
[3]2654
26552004-02-19    <arnault@lal.in2p3.fr> 200
2656
[397]2657        * src\\cmt_project.cxx (configure): Preset the tags of the default strategies
[3]2658
[397]2659        * src\\cmt_tag.cxx (show_definition): Suppress the display of the internal Default tag
[3]2660
26612004-02-13    <arnault@lal.in2p3.fr> 200
2662
[397]2663        * src\\cmt_parser.cxx (class StandardMacroBuilder): Fill <package>_project macro
[3]2664        (class StandardMacroBuilder): Fill <package>_project macro
2665
[397]2666        * src\\cmt_project.cxx (get_current): No need to cd
[3]2667
26682004-02-13  Christian Arnault  <arnault@lal.in2p3.fr> 199
2669
2670        * src/cmt_symbol.cxx: implement the XxxRemoveRegexp
2671
2672        * src/cmt_parser.cxx: idem
2673        * src/cmt_constituent.cxx: idem
2674        * src/cmt_symbol.cxx: idem
2675        * src/cmt_symbol.h (class Symbol): Change the action stored in Symbol into a new enum SymbolType.
2676
2677        * src/cmt_symbol.cxx: idem
2678        * src/cmt_syntax.cxx (SyntaxParser): idem
2679        * src/cmt_parser.h (enum): Introduce regexp-based remove operations for symbols
2680
26812004-02-10  Christian Arnault  <arnault@lal.in2p3.fr> 198
2682
2683        * src/cmt_parser.cxx (actor): Rename PackageCollector into ClientCollector
2684
26852004-02-09  Christian Arnault  <arnault@lal.in2p3.fr> 198
2686
2687        * fragments/installer: add a / everywhere for consistency
2688
2689        * src/cmt_symbol.cxx (build): Restrict warning on symbol overriding to show macro and show set
2690
26912004-02-13    <arnault@lal.in2p3.fr>
2692
[397]2693        * doc\\CMTDoc.xml: Work on the doc towards v1r16
[3]2694
[397]2695        * doc\\gendoc.py (Book.plain_char_data): Keep space characters from raw text
[3]2696        (Book.book_start): Introduce style sheet.
2697
26982004-02-06  Christian Arnault  <arnault@lal.in2p3.fr> 197
2699
2700        * src/cmt_cvs.cxx (class CvsImplementation): use -quiet for all internal cmt commands
2701
2702        * src/cmt_string.cxx (erase): Replace strcpy by an explicit loop
2703
2704        * src/cmt_cvs.cxx: Added -n and -v options to support simulation and verbose modes
2705
2706        * src/cmt_system.cxx (execute): Change the status value. Back to the Unix standard 0 = ok
2707
2708        * fragments/nmake/library: idem
2709        * fragments/library: Install the dependency to the ${CONSTITUENT}stamps macro like for application
2710
2711        * src/cmt_system.cxx (reduce_file_separators): Improve the reduction algorithm
2712
27132004-02-05    <arnault@lal.in2p3.fr> 196
2714
[397]2715        * src\\cmt_parser.cxx: Remove cmtpath database from Cmt class
[3]2716        Rename FileScanner into PathScanner and transfer it to CmtSystem
2717        (configure_cmt_path): Use the ProjectFactory to create Projects from CMTPATH
2718        (do_broadcast): Projects now fill the selections.
2719        (do_show_clients): Projects used to search clients
2720        (do_show_packages): idem
2721        (do_show_path): idem
2722        (do_show_strategies): Projects reached to get strategies
2723        (do_show_versions): Projects used to search versions
2724        (parse_arguments): +path managed by adding a project
2725        (reach_current_package): Definitively suppress "current package" source of CMTPATH
2726
[397]2727        * src\\cmt_use.cxx (class UseProjectAction): Intoduce an action
[3]2728        pattern to iterate into Project database
2729        (move_to): Use the Project::broadcast mechanism to locate the package.
2730
[397]2731        * src\\cmt_use.h (class Use): Make UseProjectAction friend of class Use
[3]2732
[397]2733        * src\\cmt_system.cxx (add_cmt_path):
[3]2734        (add_cmt_paths_from_text):
2735        (add_cmt_paths):
2736        (get_cmt_paths): Use IProjectFactory
2737
[397]2738        * src\\cmt_system.h (class IProjectFactory): Add abstract interface
[3]2739        for creating projects form cmtpath entries
2740        (class CmtSystem): Change the API to using IProjectFactory
2741
[397]2742        * src\\cmt_project.cxx: Implement project management
[3]2743
[397]2744        * src\\cmt_syntax.cxx (class KwdBuildStrategy):
[3]2745        (class KwdSetupStrategy): Change strategies from new masks and into Projects
2746
[397]2747        * src\\cmt_parser.h (enum): Change the masks for strategies to
[3]2748        improve the reliability of exclusive options, and inheritance
2749        between projects.
2750
[397]2751        * src\\cmt_cmtpath_pattern.cxx (class CmtPathPatternProjectAction):
[3]2752        Introduce new actor pattern for broadcasting to project
2753        database. Used to apply all cmtpath_patterns
2754        (apply): Expand the <project> parameter
2755        (expand): idem
2756
[397]2757        * src\\cmt_cmtpath_pattern.h (class CmtPathPattern): Add project argument to expand
[3]2758
[397]2759        * src\\cmt_awk.h (class PathScanner): Add the PathScanner class (imported from cmt_parser.cxx)
2760        * src\\cmt_awk.cxx (PathScanner):
[3]2761
[397]2762        * src\\cmt.h (class Cmt): Transfer cmtpath management to Project
[3]2763
[397]2764        * doc\\CMTDoc.xml:
2765        * src\\cmt_syntax.cxx (class KwdBuildStrategy):
2766        * src\\cmt_project.h (class Project):
2767        * src\\cmt_project.cxx (set_build_strategy):
2768        * src\\cmt_parser.cxx (set_standard_macros): Rename X_install_area symbols into X_installarea
2769        * src\\cmt_install_area.cxx: Rename X_install_area symbols into X_installarea
2770        * src\\cmt_install_area.h: Rename X_install_area symbols into X_installarea
[3]2771
[397]2772        * mgr\\requirements: Setting Project-oriented settings for installation area patterns.
[3]2773
27742004-01-27    <arnault@lal.in2p3.fr> 195
2775
[397]2776        * fragments\\nmake\\installer: Fixes from Pere.
[3]2777
27782004-01-20    <arnault@vmlinux> 194
2779
2780        * Try on CVStrac ticket #1
2781
2782        * src/cmt_symbol.cxx (action): Ensure that the constituents macro is always private.
2783
2784        * src/cmt_parser.cxx (reach_current_package): Fix missing configuration bit.
2785        Cures the bug of missing <PACKAGE>VERSION when using cmt -use=...
2786
27872004-01-17    <arnault@lal.in2p3.frARNAULT@NB-ARNAULT> 193
2788
[397]2789        * src\\cmt_syntax.cxx (CommandParser): Add helps for create_project command
[3]2790
[397]2791        * src\\cmt_parser.h (enum): Add action_create_project
[3]2792
[397]2793        * src\\cmt.h (class Cmt): Add do_create_project function
[3]2794
27952004-01-13    <arnault@vmlinux> 192
2796
2797        * src/cmt_parser.cxx (dos_script_prefix): Suppress spaces before
2798        continuation character in DOS format
2799
28002004-01-13  Christian Arnault  <arnault@lal.in2p3.fr> 191
2801
2802        * src/cmt_symbol.cxx (add_value_to_list): Fix for not discarding too much value_lists
2803
28042004-01-10    <arnault@vmlinux> 190
2805
2806        * src/cmt_syntax.cxx (class KwdBuildStrategy): Start getting the
2807        strategy from project(experimental??)
2808
2809        * src/cmt_project.cxx (find_by_cmtpath): We also accept paths specified using a substring
2810        (configure): Configure in reverse order
2811        (action): Add experimental -index and -select options
2812
2813        * src/cmt_install_area.cxx (setup_current_install_area): Make CMTINSTALLAREA a macro instead of a set
2814
28152004-01-08  Christian Arnault  <arnault@lal.in2p3.fr> 189
2816
2817        * src/cmt_use.cxx (reach_package): Fix bug in version comparison when working in non-version-directory mode
2818        * mgr/requirements: use $(CMTCONFIG) instead of $(tag) for setting PATH etc.. in cmtpath_pattern
2819
28202003-12-19  Christian Arnault  <arnault@lal.in2p3.fr> 188
2821
2822        * src/cmt_use.h (class Use): Remove the project relationship between Use and Project
2823
28242003-12-18    <arnault@lal.in2p3.fr> 187
2825
[397]2826        * src\\cmt_constituent.h (class Constituent):
2827        * src\\cmt_constituent.cxx (add_for_action): Implement the constituent equivalent to actions
[3]2828        (parse_all): Generate the constituent equivalents for all macros
2829
[397]2830        * fragments\\cmt_action_runner:
2831        * fragments\\cmt_action_runner_header:
2832        * fragments\\nmake\\cmt_action_runner_header: The new generic make fragment for running actions
[3]2833
[397]2834        * fragments\\nmake\\dependencies:
2835        * fragments\\dependencies: Suppress dependency computation when the
[3]2836        QUICK macro is defined
2837
[397]2838        * fragments\\nmake\\library:
2839        * fragments\\library:
2840        * fragments\\application:
2841        * fragments\\nmake\\application: Add dependency to requirements to rebuild application
[3]2842
[397]2843        * src\\cmt_parser.cxx (do_config): Suppress install area cleanup action from cmt config
[3]2844        (do_setup): idem
2845
28462003-12-16    <arnault@lal.in2p3.fr> 187
2847
[397]2848        * src\\cmt_constituent.cxx (class constituents_action_iterator):
[3]2849        Added syntax check on -xxx options for constituents
2850
[397]2851        * src\\cmt_parser.cxx: Implement Action support.
[3]2852        Added: (to support Actions)
2853                do_do
2854                do_show_action
2855                do_show_action_names
2856                do_show_action_value
2857                do_show_actions
2858        removed: (after introducing Scope Sections)
2859                get_scope
2860                set_scope
2861                m_scope
2862
[397]2863        * src\\cmt_parser.h (enum): Added
[3]2864                CommandAction
2865                CommandEndPrivate
2866                CommandEndPublic
2867
2868                action_show_action_xxx
2869
[397]2870        * src\\cmt_constituent.cxx (class constituents_action_iterator):
[3]2871        Added a syntax checking action.
2872
[397]2873        * src\\cmt_use.cxx:
2874        * src\\cmt_use.h (class Use): Support Scope Section concept.
[3]2875        A Use object holds a vector of ScopeSections
2876        Added functions
2877                push_scope_section
2878                pop_scope_section
2879                get_current_scope
2880        Changed attributes:
2881                scope -> initial_scope
2882
[397]2883        * src\\cmt_syntax.cxx (class KwdAction): New keyword
[3]2884        (class KwdEndPrivate): new keyword
2885        (class KwdEndPublic): new keyword
2886        (class KwdPrivate): Ignore this pattern on current use
2887        (class KwdPublic): Ignore this pattern on current use
2888        (CommandParser): Update help texts for new action concepts
2889
[397]2890        * src\\cmt_symbol.cxx (class ActionBuilder): new Action objects are
[3]2891        implemented as a new category of symbols. Therefore all mechanisms
2892        have been extended to support the new concept.
2893
2894        old scope attribute is replaced by accesses to Scope Sections from
2895        the Use objects.
2896
[397]2897        * src\\cmt_symbol.h (class Symbol): Suppress useless scope attribute and valid () function
[3]2898
[397]2899        * src\\cmt_scope_section.cxx: New Support for Scope Sections
[3]2900
[397]2901        * src\\cmt_scope_section.h: New Support for Scope Sections
[3]2902
[397]2903        * src\\cmt_fragment.cxx (action): Switch to using Scope Sections
[3]2904
[397]2905        * src\\cmt.h (class Cmt): Added: (to support Actions)
[3]2906                do_do
2907                do_show_action
2908                do_show_action_names
2909                do_show_action_value
2910                do_show_actions
2911        removed: (after introducing Scope Sections)
2912                get_scope
2913                set_scope
2914                m_scope
2915
[397]2916        * mgr\\requirements: Adding support for Scope sections to handle
[3]2917        private or public sections. Now private and public sections can be
2918        ended with the new keywords end_private and end_public. Ending
2919        keywords switch back to the previous scope active before the most
2920        recent opening keyword.
2921
2922        Adding cmt_scope_section.cxx to the sources of the cmt application.
2923       
2924
29252003-12-12  Christian Arnault  <arnault@lal.in2p3.fr> 186
2926
2927        * mgr/cmt_install_action.sh (a): Improve checking of pwd WRT CMTINSTALLAREA
2928        * mgr/cmt_uninstall_action.sh (a): idem
2929
2930        * mgr/cmt_mount_filter: Restore definitions
2931
2932        * src/cmt_syntax.cxx (do_parse): Evolution of the requirements
2933        file syntax: apply_pattern can be omitted (ie. pattern names are
2934        understood as extensions to the basic CMT language)
2935
2936        * src/cmt_pattern.cxx (action): Add error detection when applying the wrong pattern name
2937        Prepare for the next change of the syntax which accepts pattern names as plain CMT keywords
2938
2939        * src/cmt_parser.cxx (find_in_cmt_paths): Fix construction of the
2940        <package>_cmtpath when symlinks exist along pwd
2941
29422003-12-08  Christian Arnault  <arnault@lal.in2p3.fr> 186
2943
2944        * src/cmt_parser.cxx (do_build_library_links): Fix : should make
2945        use of the library_prefix and suffix.
2946
29472003-12-06   Christian Arnault  <arnault@lal.in2p3.fr> 185
2948
[397]2949        * src\\cmt_syntax.cxx (do_parse): When a keyword is not found,
[3]2950        expect an implicit pattern application.
2951
[397]2952        * src\\cmt_pattern.cxx (action): Add a protection against pattern not found
[3]2953        Support lines starting with pattern-name or with apply_pattern.
2954
29552003-11-21  Christian Arnault  <arnault@lal.in2p3.fr> 185
2956
2957        * mgr/cmt_install_action.bat: Typo
2958
2959        * mgr/requirements: Typo in macro cmt_uninstalldir_action
2960
29612003-11-20  Christian Arnault  <arnault@lal.in2p3.fr> 184
2962
2963        * src/cmt_version.h (CMTVERSION): Preparing new tag v1r14p20031120
2964
2965        * src/cmt_syntax.cxx (CommandParser): Help on cmt build CMT_pacman
2966
2967        * src/cmt_parser.cxx (parse_arguments): Implement cmt build
2968        CMT_pacman command to generate the effective pacman manifest file
2969        for CMT.
2970
2971        * src/cmt.h (class Cmt): Add Cmt::do_build_CMT_pacman function
2972
2973        * src/cmt_parser.h (enum): Add cmt build CMT_pacman command
2974
2975        * src/setup.zsh: Upgrade zsh completion settings
2976
2977        * src/setup.tcsh: Upgrade tcsh completion settings
2978
2979        * fragments/group (all_groups): Add a new standard macro
2980        $(<group>_dependencies) to specify global dependencies for a
2981        group.
2982
2983        * fragments/constituents_trailer (binclean): Dont remove *.make* when cleaning.
2984        Add a message for binclean.
2985
2986        * src/cmt_use.cxx (add): Improve the warning message for package not found
2987        (reduce_path): Display the package path using a reusable format (used by show fragments)
2988
29892003-11-19  Christian Arnault  <arnault@lal.in2p3.fr> 183
2990
2991        * src/cmt_constituent.cxx (class constituents_action_iterator): Empty group means no group.
2992
2993        * src/cmt_parser.cxx (install_library): Factor out the basic
2994        operation for installing a library
2995        (do_build_library_links): Make use of the new install_library
2996        operation. Add special operation for Darwin to install bundles
2997
2998        * src/cmt_syntax.cxx (class KwdBuildStrategy): Fix cumulative settings of the strategies
2999        (class KwdSetupStrategy): idem
3000
3001        * mgr/cmt_make_shlib_common.sh: Add support to generate bundles for Darwin
3002
30032003-11-14  Christian Arnault  <arnault@lal.in2p3.fr> 182
3004
3005        * src/cmt_install_area.cxx (setup): Continue setup even without current installation area
3006        (config): Apply all cmtpath_patterns even  without current installation area
3007        (build_current_install_area): Make use of Cmt::find_in_cmt_paths
3008
3009        * src/cmt_parser.cxx (configure_current_cmtpath): Make use of the
3010        new find_in_cmt_paths function
3011        (do_setup): Always call CmtInstallAreaMgr::setup even if current installation area is empty
3012        (find_in_cmt_paths): first implementation
3013        (get_cmt_path_pwds): first implementation
3014        (class StandardMacroBuilder::fill_for_use_cmtpath): Make use of the
3015        new find_in_cmt_paths function
3016
3017        * src/cmt.h (class Cmt): Adding find_in_cmt_paths to locate a path
3018        from all specified CMTPATH entries (considering the dual flavours
3019        of each entry)
3020        Adding get_cmt_path_pwds to access alternal values of cmtpath entries
3021
30222003-11-12  Christian Arnault  <arnault@lal.in2p3.fr> 181
3023
3024        * fragments/nmake/constituents_trailer (binclean): Fix typo for Windows
3025
30262003-11-06  Christian Arnault  <arnault@lal.in2p3.fr> 180
3027
3028        * mgr/CMT.pacman: Add generic pacman file.
3029        All instances of the "<version>" pattern need to be substituted by
3030        the effective version of CMT to make it a real pacman file
3031
30322003-10-29  Christian Arnault  <arnault@lal.in2p3.fr> 179
3033
3034        * tagging v1r14p20031027
3035
3036        * mgr/cmt_build_release.sh (version): Add the rebuilding of Linux
3037        version at Lyon (without getting the result back)
3038
3039        * doc/documents.html: Install release notes from the documents page
3040
3041        * doc/ReleaseNotes.html: Create ReleaseNotes web page (suppress ReleaseNotes.txt)
3042
3043        * mgr/Makefile (docs):
3044        Add installation of ReleaseNotes.html
3045
30462003-10-27  Christian Arnault  <arnault@lal.in2p3.fr> 178
3047
3048        * src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031027
3049
3050        * mgr/requirements: cmt_installarea_prefix must be defined
3051        externally to the cmtpath_pattern.
3052
30532003-10-22  Christian Arnault  <arnault@lal.in2p3.fr> 177
3054
3055        * src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031022
3056
3057        * mgr/cmt_installdir_excludes.txt: New file containing the list of
3058        patterns to exclude in installing a directory
3059
3060        * fragments/nmake/install_includes_header (install): Add support for exclude files
3061
3062        * mgr/cmt_installdir_action.bat: Add support for exclude files
3063        * mgr/cmt_uninstalldir_action.bat: Add tests
3064        * mgr/cmt_uninstall_action.bat: Add tests
3065        * mgr/cmt_install_action.bat: Add tests
3066
3067        * src/cmt_parser.cxx (set_standard_macros): First define the
3068        current installation area before defining all other standard
3069        symbols (and making the final parsing of constituents)
3070
3071        * src/cmt_install_area.cxx (setup_current_install_area): Implement
3072        the definition of the CMTINSTALLAREA symbol     
3073        (setup): Differentiate the setting of CMTINSTALLAREA symbol from
3074        applying cmtpath patterns
3075
3076        * src/cmt_install_area.h (class CmtInstallAreaMgr): Split setup in
3077        two parts : first define the CMTINSTALLAREA symbol, then apply all
3078        cmtpath patterns
3079
30802003-10-21  Christian Arnault  <arnault@lal.in2p3.fr> 176
3081
3082        * mgr/cmt_build_release.sh: Start a procedure for remotely building a CMT release
3083
3084        * mgr/cmt_installdir_action.bat: Added test on existing result.
3085
3086        * fragments/nmake/install_includes_header (install_dir): Use $() instead of ${}
3087
3088        * mgr/requirements: Add definition for cmt_installdir_action
3089
3090        * src/cmt_parser.cxx (class StandardMacroBuilder): Generate
3091        <package>_cmtpath and <package>_offset macros also for the current
3092        package
3093
3094        * src/cmt_system.cxx (remove_directory): Add a # for error messages
3095        (remove_file): idem
3096
30972003-10-14    <arnault@vmlinux> 175
3098
3099        * src/cmt_version.h (CMTVERSION): Prepare tagging v1r14p20031014
3100
3101        * src/cmt_use.cxx (compare_versions): Add a function to compare
3102        two version strings.
3103        (reach_package): Add the effective version checking for
3104        no_version_directory style when version.cmt exists.
3105
3106        * doc/CMTDoc.xml: Suppress version strategy documentation since
3107        this mechanism is not really maintained.
3108
3109        * src/cmt_use.cxx (reach_package): Add effective check of version
3110        even in no_version_directory style
3111
31122003-10-13    <arnault@vmlinux> 175
3113
3114        * fragments/* : Add start and end markers to all make fragments. 
3115
31162003-10-09    <arnault@lal.in2p3.fr> 175
3117
[397]3118        * src\\cmt_parser.cxx (do_broadcast): Suppress the catching of
[3]3119        return status=2 for last executed command
3120
31212003-10-02  Christian Arnault  <arnault@lal.in2p3.fr> 175
3122
3123        * src/cmt_system.cxx (cd): putenv requires that the string is static !!
3124
31252003-10-01    <arnault@vmlinux> 174
3126
3127        * src/cmt_use.cxx (class use_action_iterator): Force auto_imports
3128        to On when context is unspecified.
3129
3130        * src/cmt_use.h (class Use): Add a new set_selected_version
3131        function for switching from one use to another one, better wrt
3132        various criteria. When switching, m_index and auto_imports are
3133        transfered from the unselected to the newly selected.
3134
31352003-09-26    <arnault@vmlinux> 173
3136
3137        * src/cmt_system.cxx (cd): Change the PWD environment variable, in
3138        case it's not done by the underlying OS
3139
31402003-09-24  Christian Arnault  <arnault@lal.in2p3.fr> 172
3141
3142        * src/cmt_use.cxx (show_cycles): optimizing a bit
3143        (find_index): idem
3144        (set_auto_imports_state): idem
3145        (move): idem
3146        (reorder): idem
3147        (unselect_all): idem
3148        (get_selected_version): idem
3149        (get_paths): Improve the algorithm to save multiple vector manipulations
3150
3151        * src/cmt_parser.cxx: Follow all symbol->build_macro_value by
3152        Symbol::expand to really expand all possible macro
3153        references. This caused a bug when inline re-confirguring
3154        CMTUSERCONTEXT (etc.) with a value containing a ref to another
3155        symbol.
3156
3157        * mgr/Makefile (cpp): Add -O2 option for Linux platform
3158        (cpp): Add support for profiling setup for LinuxProf platform
3159
31602003-09-18    <arnault@vmlinux>
3161
3162        * mgr/cmt_uninstall_action.sh (a): Fix the consistency check of pwd vs CMTINSTALLAREA
3163        * mgr/cmt_install_action.sh (a): idem
3164
31652003-09-18  Christian Arnault  <arnault@lal.in2p3.fr> 171
3166
3167        * mgr/Makefile (cpp): Set IGNORE_PWD for OSF1 and LynxOS
3168
3169        * src/cmt_system.cxx (pwd): Add an option to ignore PWD since on
3170        some machines this does not work well with the chdir function.
3171
3172        * doc/CMTDoc.xml: improvements
3173
31742003-09-17  Christian Arnault  <arnault@lal.in2p3.fr> 170
3175
3176        * src/cmt_parser.cxx (class StandardMacroBuilder): Add the
3177        production of the new macros <package>_cmtpath <package>_offset
3178        (class StandardMacroBuilder): Implement the generation of
3179        <package>_cmtpath <package>_offset macros
3180
3181        * fragments/constituent: Add the same dependency list onto
3182        constituent makefile fragment than onto the constituent itself so
3183        as to enforce the build order also for make fragments.
3184
3185        * src/cmt_use.cxx (get_paths, get_selected_version): Remove static
3186        declaration for a local variable (caused a serious bug !!)
3187        Lots of debug prints improved.
3188
31892003-09-16  Christian Arnault  <arnault@lal.in2p3.fr> 170
3190
3191        * src/cmt_symbol.cxx (action): fix setup_script calling mechanism
3192        in no_version style : should get it from ../cmt rather than ../mgr
3193
31942003-09-16    <arnault@vmlinux> 169
3195
3196        * mgr/cmt_uninstall_action.sh (full_source_name): idem
3197
3198        * mgr/cmt_install_action.sh: add a protection when current
3199        directory is outside any installation area
3200
3201       
3202        * mgr/NMake (CMTINSTALLAREA): idem
3203        (cmttag): Improve the filter for VisualC tag file generation
3204        (required to remove all location specific info)
3205        Change the target from cmt to cmttag (ie this is NO LONGER done by default!!)
3206
3207        * mgr/Makefile (CMTINSTALLAREA): Inhibit all INSTALLAREA mechanism
3208        when rebuilding cmt itself
3209
3210        * src/cmt_parser.cxx (get_current_style): First Implementation
3211        (dos_script_prefix): Use current_style rather than
3212        current_structuring_style to select path pattern
3213
3214        * src/cmt.h (class Cmt): Add get function to access m_current_style
3215
32162003-09-16  Christian Arnault  <arnault@lal.in2p3.fr> 168
3217
3218        * src/cmt_use.cxx (find_index): Add a protection when a package
3219        was not found
3220
32212003-08-14  Christian Arnault  <arnault@lal.in2p3.fr> 168
3222
3223        * src/cmt_generators.cxx (LibraryGenerator::build): new syntax for get_all_files
3224        (DocumentGenerator::build): idem
3225        (MSDEVGenerator::build_project): idem
3226        (VSNETGenerator::build_project): idem
3227        (DependencyGenerator::build): idem
3228
3229        * src/cmt_generator.h (class CmtGenerator): Add an argument for
3230        selection patterns.
3231
3232        * src/cmt_generator.cxx (get_all_files): Apply the selection
3233        patterns.  Support wilcarded suffixes (*.*)
3234
3235        * src/cmt_generators.cxx (DocumentGenerator::build): Add path
3236        compression when analyzing file names.
3237        (ConstituentsMakefileGenerator::build): suppress unused declarations
3238
3239        * src/cmt_constituent.cxx (show): display select paterns
3240        (class constituents_action_iterator): Handle the new -k= option for selection pattern
3241        (clear): clear selection patterns
3242
3243        * src/cmt_constituent.h (class Constituent): Add select regexps similar to excludes
3244
32452003-08-13  Christian Arnault  <arnault@lal.in2p3.fr> 168
3246
3247        * src/cmt_use.cxx (show_all): Standardize the output format of
3248        show uses to ensure that we always have in the last part:
3249
3250        use <package> <version> [<offset>] (<path>) (<qualifier>) (...)
3251
3252        or (with -quiet)
3253       
3254        use <package> <version> [<offset>]
3255
3256        Also fix a bug when trying to remove offset from real_path...
3257       
3258
32592003-08-11  Christian Arnault  <arnault@lal.in2p3.fr> 167
3260
3261        * mgr/Makefile (bintar): Dynamically gets the list of binaries
3262        available of this machine. Then constructs CMTDownload.html
3263        accordingly.
3264
3265        * doc/CMTDownload1.html: First part of CMTDownload.html
3266        * doc/CMTDownload2.html: Last part of  CMTDownload.html
3267
3268        * doc/installations.doc: upgrade list of porting machines
3269
3270        * src/cmt_version.h (CMTVERSION): new patch tag v1r14p20030811
3271
3272        * src/cmt_use.cxx (show_sub_uses): Display the original request
3273        instead of the registered sub use (which may be different than the
3274        request)
3275
3276        * src/cmt_use.h (class Use): Add context_use in the argument list
3277        to display the use that created this request
3278       
3279        (class Use): Add a vector of the real requests (well only those that ended up in a sub use)
3280
3281        * src/cmt_use.cxx (need_new): Dispay the incompatibility message
3282        in need_new rather than in the BestFitSelector, since
3283        corresponding uses may have been discarded then.
3284
3285        * src/cmt_system.cxx (is_version_directory): return all -1 values
3286        when version specification is just '*'
3287
32882003-08-08    <arnault@lal.in2p3.fr> 166
3289
[397]3290        * mgr\\requirements: Tuning pour CYGWIN
[3]3291
32922003-08-06  Christian Arnault  <arnault@lal.in2p3.fr> 165
3293
3294        * src/cmt_symbol.cxx (create): Same reasons (LynxOS) => convert a
3295        static array of strings into a switch statement (not quite
3296        elegant). May move back in some future if problem is solved on
3297        LynxOS.
3298
3299        * src/cmt_syntax.cxx (CommandParser): Initialze the new help_texts
3300        by filling in a vector rather that from a static array of
3301        cmt_string (too bad...)
3302
3303        * src/cmt_syntax.h (class CommandParser): Need to redefine the
3304        management of static arrays of objects due to a bug in c++
3305        compiler on LynxOS... A Workaround is found by transfering static
3306        arrays into the singleton => m_helps and m_help_texts
3307
33082003-08-06    <arnault@lal.in2p3.fr> 164
3309
[397]3310        * src\\cmt_parser.cxx (dos_script_prefix): Adapt the generation of
[3]3311        setup.bat scripts so as to account for the new DOS device constructs
[397]3312        \\\\xxx\\aaa
[3]3313
[397]3314        * src\\setup.bat: Add /D to the cd command to support CMT on a
[3]3315        different device
3316
33172003-08-05    <arnault@lal.in2p3.fr> 163
3318
3319        * src/cmt_parser.cxx (dos_script_prefix): remove device from path
[397]3320        when device takes the conventional form. new form (\\\\xxx\\) is not
[3]3321        yet handled.
3322
3323        * src/cmt_install_area.cxx (config): Don't produce output messages in quiet mode
3324
33252003-08-05  Christian Arnault  <arnault@lal.in2p3.fr> 163
3326
3327        * src/cmt_system.cxx (pwd): Make use of the PWD environment
3328        variable when it is defined to detect current directory in place
3329        of getcwd (keep gettcwd when PWD is not defined or on WIN32)
3330
3331        * fragments/install_includes_header (install): Avoid useless
3332        re-installation of include file area
3333
3334        * src/cmt_use.cxx (add): When m_index is exchanged between two
3335        uses, the discarded flag must be upgraded accordingly   
3336        (class use_action_iterator): Suppress trailing slash characters on
3337        package offset specifications.
3338
3339        * src/cmt_parser.cxx (class StandardMacroBuilder): Define
3340        package_cmtpath instead of just cmtpath as the standard macro, in
3341        order to avoid conflict with CMTPATH env. var. on Windows.
3342        (do_broadcast): Define the pattern <package_cmtpath> instead of
3343        <cmtpath> for broadcast command templates
3344
3345        * src/cmt_use.cxx (need_new): first consider the already registered use
3346        (add): Fix a bug in the algorithm for checking registrations of uses.
3347        (class use_action_iterator): Remove trailing slashes from prefix specifications
3348
33492003-06-20  Christian Arnault  <arnault@lal.in2p3.fr> 162
3350
3351        * src/cmt_version.h: new patch id 20030620
3352
3353        * mgr/Makefile (gendoc): Add a target to convert XML doc into HTML
3354        (so far only available at CERN)
3355
3356        * doc/gendoc.py (Book.plain_char_data): improvements.
3357
3358        * src/cmt_parser.cxx (do_broadcast): Fix evaluation of <cmtpath>
3359        <package_offset> in -global mode
3360
33612003-06-19    <arnault@lal.in2p3.fr> 161
3362
3363        * src/cmt_system.cxx (add_cmt_path): Fix cmtpath checking for
3364        devices on Windows
3365
33662003-06-19  Christian Arnault  <arnault@lal.in2p3.fr> 160
3367
3368        * fragments/nmake/library_no_share: Use the @<< syntax of nmake to
3369        cope with long list of OBJS
3370        * fragments/nmake/application: idem
3371        * fragments/nmake/library: idem
3372
33732003-06-18  Christian Arnault  <arnault@lal.in2p3.fr> 159
3374
3375        * mgr/requirements: Use ln -s for the cmt_install_area_command
3376
3377        * fragments/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
3378        * fragments/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
3379        * fragments/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
3380        * fragments/nmake/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
3381        * fragments/nmake/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
3382        * fragments/nmake/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
3383
3384        * mgr/requirements: use cp -s and not cp -l to create symlinks
3385
33862003-06-16  Christian Arnault  <arnault@lal.in2p3.fr> 158
3387
3388        * src/cmt_version.h (CMTVERSION): New Tag 20030616
3389
3390        * src/Makefile.header (common_target): Make use of the mktemp
3391        shell function
3392
3393        * doc/CMTDoc.xml: Doc
3394
3395        * src/cmt.h (class Cmt): Add get_current_cmtpath and
3396        get_current_offset functions.
3397
3398        * src/cmt_parser.cxx (configure_current_cmtpath): Implement (set
3399        m_current_cmtpath and m_current_offset)
3400
3401        * src/cmt.h (class Cmt): Add configure_current_cmtpath function
3402
3403        * src/cmt_parser.cxx (class StandardMacroBuilder): Add standard
3404        macros cmtpath and package_offset
3405        (do_broadcast): Add substitutions of <package>, <version>, <cmtpath>, <package_offset>
3406        (class StandardMacroBuilder): Set m_current_cmtpath and m_current_offset
3407
3408        * src/cmt.h (class Cmt): Adding current value for cmtpath and offset
3409
3410        * mgr/requirements: Use symlink instead of cp as default transfer
3411        action into installation area
3412
34132003-06-12  Christian Arnault  <arnault@lal.in2p3.fr> 157
3414
3415        * src/cmt_pattern.cxx : fix a bug in ApplyPattern::action: macros
3416        should NOT be expanded when parsing the statement. Only the
3417        pattern name may be expanded.
3418        Second fix: when a pattern is re-defined, the Pattern object must be
3419        properly reset.
3420
34212003-06-04    <arnault@vmlinux> 156
3422
3423        * src/cmt_version.h (CMTVERSION): Tag the version to v1r14p20030605
3424
3425        * mgr/build_from_rpm.sh (tempdir): Add a shell script for testing
3426        the source kit (not complete)
3427
3428        * mgr/install_from_rpm.sh: Add a shell script for testing the
3429        generated binary RPM.
3430
3431        * mgr/Makefile (rpm): Add the rpm target to build RPMs into ../rpm
3432
3433        * mgr/CMT.spec: Add an RPM spec file for CMT. Only the binary kit
3434        has been tested successfully
3435
3436        * doc/install.html: Document the usage of the CMT RPM
3437
3438        * src/cmt_parser.cxx (dos_script_prefix): Use %TEMP% instead of
3439        %HOMEDRIVE%%HOMEPATH% for temporary setup files on Windows
3440
34412003-06-04  Christian Arnault  <arnault@lal.in2p3.fr> 155
3442
3443        * fragments/install_includes_header (install): Fixed wrong test on
3444        CMTINSTALLAREA
3445
3446        * src/cmt_syntax.cxx (parse_requirements): Transfer the scoping
3447        algorithm to parse_requirements_text so that patterns supplying
3448        private statements will work nicely.
3449        (parse_requirements_text): see above
3450
34512003-05-23  Christian Arnault  <arnault@lal.in2p3.fr> 154
3452
3453        * src/Makefile.header: removing apparently obsolete MAKEFLAGS
3454        filtering mechanisms on -j option
3455
3456        * src/setup.zsh: Add cmt show cycles zsh expansion
3457
3458        * src/cmt_parser.cxx (parser): Add cmt show cycles parsing and support
3459
3460        * src/cmt_syntax.cxx (CommandParser): Add show_cycles info
3461
3462        * src/cmt_parser.h (enum): Add action_show_cycles
3463
3464        * src/cmt.h (class Cmt): Add cmt show cycles command to display use cycles
3465
34662003-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 153
3467
3468        * src/cmt_std.h: Suppress include ios for new header style
3469
3470        * src/cmt_parser.cxx (parse_arguments): Install a -private option to
3471        the show_use_paths action. When -private is present on the command
3472        line then the private uses are reached.
3473        (parse_arguments): Make the --private or --public option a global
3474        option to control on all CMT commands whether we reach or not the
3475        private uses.
3476
3477        * src/cmt_use.cxx (class use_action_iterator): Detect the new
3478        scope filtering mode to actually reach the private uses
3479
3480        * src/cmt_parser.cxx: Set the scope filtering mode when
3481        appropriate (cmt_show_uses, cmt_show_use_paths, cmt_broadcast,
3482        cmt_set_versions, cmt_show_setup)
3483
3484        * src/cmt.h (class Cmt): Add m_scope_filtering_mode attribute
3485
3486        * src/cmt_parser.cxx (get_scope_filtering_mode): Implement the new function
3487        (set_scope_filtering_mode): Implement the new function
3488
3489        * src/cmt.h (class Cmt): Add set_scope_filtering_mode function
3490          (class Cmt): Add get_scope_filtering_mode function
3491
3492        * src/cmt_parser.h (enum): Add a scope filtering mode to block or
3493        reach private uses
3494
34952003-05-21  Christian Arnault  <arnault@lal.in2p3.fr> 153
3496
3497        * src/cmt_use.cxx (get_all_clients): Public interface to private
3498        get_all_clients
3499        (get_all_clients): Actual recursive implementation for getting all
3500        paths to a given client
3501
3502        * src/cmt_use.h (class Use): Implement two new get_all_clients
3503        functions to acquire all paths to a given client of a package (one
3504        public with simple interface and one private with temporary
3505        storage).
3506
3507        * src/cmt_use.cxx (class use_action_iterator): traverse complete
3508        use graph for action_show_use_paths
3509
3510        * src/cmt_std.h: Set new C++ header style on Linux
3511
3512        * src/setup.zsh: Add cmt show use_paths to auto-expansion definition
3513
3514        * src/cmt_syntax.cxx (CommandParser): Add help for cmt show use_paths
3515        (get_help_texts): idem
3516
3517        * src/cmt_parser.cxx (do_show_use_paths): implement do_show_use_paths function
3518        (parse_arguments): parse cmt show use_paths <package>
3519        (parser): idem
3520
3521        * src/cmt.h (class Cmt): add do_show_use_paths function
3522
3523        * src/cmt_parser.h (enum): Start implementing a new feature: cmt
3524        show use_paths <package> to display all possible paths between the
3525        current package and the specified package.
3526
35272003-05-19    <arnault@lal.in2p3.fr> 152
3528
[397]3529        * mgr\\cmt_linux_version.sh: add a script for querying linux
[3]3530        version for various distributions (contribution from Clark McGrew
3531        <clark.mcgrew@sunysb.edu>)
3532
[397]3533        * src\\cmt_symbol.cxx (show_macro): re-apply suppress_OS_delimiter
[3]3534        when generating the tag makefile, but only on WIN32 context.
3535
[397]3536        * src\\cmt_pattern.cxx (class apply_pattern_action_iterator): Add
[3]3537        action iterator to expand macros before parsing line.
3538
[397]3539        * src\\cmt_fragment.cxx (class fragment_action_iterator): Add
[3]3540        action iterator to expand macros before parsing line.
3541
[397]3542        * src\\cmt_fragment.cxx (action): Hide make_fragments in private
[3]3543        sections like macros
3544
[397]3545        * mgr\\requirements: Introduce the generic Unix tag for all Unix platforms
[3]3546       
[397]3547        * src\\cmt_parser.cxx (dos_script_prefix): Factor out the writing
[3]3548        of DOS setup and cleanup scripts.
3549
[397]3550        * mgr\\INSTALL.bat: No longer need nmake to generate the setup.bat
[3]3551        script of CMT, thanks to the %~d0%~p0 mechanism (copy from src is enough).
3552
[397]3553        * src\\setup.bat: Install a generic mechanism for finding the
[3]3554        current drive letter (unfortunately this mechanism does not work
3555        in any possible Unix shell)
3556
[397]3557        * src\\cmt_parser.cxx (install_setup_scripts): Apply the drive
[3]3558        letter mechanism to setup scripts
3559
35602003-05-17    <arnault@lal.in2p3.fr> 151
3561
[397]3562        * mgr\\requirements: Typo in the cmtpath_pattern : use_includes
[3]3563
35642003-05-14    <arnault@lal.in2p3.fr> 150
3565
[397]3566        * src\\cmt_parser.cxx (restore_all_tags): Bug in managing
[3]3567        -tag=<taglist> argument due to the separator in m_extra_tags :
3568        force a separator before and after all tags in the list
3569        (parse_arguments): idem
3570        (print): idem
3571
35722003-05-13    <arnault@lal.in2p3.fr> 149
3573
3574        * fragments/tex: install correction from Marie Anne
3575
35762003-05-12    <arnault@lal.in2p3.fr> 148
3577
3578        * mgr/cmt_linux_version.sh: Adding a script to retrieve Linux version and distribution
3579
3580        * mgr/requirements: Add declaration of install_includes fragments
3581
3582        * fragments/install_includes_header: Make fragment for installing
3583        include directory but only for those following the standard
3584        pattern of ../<package>
3585
3586        * fragments/install_includes:
3587        * fragments/nmake/install_includes_header:
3588
3589        * mgr/cmt_installdir_action.bat: Special treatment of directory
3590        installation
3591        * mgr/cmt_uninstalldir_action.bat:
3592
3593        * fragments/constituents_trailer (remove_library_links): Add a
3594        remove_library_links target
3595        * fragments/nmake/constituents_trailer: idem
3596
3597        * fragments/constituent (uninstall): Suppress dependencies for
3598        uninstall target
3599        * fragments/nmake/constituent (uninstall): idem
3600
36012003-05-11    <arnault@lal.in2p3.fr> 147
3602
[397]3603        * mgr\\requirements: Add search libpath to installarea for WIN32
[3]3604
[397]3605        * fragments\\nmake\\library (install): bug (typo) in target names
[3]3606
[397]3607        * mgr\\cmt_install_action.bat: use rem comments instead of #
3608        * mgr\\cmt_uninstall_action.bat: idem
[3]3609
[397]3610        * mgr\\NMake (cmt): Filter out the include and lib definitions in
[3]3611        VisualC.nmake for cmt itself.
3612
[397]3613        * src\\cmt_parser.cxx (scan_path): Suppress unused variable
[3]3614
[397]3615        * src\\cmt_std.h (OLD_HEADERS): Adopt new header style for WIN32
[3]3616
[397]3617        * mgr\\requirements: Add compiler option for exception handling in VisualC
[3]3618
36192003-05-05  Christian Arnault  <arnault@lal.in2p3.fr> 146
3620
3621        * src/cmt_use.cxx (add): Set the warning for package not found a real warning.
3622
3623        * src/cmt_parser.cxx (do_setup): Change the info message to be
3624        displayed only when appropriate
3625
36262003-05-05    <arnault@lal.in2p3.fr> 145
3627
3628        * src/cmt_version.h: v1r14
3629
3630        * doc/CMTDoc.xml: Improve the doc
3631
3632        * doc/gendoc.py (Book.syntax_start): Add an attribute name in
3633        syntax for avoiding name conflicts
3634
3635        * fragments/nmake/jar (install):
3636        * fragments/nmake/java_header (install):
3637        * fragments/nmake/library_no_share (install):
3638        * fragments/nmake/library (install):
3639        * fragments/nmake/application (install):
3640
3641        * fragments/jar (install):
3642        * fragments/java_header (install):
3643        * fragments/library_no_share (install):
3644        * fragments/library (install):
3645        * fragments/application (install): apply the centralized scripts
3646
3647        * mgr/cmt_uninstall_action.bat:
3648        * mgr/cmt_install_action.bat:
3649        * mgr/cmt_uninstall_action.sh:
3650        * mgr/cmt_install_action.sh: Scripts for doing
3651        (un)installation into the current installation area
3652
36532003-05-02  Christian Arnault  <arnault@lal.in2p3.fr> 144
3654
3655        * fragments/application (uninstall, install):
3656        * fragments/library (uninstall, install):
3657        * fragments/library_no_share (uninstall, install):
3658        * fragments/java_header (uninstall, install):
3659        * fragments/jar (uninstall, install):
3660        * fragments/constituent (install, uninstall): Add (un)install actions
3661        idem for nmake
3662       
3663
36642003-05-02    <arnault@lal.in2p3.fr> 143
3665
3666        * doc/gendoc.py : Create a new mechanism for generating HTML
3667        documentation from an XML representation.
3668
36692003-04-30  Christian Arnault  <arnault@lal.in2p3.fr> 142
3670
3671        * src/cmt_parser.cxx (do_show_strategies): Display the Setup strategy
3672
3673        * src/cmt_syntax.cxx (class KwdSetupStrategy): Decode the
3674        [no_]cleanup option for the setup_strategy in requirements file
3675
3676        * src/cmt_parser.cxx (parse_arguments): Decode the -no_cleanup option
3677        (do_setup): Apply the cleanup only when the setup strategy permits it
3678        (do_config): idem
3679
3680        * src/cmt_parser.h (enum): Add NoCleanup possibility to the SetupStrategy
3681
36822003-04-16  Christian Arnault  <carnault@lxplus051.cern.ch> 141
3683
3684        * src/cmt_parser.cxx (run): Bug in PackageCollector::run current
3685        directory missed the package name. (for cmt show clients)
3686
36872003-04-12    <arnault@lal.in2p3.fr> 140
3688
[397]3689        * src\\cmt_generators.cxx: Add excludes to all calls to get_all_files
[3]3690
[397]3691        * src\\cmt_generator.h (class CmtGenerator): Add exclude expressions
[3]3692
[397]3693        * src\\cmt_constituent.cxx (class constituents_action_iterator):
[3]3694        Implement the -x=<pattern> option to the constituent to exclude
3695        patterns. Create regexps for each pattern.
3696        (show): Show excludes
3697
[397]3698        * src\\cmt_constituent.h (class Constituent): Add a vector of
[3]3699        regexp for exclude specs.
3700
[397]3701        * src\\cmt_regexp.cxx (set): Implement the set function.
[3]3702
[397]3703        * src\\cmt_regexp.h (class cmt_regexp): Introduce a default
[3]3704        constructor and a set function
3705
[397]3706        * src\\cmt_generators.cxx:
3707        * src\\cmt_generator.cxx: Strong restruring of generator architecture:
[3]3708          + create a CmtGenerator basic class for all generators
3709          + create derived classes for all categories of generators
3710                 ApplicationGenerator
3711                 LibraryGenerator
3712                 DocumentGenerator
3713                 ReadmeGenerator
3714                 PrototypeGenerator
3715                 DefaultMakefileGenerator
3716                 MSDEVGenerator
3717                 VSNETGenerator
3718                 MakeSetupGenerator
3719                 ConstituentsMakefileGenerator
3720                 DependencyGenerator
3721          + transfer new stuff in cmt_generators.h/.cxx
3722          + transfer all utility functions (get_all_files etc...) into the base class
3723          + optimize handling of Variable and FragmentHandle objects per Generator class
3724       
3725
[397]3726        * src\\cmt_install_area.cxx (config): suppress echo in quiet mode
[3]3727
[397]3728        * src\\cmt_parser.cxx (install_test_setup_scripts): Protect tempfile against spaces in paths
[3]3729        (install_test_cleanup_scripts): idem
3730        (install_setup_scripts): idem
3731        (install_cleanup_scripts): idem
3732
37332003-04-11  Christian Arnault  <carnault@lxplus051.cern.ch> 139
3734
3735        * src/cmt_parser.cxx (do_run_sequence): Sequences are removed from
3736        cmt.cxx and implemented in a dedicated source file.
3737
3738        * src/cmt_sequence.h (class SequenceRunner): Adding cmt_sequence.h
3739        (defining sequences)
3740
3741        * src/cmt_sequence.cxx (filter): Adding cmt_sequence.cxx (extracted
3742        from cmt.cxx)
3743
3744        * src/cmt_generator.cxx (get_all_files): Return a count of non
3745        empty file names.
3746        (build_library_makefile): Ensure that get_all_files is done only
3747        once.
3748        (build_document_makefile): Ensure that get_all_files is done only
3749        once (not completed yet)
3750        (class DocumentMakefileGenerator): Start creating an object model
3751        for makefile generators. Create derived classes of
3752        MakefileGenerator for Application, Library, document
3753
3754        * src/cmt_constituent.h (class Constituent): Add excludes vector
3755        of exclusions
3756
3757        * src/cmt_constituent.cxx (class constituents_action_iterator):
3758        Start implementing exclusion mechanisms on constituent sources.
3759        We add a -x=<pattern> cumulative option to the constituent syntax
3760       
37612003-04-07    <arnault@lal.in2p3.fr> 138
3762
[397]3763        * src\\cmt_generator.cxx: Add DIRNAME Variable
[3]3764        Add new fragments for vcproj
3765
37662003-04-05    <arnault@lal.in2p3.fr> 138
3767
[397]3768        * mgr\\requirements: define VC7 VC7debug tags for vsnet
[3]3769
[397]3770        * src\\cmt_generator.cxx (class MakefileGenerator): Add vsnetdir variable
[3]3771        Add declarations for vsnet fragments
[397]3772        (reset): Install vsnetdir as ..\\VisualC
[3]3773        (pseudoGUID): Implement an algorithm for creating GUIDs
3774        (build_vsnet_workspace):
3775        (build_vsnet):
3776
[397]3777        * src\\cmt_generator.h (class Generator): Declare
[3]3778        build_vsnet_workspace and build_vsnet methods
3779
[397]3780        * src\\cmt_constituent.cxx (build_all_vsnet_files): Implement for vsnet
[3]3781        (build_vsnet_file): Implement for vsnet
3782
[397]3783        * src\\cmt_constituent.h (class Constituent): Add build_all_vsnet_files
[3]3784        (class Constituent): Add build_vsnet_file
3785
[397]3786        * src\\cmt_parser.cxx (class StandardMacroBuilder): Add macro
[3]3787        <constituent>_GUID for vsnet.
3788        (parser): Implement cmt build vsnet actions
3789
[397]3790        * src\\cmt_syntax.cxx (CommandParser): Add help about cmt build vsnet
[3]3791
[397]3792        * src\\cmt_parser.h (enum): Add action_build_vsnet
[3]3793
[397]3794        * src\\cmt.h (class Cmt): Add Visual Sudio.Net support (From Toby Burnett)
[3]3795
37962003-04-03  Christian Arnault  <carnault@lxplus051.cern.ch> 137
3797
3798        * src/cmt_parser.cxx (do_setup): Do a config action to the
3799        installation area in order to perform a cleanup operation during
3800        the source setup
3801
3802        * src/cmt_install_area.cxx (config): Display a message when doing
3803        cleanup of installation areas.
3804
3805        * mgr/requirements: Rename cmt_(un)install_command to cmt_(un)install_area_command
3806        Prepare CMTr14 tag from CMTr13
3807
3808        * fragments/java_header (install_java_bin_dir): idem
3809        * fragments/library_no_share (install_lib_dir): idem
3810        * fragments/jar (install_java_lib_dir): idem
3811        * fragments/library (install_lib_dir): idem
3812        * fragments/application (install_bin_dir): idem
3813
38142003-04-02  Christian Arnault  <carnault@lxplus051.cern.ch> 136
3815
3816        * src/cmt_symbol.cxx (build): Bug : the macro_prepend was NOT really prepending.
3817
38182003-03-28  Christian Arnault  <carnault@lxplus051.cern.ch> 136
3819
3820        * src/cmt_parser.cxx (class StandardMacroBuilder): Add CMTVERSION standard macro
3821
38222003-03-28    <arnault@lal.in2p3.fr> 135
3823
[397]3824        * src\\cmt_parser.cxx (configure_version_tag): Create three new predefined tags:
[3]3825           CMTv<n>
3826           CMTr<n>
3827           CMTp<n>
3828        to describe the current version, release and patch of CMT.
3829
[397]3830        * src\\cmt_parser.h (enum): Adding PriorityVersion for marking the
[3]3831        priority of the new automatic version tag
3832
[397]3833        * src\\cmt_parser.cxx (configure_version_tag): Implement
[3]3834        configure_version_tag method to create a tag for the version of
3835        CMT
3836
[397]3837        * src\\cmt.h (class Cmt): Adding configure_version_tag method to
[3]3838        create a tag for the version of CMT
3839
[397]3840        * src\\cmt_symbol.cxx (all_set): Ensure that all path separators
[3]3841        are back-slash on windows.
3842
[397]3843        * fragments\\nmake\\jar:  Adapt for the new convention (subdirectory for the CONSTITUENT)
[3]3844        (install_java_lib_dir):  Add installation area mechanisms
3845
[397]3846        * fragments\\nmake\\java: Adapt for the new convention (subdirectory for the CONSTITUENT)
[3]3847
[397]3848        * fragments\\nmake\\java_header (install_java_bin_dir): Add installation area mechanisms
[3]3849
38502003-03-21  Christian Arnault  <carnault@lxplus051.cern.ch> 134
3851
3852        * src/cmt_parser.cxx (parser): cmt run must be recursive for used
3853        packages (in order to get all environment variables set)
3854
38552003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 133
3856
3857        * src/cmt_symbol.cxx (show): Implement common SymbolValueList::show method.
3858
3859        * src/cmt_symbol.h (class SymbolValueList): Factor out printing SymbolValues
3860
3861        * src/cmt_symbol.cxx (create): Give use context in warning message
3862
3863        * src/cmt_symbol.h (class Symbol): Add Use* argument to print
3864        context in warning messages
3865
3866        * src/cmt_parser.cxx (vector_to_string): Ignore empty entries to
3867        avoid duplicate separators
3868
38692003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 132
3870
3871        * src/cmt_error.cxx (print): Consistently set the prefix "#CMT> "
3872        to all error messages and print outs
3873        * src/cmt_triggers.cxx (filter): idem
3874        * src/cmt_use.cxx (add): idem
3875        * src/cmt_generator.cxx (build_default_makefile): idem
3876        * src/cmt_symbol.cxx (create): idem
3877        * src/cmt_parser.cxx (do_show_macro): idem
3878
3879        * src/cmt_symbol.cxx (create): Handle the unconsistent multiple
3880        declarations of sets as macros (and vice versa)
3881
3882        * src/cmt_error.cxx (class Error): Add warning error text
3883        * src/cmt_error.h (class CmtError): Add warning error code
3884
3885        * src/cmt_parser.cxx (reach_current_package): Suppress error print
3886        when requirements file is not found
3887        (do_show_macro): Improve the error message in the
3888        "cmt show macro/set" command
3889
38902003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 131
3891
3892        * src/cmt_parser.cxx (reach_current_package):
3893        * src/cmt_install_area.h (class CmtInstallAreaMgr): Factor out the
3894        construction of the current installation area
3895
3896        * src/cmt_install_area.cxx (setup): Filters out "default path" for
3897        constructing the current installation area
3898        (config): idem
3899
3900        * src/cmt_cmtpath_pattern.cxx (apply): Suppress "default path" (ie
3901        CMTPATH of CMT) from application of cmtpath_patterns
3902
3903        * src/cmt_parser.cxx (get_cmt_path_sources): Add accessor to cmtpath_sources
3904
3905        * src/cmt.h (class Cmt): Add accessor to cmtpath_sources
3906
39072003-03-18  Christian Arnault  <carnault@lxplus051.cern.ch> 130
3908
3909        * src/cmt_cmtpath_pattern.cxx (apply): Optimize the substitution
3910        of "<path>" in cmtpath_patterns by avoiding a loop over path items
3911        when the pattern does not contain "<path>" at all
3912
39132003-03-13  Christian Arnault  <carnault@lxplus051.cern.ch> 130
3914
3915        * mgr/requirements: Add -classpath $(src) to java compilation
3916
3917        * src/cmt_generator.cxx (analyze_file): Default copy action for
3918        files with no language is applied only to java contexts
3919
39202003-03-12  Christian Arnault  <carnault@lxplus051.cern.ch> 130
3921
3922        * fragments/java_copy: Use this fragment for default action on
3923        sources with no language
3924
3925        * src/cmt_generator.cxx (module_file_action): Install default
3926        (copy) action for source files with no language.
3927
3928        * fragments/java_header: Building jar files with * rather than *.class
3929
3930        * fragments/jar: Building jar files with * rather than *.class
3931
3932        * fragments/java_header: Syntax fix for generating manifest file
3933
39342003-03-11  Christian Arnault  <carnault@lxplus051.cern.ch> 129
3935
3936        * src/setup.zsh: Add show cmtpath_patterns option
3937
3938        * src/cmt_generator.cxx (analyze_file): Add constituent sub
3939        directory to output for java files
3940
3941        * fragments/jar: Add constituent sub directory to ../classes to
3942        store *.class and jar files
3943
3944        * fragments/java_header (install_java_bin_dir): Apply installation
3945        area mechanisms for java application
3946
3947        * mgr/requirements: Need both share/bin and share/lib for installarea
3948
39492003-03-10  Christian Arnault  <carnault@lxplus051.cern.ch> 129
3950
3951        * src/cmt_cmtpath_pattern.cxx (apply): CMTPATH patterns should be
3952        applied in revers order
3953
3954        * mgr/requirements: bug fix (missing backslash)
3955
3956        * src/cmt_install_area.cxx (config): Bug fix
3957
39582003-03-09    <ARNAULT@lal.in2p3.fr> 128
3959
[397]3960        * src\\cmt_install_area.cxx (setup): Make use of the cmt_installarea_prefix macro
[3]3961        (config): idem
3962
39632003-03-08    <ARNAULT@lal.in2p3.fr> 128
3964
[397]3965        * mgr\\requirements: Define the cmt_installarea_prefix macro to
[3]3966        parameterize the common prefix to be added to all CMTPATH entries
3967        for installation areas
3968
39692003-03-06    <ARNAULT@lal.in2p3.fr> 127
3970
[397]3971        * src\\cmt_install_area.cxx (config): Introduce the new macro
[3]3972        cmt_installarea_paths used to declare all PATHS inside the
3973        installareas that will need to be checked for consistency when
3974        doing cmt config
3975
[397]3976        * src\\cmt_install_area.h (class CmtInstallAreaMgr): Remove
[3]3977        set_path, add_path_pattern, apply_path_patterns function since
3978        they are all managed through cmtpath_patterns
3979
[397]3980        * src\\cmt_parser.cxx (do_show_cmtpath_patterns): Do set_standard_macros
[3]3981
[397]3982        * src\\cmt_install_area.cxx (setup): Launch the CmtPathPattern::apply_all ()
[3]3983
[397]3984        * src\\cmt_parser.cxx (parser): Add parsing of cmt show cmtpath_patterns
[3]3985
[397]3986        * src\\cmt_syntax.cxx: Add parsing of cmt show cmtpath_patterns
[3]3987
[397]3988        * src\\cmt_parser.h (enum): Add action_show_cmtpath_patterns
[3]3989
[397]3990        * src\\cmt_database.cxx (cmtpath_patterns): Add CmtPathPatternVector object
[3]3991
[397]3992        * src\\cmt_database.h (class Database): Add CmtPathPatternVector
[3]3993
[397]3994        * src\\cmt_cmtpath_pattern.cxx: Install partial reproduction of cmt_pattern.cxx
[3]3995
[397]3996        * src\\cmt_cmtpath_pattern.h: Create cmt_cmtpath_pattern.h
[3]3997        (class CmtPathPattern): Install partial reproduction of cmt_pattern.h
3998
[397]3999        * mgr\\requirements: Add the source file cmt_cmtpath_pattern.cxx
[3]4000
[397]4001        * src\\cmt_syntax.cxx (class KwdCmtPathPattern): add parser object
[3]4002        for the new CommandCmtPathPattern.
4003
[397]4004        * src\\cmt_parser.h (enum): Add CommandCmtPathPattern to declare
[3]4005        CMTPATH patterns to be applied onto all CMTPATH items.
4006
40072003-03-06    <ARNAULT@lal.in2p3.fr> 126
4008
[397]4009        * src\\cmt_symbol.cxx (all_set): Add debug informattion
[3]4010
[397]4011        * src\\cmt_parser.cxx (do_run): Do set_standard_macros before
[3]4012        running
4013
40142003-03-06  Christian Arnault  <carnault@lxplus051.cern.ch> 125
4015
4016        * src/cmt_system.h (class CmtSystem): Adding putenv to set environment variables
4017        * src/cmt_system.cxx (putenv): idem
4018
4019        * src/cmt_symbol.cxx (class SetBuilder): The build and clean
4020        function should return string object rather that referencing the
4021        string object attribute (protection against recursive calls)
4022        (class PathBuilder): idem
4023        (class MacroBuilder): idem
4024        (class ScriptBuilder): idem
4025        (resolve_value): Add comments and improve variable naming
4026        (resolve_value): idem
4027        (resolve_value_for_macros): idem
4028        (suppress_OS_delimiters): idem
4029
4030        * src/Makefile.header (common_target): Use /tmp to
4031        create temporary (and disposable) make fragments.  Rearrange
4032
4033        * mgr/Makefile (cpp): Provide support to build on LinuxDebug
4034
4035        * fragments/constituents_header (cmt_lock_setup): Use /tmp to
4036        create temporary (and disposable) make fragments.  Rearrange
4037        statements in the building of $(tag).make so as to ensure that
4038        echo statements are only done when things are ok.
4039
4040        * src/cmt_parser.cxx (install_cleanup_scripts): Define CMTROOT
4041        only if it is NOT defined yet. Goal is to keep user defined
4042        version of CMT.
4043        (install_setup_scripts): idem
4044        (install_test_cleanup_scripts): idem
4045        (install_test_setup_scripts): idem
4046
40472003-02-27  Christian Arnault  <carnault@lxplus051.cern.ch> 125
4048
4049        * src/cmt_symbol.h (class ValueBuilder): due to recursivity,
4050        Builder function cannot share the temporary string value
4051
40522003-02-26  Christian Arnault  <carnault@lxplus051.cern.ch> 125
4053
4054        * src/cmt_parser.cxx (do_run): Add Symbol::all_set
4055        (do_broadcast): idem (before the loop over packages)
4056
4057        * src/cmt_symbol.cxx (all_set): Install the mechanism to set
4058        environment variables (using putenv) into CMT. This function is
4059        called before running the CmtSystem::execute function.
4060       
4061        * src/cmt_symbol.h (class Symbol): Remove the tabs argument of the
4062        print and print_clean methods (obsolete)
4063
4064        * src/cmt_symbol.cxx (resolve_value): rename the argument for the
4065        symbol name (it applies for any symbol, not just for macros)
4066        (resolve_value): Improve comments
4067        (resolve_value_for_macros): Improve comments
4068        (resolve_macro_value): factor out at least one of the resolve macro algorithms
4069
40702003-02-24  Christian Arnault  <carnault@lxplus051.cern.ch> 124
4071
4072        * src/cmt_generator.cxx (build_dependencies): Surrounding
4073        dependencies by quotes does not please gmake. We have to check
4074        what happens on Darwin (ie what about path names with spaces?)
4075       
40762003-02-14    <ARNAULT@lal.in2p3.fr> 123
4077
[397]4078        * mgr\\requirements: Use XCOPY instead of copy for the install
[3]4079        commands to support the directory copy
4080
[397]4081        * fragments\\installer: Suppress the need to specify install_dir
[3]4082        with trailing slash
4083
[397]4084        * fragments\\nmake\\installer: Add installer for Windows
[3]4085
[397]4086        * src\\cmt_generator.cxx (build_dependencies): Add double quotes to
[3]4087        support file names with non standard characters (eg spaces) (not
4088        only on Windows).       
4089        (filter_path): Add the filter operation to work on one sigle
4090        file. The filter_paths function becomes obsolete and is removed.
4091        (analyze_document_file): Use filter_path instead of filter_paths
4092        (proto_file_action): idem
4093        (module_file_action): idem
4094        (build_library_makefile): idem
4095        (build_document_makefile): idem
4096        (build_dependencies): idem
4097        (build_document_makefile): Support sources being directories
4098        (module_file_action): idem
4099
[397]4100        * mgr\\cmt_install_action.bat: idem
4101        * mgr\\cmt_uninstall_action.bat: idem
4102        * fragments\\nmake\\library_no_share (install_lib_dir): idem
4103        * fragments\\nmake\\library (install_lib_dir): idem
4104        * fragments\\nmake\\application (install_bin_dir): idem
[3]4105
41062003-02-11  Christian Arnault  <carnault@lxplus051.cern.ch> 122
4107
4108        * src/cmt_cvs.cxx (class CvsImplementation): Adding explicit error
4109        message when base directory cannot be created during the checkout.
4110
41112003-02-06  Christian Arnault  <carnault@lxplus051.cern.ch> 121
4112
4113        * src/Makefile.header (clean): Remove the pseudo config target for
4114        the clean target
4115       
41162003-02-04  Christian Arnault  <carnault@lxplus051.cern.ch> 120
4117
4118        * src/cmt_use.cxx (add): Add protection against recursive use
4119        statement to current_use
4120
41212003-02-04    <ARNAULT@lal.in2p3.fr> 119
4122
[397]4123        * src\\cmt_use.cxx (need_new): Add protection against recursive use
[3]4124        statement to current_use
4125
41262003-01-31  Christian Arnault  <carnault@lxplus051.cern.ch> 118
4127
4128        * mgr/requirements : library_prefix should be empty for WIN32
4129
4130        * src/cmt_parser.cxx (install_setup_scripts): Protect the setup
4131        script generation against cases where : structuring style is set
4132        to without_version_directory and verion tag cannot be determined
4133        (eg. if the version file does not exist). Then, the -version=xxx
4134        option is suppressed from the setup script generation.
4135        (install_test_cleanup_scripts): idem
4136
4137        * src/Makefile.header (common_target): Suppress a debug settings
4138
41392003-01-28    <ARNAULT@lal.in2p3.fr> 117
4140
[397]4141        * src\\cmt_install_area.cxx (instance): Suppress the production of
[3]4142        LD_LIBRARY_PATH installation specs for WIN32
4143
[397]4144        * fragments\\nmake\\library_no_share (install_lib_dir):
4145        * fragments\\nmake\\library (install_lib_dir): 
4146        * fragments\\nmake\\application (install_bin_dir): Add install area mechanisms for WIN32
[3]4147
41482003-01-24  Christian Arnault  <carnault@lxplus032.cern.ch> 116
4149
4150        * src/cmt_install_area.cxx (instance): The constuction of the
4151        instance also declares the path patterns.
4152
4153        (setup): Make use of the path_patterns to generate CMT statements
4154
4155        (get_install_area): The current install area is preserved in the
4156        InstallAreaMgr instance (singleton).
4157
4158        (set_path): (only used internally) build a path expression from a pattern
4159
4160        (setup): Provide additional -L... options towards the install area
4161        for use_linkopts ad shlibbuilder
4162       
4163        (config): Perform the cleanup operation onto the current installation area:
4164          check the all ref-files still refer to existing files.
4165          if not erase the corresponding installed file.
4166
4167        * src/cmt_install_area.h (class CmtInstallPathPattern): New class
4168        for storing generic patterns for (PATH/directories) duets
4169        generation and management inside install area mechanisms.  The
4170        point is to describe special conventions for things to be
4171        installed within the installation area.
4172
4173        We describe that in terms of a set of :
4174       
4175           o path-like variable names
4176           o subdirectory patterns bellow $CMTINSTALLAREA
4177
4178        All those patterns will be used to configure the installation area
4179        and to expand the specified PATH-like variables.
4180
4181           Ex:
4182              PATH            is associated with ${CMTCONFIG}/bin
4183              LD_LIBRARY_PATH is associated with ${CMTCONFIG}/lib
4184              CLASSPATH       is associated with share/bin
4185
4186           we could think of having those patterns defined in the
4187           requirements file.
4188
4189        * src/cmt_parser.cxx (do_remove_library_links): Handle symlinks
4190        induced by the <package>_libraries macros through INSTALLAREA
4191        mechanisms
4192        (do_build_library_links): (idem)
4193        (set_standard_macros): Setup operations for InstallArea have been
4194        grouped using InstallPathPatterns
4195        (do_config): Add cleanup of install area
4196
41972003-01-23  Christian Arnault  <carnault@lxplus032.cern.ch> 115
4198
4199        * src/cmt_syntax.cxx (class KwdBuildStrategy): Support extension
4200        of build_strategy with install_area mechanisms.
4201
4202        * src/cmt_system.cxx (mkdir): Suppress the error message when one
4203        cannot create a directory
4204
4205        * fragments/application (install_bin_dir):
4206        * fragments/library_no_share (install_lib_dir):
4207        * fragments/library (install_lib_dir): Use CMTINSTALLAREA instead of INSTALLAREA
4208
4209        * src/cmt_parser.cxx (do_build_library_links): Use install area
4210        mechanisms when the build_strategy is active rather than
4211        symlinking into the binary directory of the package.
4212
4213        (set_standard_macros): Add the generation of CMTINSTALLAREA
4214        environment variable, the prepending of PATH, LD_LIBRARY_PATH,
4215        CLASSPATH when install_area is active
4216
4217        * src/cmt_install_area.cxx:
4218        * src/cmt_install_area.h (class CmtInstallAreaMgr): New class for
4219        managing install area mechanisms.
4220
4221        * src/cmt_parser.h (enum): Add InstallArea in BuildStrategy
4222
42232003-01-22  Christian Arnault  <carnault@lxplus032.cern.ch> 114
4224
4225        * src/cmt_use.cxx (find_index): Bad use of a static local variable
4226        implying wrong management of -import= options
4227        (get_index): Adding accessor function to m_index private attribute
4228
4229        * src/Makefile.header (.DEFAULT): Remove temporary debugging action
4230
42312003-01-21  Christian Arnault  <carnault@lxplus032.cern.ch> 113
4232
4233        * src/cmt_symbol.cxx (all_print): Restore two-steps process for
4234        generating setenv calls (first normal env. variables then path-like)
4235        (all_print_clean):
4236
42372002-12-20  Christian Arnault  <carnault@lxplus032.cern.ch> 112
4238
4239        * src/cmt_parser.cxx (do_show_strategies): put a space character
4240
4241        * mgr/Makefile (cpp): Add the -O2 compiler option on default platforms
4242
4243        * mgr/requirements: Privately try the construction of the new CMTCONFIG
4244
4245        * src/cmt_parser.cxx (parse_arguments): Add cmt --version equivalence to cmt version
4246
42472002-12-19  Christian Arnault  <carnault@lxplus032.cern.ch> 111
4248
4249        * mgr/requirements: Change the name of cmt_cc_version.sh to
4250        cmt_dcc_version.sh for case insentivity of Darwin file system
4251
4252        * fragments/application (install_lib_dir):
4253        * fragments/library (install_lib_dir):
4254        * fragments/library_no_share (install_lib_dir):
4255
42562002-12-18  Christian Arnault  <carnault@lxplus032.cern.ch> 110
4257
4258        * src/cmt_symbol.cxx (resolve_value_for_macros): We have to
4259        suppress the conversion from %xxx% to $(xxx) on non-windows
4260        platform, since there were some occurrences of %xxx% patterns,
4261        which have a meaning in unix world!!
4262
4263        * src/Makefile.header (.DEFAULT): Only run once sub-makefile
4264
4265        * src/cmt_symbol.cxx (all_print_clean): Keep order of generation
4266        of sets and paths (instead of sets then paths)
4267
4268        * mgr/cmt_cc_version.sh: Helper scripts for compiler query commands
4269        * mgr/cmt_cxx_version.sh:
4270        * mgr/cmt_CC_version.sh:
4271        * mgr/cmt_gcc_version.sh:
4272
4273        * mgr/cmt_filter_version.sh:
4274
4275        * fragments/constituents_header (first): Make use of cmt show setup
4276       
4277        * src/cmt_parser.cxx (do_show_setup): Display sections rather than from the Makefile
4278       
4279        * src/cmt_use.cxx (class use_action_iterator): action_show_setup
4280        traverses the private subtrees (like show_uses)
4281
4282        * src/cmt.h (class Cmt):
4283        * src/cmt_parser.cxx (do_show_setup):
4284        * src/cmt_parser.h (enum): Add action_show_setup for grouping show uses,tags,path
4285
4286        * mgr/requirements: Manage a common (sh/csh) style for output
4287        redirection for system query commands
4288
4289        * fragments/library_no_share (install_lib_dir):
4290        * fragments/library (install_lib_dir):
4291        * fragments/application (install_bin_dir): Use cmt_install_command
4292        instead of install_command for install area mechanisms to avoit
4293        conflicts with the installer document generator
4294
42952002-12-18    <ARNAULT@lal.in2p3.fr> 109
4296
[397]4297        * src\\cmt_parser.cxx (do_show_strategies): Add display of setup strategy
[3]4298        (print_context): Apply the build strategy
4299
[397]4300        * src\\cmt.h (class Cmt): Add get/set current_setup_strategy methods
[3]4301        (class Cmt): Add m_current_setup_strategy attribute
4302
[397]4303        * src\\cmt_parser.h (enum): Add SetuStrategy enumeration
[3]4304
[397]4305        * src\\cmt_syntax.cxx (class KwdSetupStrategy): Add SetupStrategy class
[3]4306
[397]4307        * src\\cmt_parser.h (enum): Add setup_strategy keyword to control
[3]4308        the production of <PACKAGE>CONFIG and <PACKAGE>ROOT env. variables
4309
[397]4310        * src\\cmt_parser.cxx (class StandardMacroBuilder): Add few debug printouts
[3]4311
[397]4312        * src\\cmt_use.cxx (find_index): The returned index must be the
[3]4313        m_index attribute of the Use object rather than the index in the
4314        use list of the package!!
4315
43162002-12-16  Christian Arnault  <carnault@lxplus032.cern.ch> 108
4317
4318        * src/Makefile.header (binclean): Add a quick binclean target
4319        (all): prepend a systematic config target
4320
4321        * fragments/constituents_header (all): Suppress dummy messages in gmake all and config
4322
43232002-12-16    <ARNAULT@lal.in2p3.fr> 107
4324
[397]4325        * src\\cmt.h (class Cmt): do_help remembers of the current action
[3]4326        being parsed to have cmt help action
4327
[397]4328        * src\\cmt_syntax.h (class CommandParser): Command parsing
[3]4329        mechanisms. So far only the help is handled. General map-based
4330        parsing mechanism is foreseen
4331
[397]4332        * src\\cmt_parser.h (enum ActionType): Add global actions for
[3]4333        build, check, show only for error and help management
4334
[397]4335        * src\\cmt_syntax.cxx (show): Command Help management introduced (will be improved)
[3]4336
[397]4337        * src\\cmt_parser.cxx (parse_arguments): Improve command help with SyntaxParser 
[3]4338
[397]4339        * mgr\\requirements: Adding specs for query commands on WIN32
[3]4340
43412002-12-12  Christian Arnault  <carnault@lxplus032.cern.ch> 106
4342
4343        * mgr/Makefile: Remove the mail sending after CMT rebuild... (!!!)
4344
4345        * src/cmt_symbol.cxx (resolve_macro_value): Detects patterns like:
4346        `$(macro-name)` within symbol definitions. The specified macro is expected
4347        to contain a shell command that will then be executed when expanding
4348        the macro.
4349
4350        * mgr/requirements: Add some system information queries:
4351        hardware
4352        system_version
4353        compiler_version
4354
4355        * mgr/cmt_filter_version.sh: Add a filtering script for system version
4356        informations.
4357
43582002-12-12    <ARNAULT@lal.in2p3.fr> 105
4359
[397]4360        * mgr\\requirements:  make use of SyntaxParser
4361        * src\\cmt_triggers.cxx: idem
4362        * src\\cmt_use.cxx: idem
4363        * src\\cmt_parser.cxx: idem
4364        * src\\cmt_pattern.cxx: idem
[3]4365
[397]4366        * src\\cmt_syntax.cxx:
4367        * src\\cmt_syntax.h (class Kwd): Introduce the new syntax parsing
[3]4368        mechanism. It is based on a cmt_map of keyword objects. All requirements parsing
4369        operations are now implemented in the SyntaxParser singleton.
4370
[397]4371        * src\\cmt_parser.cxx (do_build_library_links): Introduce the
[3]4372        cmt_symlink_cmd macro to override the internal management of
4373        symlink creation in case this is unavailable (eg on Windows)
4374
43752002-12-11  Christian Arnault  <arnault@lal.in2p3.fr> 104
4376
4377        * src/cmt_parser.cxx (do_set_versions): Make use of cmt broadcast
4378        to install version files in all packages. Inherit broadcast syntax.
4379       
4380        (do_broadcast): Add possibility to use template like in patterns
4381        Start with <version>.
4382
4383        * mgr/Makefile (cpp): Add profiling option
4384
4385        * fragments/check_java (check): Add run options
4386
4387        * src/cmt_use.cxx (find): Use Package grouping of uses
4388        (find_index): Use index registration information
4389        (move): Use index registration information
4390        (reorder): idem
4391        (need_new): Revisit the algo to avoid useless multiple reading of requirements files
4392        (add): Use index registration information
4393        (operate): Improve for without version directory style
4394        (Package): Introduce Package grouping of Use objects
4395
4396        * src/cmt_parser.cxx (do_set_versions): Use Package::is_cmt feature.
4397
4398        * src/cmt_string.cxx (replace): Optimize by reducing the calls to strlen.
4399
4400        * src/cmt_generator.cxx (build_dependencies): Use Package::is_cmt feature.
4401
4402        * src/cmt_include.cxx (print_all): Use Package::is_cmt feature.
4403
4404        * src/cmt_script.cxx (all_print_clean): Use Package::is_cmt feature.
4405
4406        * src/cmt_database.cxx (pattern_list_map): Discard dump features
4407
4408        * src/cmt_database.h (class Database): Restore tag management.
4409        Introduce PatternList and Package management
4410
4411        * src/cmt_project.cxx (class ProjectMgr): Suppress tag management
4412        from projects. Make it back to global management (from Database)
4413
4414        * src/cmt_pattern.h (class PatternList): Introduce PatternList
4415        class to group pattern by names. This class contains a list of
4416        Patterns of the same name but originating from different uses.
4417
4418        * src/cmt_use.h (class Use): renaming uses() to get_ordered_uses() and
4419        all_uses() to get_instances ()
4420
44212002-12-10  Christian Arnault  <arnault@lal.in2p3.fr> 103
4422
4423        * src/cmt_project.h (class Project): Add a tag_map to manage tags
4424
4425        * src/cmt_tag.cxx (add): Add a tag_map to manage tags
4426
4427        * src/cmt_tag.h (class Tag): Introduce a map of tags
4428
4429        * src/cmt_database.cxx (symbol_map): install a map of symbols
4430
4431        * src/cmt_database.h (class Database): install a map of symbols
4432
4433        * src/cmt_symbol.cxx (create): Use symbol map to find existing symbols
4434        (find): idem
4435        (symbol_map): access to the map of symbols from the database
4436        (clear_all): clear the database and the map
4437
4438        * src/cmt_symbol.h (class Symbol): Introduce the new typedef
4439        SymbolMap for a cmt_map of Symbols
4440
4441        * src/cmt_map.h: Introduce cmt_map.h implementing a map (binary tree)
4442
4443        * src/cmt_regexp.cxx (cmt_regexp): Rename cmt_node to cmt_regexp_node
4444        * src/cmt_regexp.h: Rename cmt_node to cmt_regexp_node
4445
44462002-12-09  Christian Arnault  <arnault@lal.in2p3.fr> 102
4447
4448        * fragments/check_java (check): Add run options (global and local)
4449
44502002-12-09  Christian Arnault  <carnault@lxplus032.cern.ch> 101
4451
4452        * mgr/requirements: Fix typo (trailing backslash)
4453
4454        * src/cmt_parser.cxx (parser): Add set versions operation to perform a
4455        global set version onto all used packages.
4456        (do_set_versions): Start implementing a draft scenario
4457        (parser): the set versions action require parsing the use graph.
4458
4459        * src/cmt.h (class Cmt): idem.
4460       
4461        * src/cmt_parser.h (enum): idem
4462
4463        * src/cmt_parser.cxx (configure_current_package): Set the default
4464        version expression in absence of both version directory AND
4465        version file to "v*" (instead of "v0")
4466
4467        * src/Makefile.header (binclean): Add new standard target for
4468        erasing at once the $(bin) directory
4469
44702002-12-08    <ARNAULT@lal.in2p3.fr> 100
4471
[397]4472        * src\\cmt_parser.cxx (do_set_version):
[3]4473        (scan_path): Improving the management of various structuring styles for the FileScanner.
4474        (do_show_strategies): Displays structuring style in show_strategies
4475        (reach_current_package): Prepare the removal of automatic addition of the
4476        current package area to CMTPATH...
4477        (do_config): Fix discovery of structuring style
4478        (configure_current_package): Fix discovery of structuring style
4479        (class SequenceRunner): Accept version argument in sequence files
4480
[397]4481        * src\\cmt.h (class Cmt):
4482        * src\\cmt_parser.h (enum): Add set version command to install version.cmt file
[3]4483
[397]4484        * src\\cmt_system.cxx (is_version_directory): Handle wild cards in
[3]4485        version ids detection
4486
[397]4487        * mgr\\requirements: Add Darwin definitions
[3]4488
[397]4489        * mgr\\cmt_make_shlib_common.sh (temp_shlib): Protect against
[3]4490        module files with space in their names
4491
[397]4492        * mgr\\requirements: try to remove CMT/v from PATH rather then CMT
[3]4493        only so as to keep subpackages of CMT
4494
[397]4495        * src\\cmt_use.cxx (set_auto_imports_state): fix a bug on use pointer comparisons.
[3]4496
[397]4497        * fragments\\nmake\\constituent:
4498        * fragments\\nmake\\constituents_header (dirs): fix naming scheme : only .nmake
[3]4499
[397]4500        * mgr\\NMake (cmt): protect VisualC.nmake generation against
[3]4501        reminder of the physical location of the rebuild
4502
[397]4503        * src\\demo\\demoA\\requirements: Add PATH towards java on Windows
[3]4504
[397]4505        * mgr\\NMake: Add a target to re-generate VisualC.nmake inside CMT
[3]4506        so as to have proper nmake demo
4507
[397]4508        * mgr\\requirements: provide debug_option for WIN32 platform
[3]4509
[397]4510        * fragments\\nmake\\make_header (tags): Suppressed
[3]4511        $(CMTCONFIG),$(CMTEXTRATAGS) and only keep $(CMTEXTRATAGS)
4512
[397]4513        * fragments\\nmake\\constituents_trailer: added to NMake family
4514        * fragments\\nmake\\group: added to NMake family
[3]4515
45162002-12-05    <ARNAULT@lal.in2p3.fr> 99
4517
[397]4518        * src\\cmt_vector.h (cmt_vector): replace static int frame_size by
[3]4519        enum {frame_size} to C++ ANSI compliance.
4520
[397]4521        * src\\cmt_use.cxx (BestFitSelector::operate): When structurig
[3]4522        style is withut-version-directory, the version field of the
4523        package may still contain wild cards. This has to be considered
4524        when checking compatibility.
4525
45262002-12-04  Christian Arnault  <carnault@lxplus032.cern.ch> 98
4527
4528        * src/cmt_use.cxx (set_auto_imports_state): bug fix (corresponding to v1r12p20021129)
4529
45302002-10-30  Christian Arnault  <carnault@lxplus032.cern.ch> 97
4531
4532        * src/cmt_vector.h (cmt_vector): define frame_size as a static
4533        const int instead of enum
4534
45352002-10-15  Christian Arnault  <carnault@lxplus032.cern.ch> 96
4536
4537        * src/cmt_use.cxx: Protect against use objects badly recorded
4538        within auto_imports_state vectors
4539
[397]4540        * src\\cmt_parser.cxx (scan_path): Fix algo to scan packages to
[3]4541        cope with no-version style
4542        (class StandardMacroBuilder): Fix no-auto-imports algo
4543
45442002-09-24  Christian Arnault  <arnault@lal.in2p3.fr> 95
4545
4546        * mgr/ChangeLog.php: Introduce the online filter for ChangeLog file
4547
4548        * doc/documents.html: Use PHP to filter out ChangeLog
4549
4550        * mgr/Makefile (docs): Install ChangeLog and ChangeLog.php into web site
4551
4552        * src/setup.zsh: Add an empty leading line to avoid shell problems...
4553
4554        * src/Makefile.header (config): force the rebuild of $(tag).make
4555
45562002-08-06  Christian Arnault  <arnault@lal.in2p3.fr> 94
4557
4558        * fragments/library: Split action list so as to force the rebuild
4559        of shared libraries when it has been lost while shstamp is still
4560        there.
4561
45622002-06-21    <arnault@lal.in2p3.fr> 93
4563
4564        * src/cmt_parser.cxx (class SequenceRunner): Add support for comments in the sequence files
4565        (do_show_macro_names):
4566        (do_show_set_names):
4567        (print_symbol_names):
4568       
4569        (class StandardMacroBuilder): prepare the production of
4570        <constituent>_use_linkopts but let it unsused for the time being
4571
4572        (class StandardMacroBuilder): fix a typo
4573       
4574        (class StandardMacroBuilder): fix a bug
4575
4576        * src/cmt_parser.h (enum):
4577        * src/cmt.h (class Cmt): Adding do_show_macro_names,
4578        do_show_set_names, print_symbol_names functions
4579
4580        * src/setup.tcsh:
4581        * src/setup.zsh: move the -quiet option before verb to avoid confusion with new syntax for show xxxs
4582
4583        * src/demo/tprivate.cmt:
4584        * src/demo/demo1.cmt: improve test sequences
4585
4586        * mgr/requirements: add the macro preproc to prepare new scheme
4587        for dependency generation using cpp -MD
4588
4589        * mgr/Makefile (cpp): Specialize default cpp according to the platform
4590        (hosts): we don't need BOOL hosts anymore
4591        (demo): the demo sequence now exploits the sequence runner of CMT
4592        (tprivate): new test sequence on private uses.
4593
4594        * mgr/ChangeLog.awk: Adding this awk script to convert the ChangeLg file int HTML format
4595
4596        * doc/CMTDownload.html:
4597        * doc/download.html:
4598        * doc/install.html: doc improvements
4599
4600        * fragments/application: Temporarily stop using $(${CONSTITUENT}_use_linkopts)
4601
4602        * src/NMakefile.header (tag):
4603        * src/Makefile.header (tags):
4604        * fragments/nmake/constituents_header (tag):
4605        * fragments/nmake/make_header (tag):
4606        * fragments/constituents_header (tag):
4607        * fragments/make_header (tag): Add $CMTCONFIG to tags
4608
46092002-05-29    <arnault@lal.in2p3.fr> 92
4610
[397]4611        * src\\cmt_database.cxx:
4612        * src\\cmt_database.h:
4613        * src\\cmt_project.h (class Project):
4614        * src\\cmt_project.cxx (Project): Introduce Project management
[3]4615
[397]4616        * mgr\\requirements: Define the default project CMT
[3]4617
[397]4618        * src\\cmt_parser.h (enum):
4619        * src\\cmt_parser.cxx (select):
[3]4620                Introduce apply_tag statements<br>
4621                Introduce first iteration on project management
4622       
[397]4623        * src\\cmt_symbol.cxx (action): replace direct access to member of
[3]4624        tag objects by accessor functions.
4625
[397]4626        * src\\cmt_tag.cxx (add):
4627        * src\\cmt_tag.h (class Tag):
[3]4628                Clean up the for private members only<br>
4629                introduce action_apply to activate a tag from a requirements file<br>
4630                introduce tag expressions -> this defines primary tags versus
4631                computed ones. Selection is either obtained from m_selected for
4632                primary tags or computed from operands otherwise.
4633                so far only AND expressions are available.
4634
46352002-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 91
4636
4637        * src/cmt_symbol.cxx (select_last): Make use of Tag::is_selected
4638
4639        * src/cmt_tag.cxx (is_selected):
4640        * src/cmt_tag.h (class Tag): Add and_operands for defining tags
4641        from a bool expression of primary tags. Move selected to private
4642        area to ensure usage of is_selected which may compute the
4643        selection state from operands. The embedded state is now reserved
4644        to primary tags.
4645
46462002-05-28  Christian Arnault  <carnault@lxplus040.cern.ch> 90
4647
4648        * src/cmt_awk.cxx (class Parser): Replace the basic parsing engine
4649        by the local Parser class. It takes care of both EOL styles (Unix
4650        and Win) and of trailing backslashes for continuations.
4651
4652        * src/cmt_awk.h (class Awk): Added a function inc_line_number to
4653        increment the line number from the external text parser.
4654
4655        * src/cmt_cvs.cxx (filter): Added debug messages
4656
4657        * src/cmt_parser.cxx (do_awk):
4658        * src/cmt_parser.h (enum): Added action_awk
4659        * src/cmt.h (class Cmt): Added do_awk function for testing the Awk operator.
4660
46612002-05-27    <arnault@lal.in2p3.fr> 89
4662
[397]4663        * doc\\todo.html: Adding entries
[3]4664
46652002-05-24  Christian Arnault  <carnault@lxplus012.cern.ch> 88
4666
4667        * src/cmt_cvs.cxx (class CvsImplementation): fix few problems with
4668        no_version_directory.
4669
46702002-05-23  Christian Arnault  <arnault@lal.in2p3.fr> 87
4671
4672        * src/demo/scenario.awk: Adapt to handle without_version_directory style
4673
4674        * src/demo/demo1.cmt: fix a typo
4675
4676        * src/cmt_parser.cxx (parse_requirements): Fixing bug on private
4677        macros for without_version_directory style
4678
4679        * mgr/Makefile (demo): Improving the demo scenario manager
4680
46812002-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 86
4682
4683        * doc/download.html:
4684        * doc/CMTDownload.html:
4685        * src/cmt_version.h (CMTVERSION): preparing tagging for v1r13...
4686
4687        * src/cmt_use.h (class Use): new helpers
4688
4689        * src/cmt_use.cxx (class use_action_iterator): re-design the scope
4690        hiding for private uses (was buggy for first level private uses)
4691        (reach_package): structuring style
4692        (get_full_path): new helper for centralizing the full package path
4693        computation
4694        (reduce_path): new helper to normal form with $<PACKAGE>ROOT
4695        (get_paths): add debug prints
4696        (show_sub_uses): structuring style
4697
4698        * src/cmt_system.h (class CmtSystem):
4699        * src/cmt_system.cxx (reduce_file_separators): helper to reduce
4700        multiple file separators into one
4701        (is_package_directory): structuring style
4702
4703        * src/cmt_pattern.cxx (apply): add debug prints
4704
4705        * src/cmt_parser.h (enum): Add CmtStructuringStyle options
4706
4707        * src/cmt_parser.cxx:
4708         Introducing support for structuring style.
4709         m_current_structuring_style global variable
4710         (scan_path):
4711         (scan_package):
4712         (run):
4713         (PackageCollector::run):
4714         (configure): calling configure_current_structuring_style
4715         (configure_current_package):
4716         (configure_current_structuring_style): new method
4717         (do_broadcast): use Use::get_full_path
4718         (do_config):
4719         (do_create):
4720         (do_help):
4721         (do_lock): suppress unused local variable
4722         (do_remove):
4723         (do_show_macros): add pattern for selection instead of default '*'
4724         (do_show_sets): idem
4725         (do_unlock): suppress unused local variable
4726         (get_current_strategy): new method
4727         (install_cleanup_scripts): install cleanup scripts on windows
4728         (load):
4729         (parse_arguments): re-number argument array
4730         (parse_arguments): support arguments for cmt show macros
4731         (parse_arguments): support arguments for cmt show sets
4732         (parse_arguments): -with_version_directory option
4733         (parse_arguments): -without_version_directory option
4734         (parse_requirements):
4735         (parser): support arguments for cmt show macros
4736         (parser): support arguments for cmt show sets
4737         (print_context): use Use::get_full_path
4738         (print_macros): selection pattern (reg. expression) on symbols
4739         (reach_current_package):
4740         (set_standard_macros): add getting pwd
4741         (set_standard_macros): structuring style
4742
4743        * src/cmt_generator.cxx
4744         (SourceFile::set): use CmtSystem::reduce_file_separators
4745         (prepare_use_context): idem
4746         (prepare_use_context): use Use::get_full_path
4747         (set_full_name): idem
4748         (build_make_setup): idem
4749
4750        * src/cmt_fragment.cxx
4751         (print): use Use::reduce_path factorization
4752         (locate): use Use::get_full_path factorization
4753         (locate): Support structuring style options
4754
4755        * src/cmt_cvs.cxx:
4756          + need cmt.h for accessing structuring style
4757          + support for structuring style
4758
4759        * src/cmt.h (class Cmt):
4760        Adding support for structuring style
4761       
4762        do_show_macros now accepts arguments
4763
4764        do_show_sets now accepts arguments
4765
4766        print_macros now accepts a pattern for selecting symbols
4767
4768        * src/demo/tprivate.cmt: Scenario for testing private uses and
4769        -no_auto_imports
4770
4771        * src/demo/demo1.cmt: Scenario for the general test/demo sequence.
4772       
4773        * src/demo/scenario.awk: Add a script for installing
4774        scenarios. This script can
4775          - create packages
4776          - install text files relatively to the packages.
4777
4778        * mgr/Makefile (demo): Replace the copy operations for the demo
4779        targets by an awk-based mechanism (only for Unix -> keep old
4780        mechanism for Windows). The scenario.awk script is able to create
4781        packages and install text files into the newly created packages.
4782
4783        Add a target (a scenario) for testing private uses and
4784        -no_auto_imports
4785
4786        Add an help target describing all special targets.
4787
4788        * fragments/constituents_header (first): Differentiate setup.make
4789        with the package name when $(bin) is common.
4790
47912002-05-17  unknown  <arnault@lal.in2p3.fr> 85
4792
4793        * doc/todo.html: Adding a web page for ToDo list, and bug reports.
4794
4795        * src/cmt_parser.cxx (install_test_setup_scripts):
4796        * src/cmt_parser.cxx (install_test_cleanup_scripts): Fix the bug
4797        to "source setup" standalone with a current directory outside the
4798        package itself.
4799
48002002-05-15  Christian Arnault  <arnault@asc.lal.in2p3.fr> 84
4801
4802        * src/cmt_version.h (CMTVERSION): Preparing the new tag v1r12p20020515
4803
4804        * doc/CMTDoc.html: Upgrade the documentation.
4805
4806        * src/setup.tcsh:
4807        * src/setup.zsh: Add all_tags to the list of know show options
4808
4809        * src/cmt_tag.cxx (show_definition):
4810        * src/cmt_tag.h (class Tag): Added Tag::show_definition
4811        (unfiltered show method wrt the selected state)
4812
4813        * src/cmt_parser.cxx (do_help): Implement the new cmt show all_tags command.
4814
4815        * src/cmt.h (class Cmt): Added Cmt::do_show_all_tags ()
4816
4817        * src/cmt_parser.h (enum): Added action_show_all_tags
4818
4819        * mgr/requirements: remove -I$(inc) from default value of ccomp
4820        macro (no longer needed and has side effects)
4821
4822        * src/cmt_use.cxx (add): Protect against null use pointer when not found.
4823
4824        * src/cmt_tag.cxx (action): do increase the tag ref list when
4825        overridden. It used to be un-overridden...
4826
4827        * fragments/constituents_trailer (clean): add a semi-colon between the two shell commands.
4828       
4829        * src/cmt_system.cxx (create_symlink): Explicit .c_str() in system calls.
4830
4831        * doc/table.html: setup a direct URL to CVSWeb rather than through
4832        an intermediate page
4833
48342002-04-12  Christian Arnault  <carnault@lxplus030.cern.ch> 84
4835
4836        * doc/CMTDoc.html:
4837        * src/setup.zsh:
4838        * src/setup.tcsh:
4839        * src/cmt_parser.cxx (do_help):
4840        * src/cmt.h (class Cmt):
4841        * src/cmt_parser.h (enum): introduce action_show_all_tags do
4842        display all defined tags (while action_show_tags only shows all
4843        active tags)
4844
4845        * fragments/constituents_trailer (clean): typo in the clean target.
4846
48472002-04-11    <arnault@lal.in2p3.fr> 83
4848
[397]4849        * src\\cmt_parser.cxx (print_clean): Suppress the unset of CMTCONFIG
[3]4850
48512002-04-10    <arnault@lal.in2p3.fr> 82
4852
[397]4853        * fragments\\library:
4854        * fragments\\library_no_share: Suppress the experimental change for
[3]4855        erasing the object files after filling the library
4856
48572002-04-10  Christian Arnault  <carnault@lxplus044.cern.ch> 81
4858
4859        * src/cmt_version.h: preparing tagging for v1r12
4860
4861
4862       
4863        * mgr/requirements: Adapt to Darwin
4864
4865        * src/cmt_symbol.cxx (action):
4866        * src/cmt_use.cxx (action):
4867        * src/cmt_use.h (class Use): Introduce m_has_native_version
4868
4869        * mgr/requirements: Add standard $(library_prefix) and $(library_suffix) macros
4870
4871        * mgr/cmt_make_shlib_common.sh (temp_shlib): Set verbose mode to
4872        the linker command and control it through the QUIET macro. Fix the
4873        temporary expansion directory
4874       
4875        * mgr/cmt_make_shlib_common.sh (temp_shlib):
4876        * fragments/library_header:
4877        * fragments/cleanup_library: Add standard $(library_prefix) and $(library_suffix) macros
4878
4879        * fragments/constituents_trailer (makefilesclean):
4880        * fragments/constituent: remove specific makefile fragments for
4881        the constituents (instead of *.make)
4882
4883        * fragments/library_no_share:
4884        * fragments/library: erase *.o files after filling the library
4885
4886        * src/cmt_use.h (class Use): Add use::sub_use_auto_imports to save
4887        specifications on sub uses. Add Use::set_auto_imports to possibly
4888        promote auto_imports to sub uses when it is changed from Off to
4889        On.
4890
4891        * src/cmt_parser.h (enum):
4892        * src/cmt_pattern.cxx (show_all_applied_patterns):
4893        * src/cmt_pattern.h (class Pattern): adding Pattern::show_all_applied_patterns ()
4894        * src/setup.tcsh:
4895        * src/setup.zsh:
4896        * src/cmt_parser.cxx (do_help):
4897        * src/cmt.h (class Cmt): Adding Cmt::do_show_applied_patterns for
4898        the new command "cmt show applied_patterns"
4899
49002002-04-04  Christian Arnault  <carnault@lxplus044.cern.ch> 80
4901
4902        * src/cmt_use.cxx (add): Protect against duplicated registration of
4903        current_use.
4904
4905        * src/cmt_parser.cxx (install_setup_scripts): Append an empty line
4906        at the end of the generated setup script (problem on some shells)
4907       
4908        * src/cmt_parser.cxx (do_create):
4909        * src/cmt.h (class Cmt): Change the signature of the do_create
4910        function to receive its arguments from the "arguments" list rather
4911        than changing current_package etc...
4912
4913        * src/Makefile.header: Add a systematic config target (for backward compatibility)
4914
4915        * fragments/constituents_trailer (binclean): added the binclean
4916        target to completely remove the binary directory at once.
4917
4918        * fragments/make_header:
4919        * fragments/constituents_header:
4920        * fragments/nmake/make_header (CMTEXTRATAGS):
4921        * fragments/nmake/constituents_header (CMTEXTRATAGS): Remove the settings of CMTCONFIG
4922
49232002-03-22  Christian Arnault  <carnault@lxplus037.cern.ch> 79
4924
4925        * src/cmt_symbol.cxx (suppress_OS_delimiters): operate on %...%
4926        patterns only on Windows machines.
4927
49282002-03-20  Christian Arnault  <carnault@lxplus042.cern.ch> 78
4929
4930        * mgr/Makefile (Atlas): Suppress HP rebuild for Atlas group
4931
4932        * src/cmt_cvs.cxx (filter): Improve the recursive passes and
4933        handle the new qualifiers of the use statements.
4934
4935        * fragments/cleanup_header (clean): Fix bad insertion of the .DEFAULT target
4936
4937        * src/cmt_symbol.cxx (suppress_OS_delimiters): Introduce this new
4938        function to ensure that only $() syntax is used in tag makefiles
4939        (ie suppress ${} and %% syntaxes)
4940        (show_macro): apply this new function for action_build_tag_makefile
4941
4942        * src/cmt_generator.cxx (reset): Do not generate the Visual
4943        directory on non-windows machines
4944
4945        * fragments/group (clean): Suppress one echo on gmake clean
4946
49472002-03-14  Christian Arnault  <carnault@lxplus037.cern.ch> 77
4948
4949        * src/cmt_parser.cxx (set_standard_macros): Cleanup management of m_current_tag
4950
49512002-03-07  Christian Arnault  <carnault@lxplus048.cern.ch> 76
4952
4953        * src/cmt_parser.cxx (print_context): Suppress the automatic
4954        settings of CMTEXTRATAGS
4955
4956        * src/Makefile.header: Do not change CMTCONFIG
4957        * src/NMakefile.header: Do not change CMTCONFIG
4958
49592002-02-27  Christian Arnault  <carnault@lxplus042.cern.ch> 75
4960
4961        * fragments/jar: Adding removal of jar file for clean target
4962
4963        * src/cmt_use.cxx (show_sub_uses): show no_auto_imports status
4964
4965        * src/cmt_parser.cxx (reach_current_package): reapply global
4966        pattern at once until side effects are solved in user projects.
4967
4968        * fragments/jar: Apply an old fix to Unix fragments (was applied
4969        to Windows only)
4970
49712002-02-26  Christian Arnault  <carnault@lxplus016.cern.ch> 74
4972
4973        * src/cmt_use.cxx (move_to): select_alternate must be applied
4974        after reach_package for searches against an absolute path or
4975        against the current directory.
4976
49772002-02-25    <arnault@lal.in2p3.fr> 73
4978
4979        * fragments/cleanup_header (clean): Add default action
4980
4981        * src/Makefile.header (common_target): Remove debug print
4982
[397]4983        * src\\cmt_parser.cxx (parse_requirements): Apply global patterns
[3]4984        right after parsing a requirements file, and only considering the
4985        Use context, one at a time (rather than applying all global
4986        patterns to all Uses at once after reading all requirements file)
4987
[397]4988        * src\\cmt_pattern.cxx (apply_all_globals):
4989        * src\\cmt_pattern.h (class Pattern): Add a method to apply all
[3]4990        global patterns in the context of only one Use object.
4991
49922002-02-24    <arnault@lal.in2p3.fr> 72
4993
[397]4994        * src\\cmt_system.cxx (command_separator): New method for getting
[3]4995        the shell command separator (& or ;)
4996
[397]4997        * src\\cmt_cvs.cxx (class CvsImplementation): Add
[3]4998        CmtSystem::command_separator() between cvs co of each branch
4999        (instead of newlines).
5000
[397]5001        * src\\cmt_system.cxx (has_device): Accepts the \\\\xxx\\ syntax as a
[3]5002        device name in file paths on windows.
5003
[397]5004        * src\\cmt_parser.cxx (configure_cmt_path): Hide show_set action
[3]5005        when recursive definition of CMTCONFIG
5006
[397]5007        * src\\cmt_use.cxx (need_new): Some optimizations
[3]5008       
[397]5009        * src\\cmt_use.cxx (move_to): Exchange the priority of CMTPATH
[3]5010        versus version when selecting the best version.
5011
[397]5012        * src\\cmt_parser.cxx (use_cmt): Hide CMTDEBUG while parsing the
[3]5013        requirements of CMT itself
5014
50152002-02-20  Christian Arnault  <arnault@lal.in2p3.fr> 71
5016
5017        * src/cmt_parser.cxx (do_broadcast): Fix a bug for setting the
5018         style the the Current use. This effect was induced by the new
5019         mechanism for constructing the Current Use object, now a singleton
5020         of the Use class.
5021
50222002-02-07    <arnault@lal.in2p3.fr> 70
5023
[397]5024        * src\\cmt_use.cxx (change_path): Add a m_located flag in Use class
[3]5025        to record the success of the package localization. Test against
5026        this info instead of real_path to allow for package found in
5027        current directory (where real_path stays empty)
5028
[397]5029        * src\\cmt_parser.cxx (configure):
[3]5030
[397]5031        * src\\cmt_use.cxx (show_sub_uses): Ensure that the cmt show uses
[3]5032        displays the correct scoping information for uses and
5033        sub-uses. cmt show uses also displays the full tree even when it
5034        contains private uses.
5035
50362002-02-06    <arnault@lal.in2p3.fr> 69
5037
[397]5038        * src\\cmt_use.cxx (class use_action_iterator): Install UseContext
[3]5039        to manage proper propagation of -no_auto_imports
5040
50412002-01-30    <arnault@lal.in2p3.fr> 68
5042
5043        * src/cmt_parser.cxx (parse_arguments): Fix the bug of private
5044        environment variables which could not be set even within the
5045        package (bug in the management of the -pack= -version= -path=
5046        options).
5047
5048        * src/cmt.h : Install all attributes of the Cmt class as private
5049        attributes, and make them follow the convention : m_xxx. This
5050        implies to install few accessor methods.
5051
50522002-01-29    <arnault@lal.in2p3.fr> 67
5053
5054        * src/cmt_use.cxx (class use_action_iterator): The private uses
5055        are accessed for
5056            - broadcast operations
5057            - show uses operations
5058
5059        * src/cmt_symbol.cxx (action): Expands the specified script name
5060        for the setup_script and cleanup_script statement.
5061          Protect against empty script names.
5062
50632002-01-11  Christian Arnault  <carnault@lxplus035.cern.ch> parallelbuilds
5064
5065        * src/Makefile.header: Reorganize basic Makefile fragment
5066        generation to permit better support for parallel & concurrent
5067        builds.  Mimize also the number of makefile fragments generated
5068        and kept : only $(tag).make remains in ../cmt . All other are
5069        thrown away after use.
5070
5071        Make those changes a branch "parallelbuilds"
5072       
5073
50742002-01-09  Christian Arnault  <carnault@lxplus001.cern.ch> 66
5075
5076        * src/NMakefile.header (tags): Apply the fix for tags onto
5077        NMakefile.header
5078
50792002-01-07    <arnault@lal.in2p3.fr> 65
5080
5081        * src/Makefile.header (tags): Attempt to fix the continuity break
5082        between v1r9 and v1r10, by re-installing the possibility to use
5083        gmake tag=<...> rather than having to use source setup.[c]sh
5084        -tag=<...>
5085
5086        (This fix has to be tested before any validation)
5087
50882001-11-26  Christian Arnault  <carnault@atlas50.cern.ch> 64
5089
5090        * Tagging v1r10p20011126
5091       
5092        * src/Makefile.header: tag is now ${CMTCONFIG} and tags ${CMTEXTRATAGS}
5093
5094        * mgr/requirements: Provide the macro tags as ${CMTEXTRATAGS}
5095
5096        * src/cmt_tag.cxx: Various changes in strategy for tags:
5097          - tag inclusion (defined by the "tag" statement) transmits the priority.
5098          - tag selection can be discarded by exclusion specifications. Exclusion
5099          qualifies a set of contradictory tags. Contradictory tags will be selected
5100          according to their priority or to their declaration order in case of
5101          equal priority.
5102
5103        * src/cmt_parser.h (enum Priority): Change the priority list:
5104        Arguments get highest priority
5105        then CMTCONFIG
5106        then user tags (those defined in requirements)
5107
5108        * fragments/make_setup: produce uses.make and tags.make
5109
5110        * src/cmt_parser.cxx (parse_arguments):
5111        * src/cmt.h (class Cmt): Suppress the mechanism of
5112        primary_tag. CMTCONFIG is enough.
5113
51142001-11-21  Christian Arnault  <carnault@lxplus040.cern.ch> 63
5115
5116        * src/cmt_symbol.cxx (add_value_to_list): fix protection on
5117        value_list.size () to start at 1 (not at 2)
5118
5119        * src/cmt_symbol.cxx (build): Reflective values of Sets should
5120        consider previous setenv settings.
5121
5122        * src/cmt_generator.cxx (build_dependencies): Using ../$(tag) for
5123        output base of the dependencies fragment rather then
5124        Cmt::current_tag
5125
5126        * src/Makefile.header (CMTPRIMARYTAG): tag=... argument of gmake
5127        will override CMTPRIMARYTAG. However internal tag macro is only
5128        replaced with ${CMTCONFIG}
5129
5130        * fragments/make_setup (config): create a tags.log (for cmt show
5131        tags)
5132
5133        * mgr/cmt_make_shlib_common.sh: Add the ${lib} prefix to the
5134        temporary expansion directory. Fix a bug in sed filter for all
5135        module files.
5136
5137        * src/cmt_parser.cxx (configure_tags): Add a protection against
5138        absence of CMTPRIMARYTAG
5139
5140        * src/cmt_system.cxx (create_symlink):
5141        * src/cmt_system.h (class CmtSystem): Adding the create_symlink
5142        function.
5143
5144        * src/cmt_parser.cxx (do_build_library_links): Using direct system
5145        calls to create symlinks.
5146
51472001-11-13  Christian Arnault  <carnault@lxplus010.cern.ch> 62
5148
5149        * Tagging v1r10p20011113
5150
5151        * mgr/requirements:
5152        * src/constituents.make (build_library_links): Define macros for
5153        build_library_links and remove_library_links
5154
5155        * fragments/make_setup (config): Add build_library_links target
5156
5157        * src/cmt_parser.cxx (set_standard_macros): Fix bad production of
5158        use_includes when private is used.
5159
5160        * src/cmt_parser.cxx (do_broadcast): Fix -begin=<pattern> error
5161
51622001-11-08  Christian Arnault  <carnault@lxplus028.cern.ch> 61
5163
5164        * src/cmt_version.h: tagging v1r10
5165
5166        * src/cmt_system.cxx (add_cmt_path): Get cwd alias to each selected path.
5167
5168        * src/cmt.h (class Cmt): Add cmt_path_cwd vector of all CMTPATH
5169        entries normalized to getcwd.
5170
5171        * src/cmt_generator.cxx (java_file_action):
5172        * src/cmt_generator.cxx (proto_file_action):
5173        * src/cmt_generator.cxx (module_file_action): Pass reference to the constituent in order
5174        to transmit constituent variables to the fragment.
5175
5176        * src/cmt_parser.cxx (set_standard_macros): Insert a space
5177        character for all generated macro_append operations.
5178
5179        * src/cmt_fragment.cxx (xxxcopy):
5180        * src/cmt_fragment.h (class Variable): Adding the expansion of
5181        fragments variables using both the ${} syntax AND the $() syntax.
5182
5183        * src/cmt_tag.h :
5184        * src/cmt_tag.cxx (is_selected): Change the Tag::selected attribute to bool.
5185
51862001-11-07  Christian Arnault  <carnault@lxplus006.cern.ch> 60
5187
5188        * src/cmt_symbol.cxx (build): Implement the possibilty to have
5189        reflexive asignment to symbols: when a symbol value is exactly
5190        specified (from set, macro or path statements) using $(<name>) or
5191        ${<name>} or %<name>% then the old value is preserved for all
5192        corresponding selectors.
5193
5194        * src/cmt_parser.cxx (set_standard_macros): Re-activate -import
5195        options (that had been discarded!)
5196
5197        * src/cmt_use.cxx (add): Generate an error when a package is not
5198        found (the error was only generated at "cmt show uses")
5199
5200        * src/cmt_constituent.cxx (show): Display -import options
5201
5202        * fragments/dependencies: Force checking $(bin)
5203
5204        * fragments/constituent: Adding some printout to display when
5205        constituent fragment is rebuilt
5206
5207        * src/cmt_parser.cxx (set_standard_macros): Re-validate
5208        -no_auto_imports option for use and -import options for
5209        constituents.
5210
52112001-11-06  Christian Arnault  <carnault@lxplus038.cern.ch> 59
5212
5213        * src/cmt_generator.cxx (build_document_makefile): protect against
5214        missing files (causing infinite loops in Make)
5215
52162001-11-05  Christian Arnault  <carnault@lxplus005.cern.ch> 58
5217
5218        * mgr/Makefile (application_suffix): Define application_suffix in
5219        the CMT's Makefile
5220
5221        * src/cmt_parser.cxx (print_context): Do not generate ROOT and
5222        CONFIG for cmt_standalone packages.
5223
5224        * mgr/requirements: Reomving the cmt_selector.cxx source file.
5225
5226        * src/constituents.make: Force the dirs target for
5227        build_library_links
5228
5229        * src/cmt_parser.cxx (restore_all_tags): Get the value of
5230        CMTPRIMARYTAG to configure Cmt::primary_tag.
5231
5232        Leave unchanged the primary_tag and the extra_tags except if
5233        overridden through the -tagxxx= options
5234
5235        * src/cmt_parser.h (enum): Add PrioritySite in the list of
5236        possible priorities.
5237
5238        * src/cmt.h (class Cmt): Add the restore_all_tags function. Add
5239        the extra_tags attribute . Change the strategy of tag persistency:
5240
5241          o CMTPRIMARYTAG always contains what had been specified using
5242        the -tag= option,
5243
5244          o CMTEXTRATAGS contains what had been manipulated by -tag_add=
5245        and -tag_remove= options.
5246
5247          o CMTCONFIG is setup independently of the primary tag.
5248
5249        * src/Makefile.header (primary_tag): Propagate tags using
5250        CMTPRIMARYTAG instead of CMTCONFIG (except when CMTPRIMARYtAG is
5251        not yet defined)
5252
5253        * src/cmt_constituent.cxx (parse): Fix the word parsing for
5254        constituent specification...
5255
52562001-11-02  Christian Arnault  <arnault@asc.lal.in2p3.fr> 57
5257
5258        * src/cmt.h
5259        * src/cmt_database.cxx
5260        * src/cmt_database.h
5261        * src/cmt_parser.cxx
5262        * src/cmt_parser.h
5263        * src/cmt_selector.cxx
5264        * src/cmt_selector.h
5265        * src/cmt_symbol.cxx
5266        * src/cmt_symbol.h
5267        * src/cmt_tag.cxx
5268
5269        * src/cmt_tag.h:
5270        Suppressing cmt_selector objects (only tags are needed!!)
5271        Add tag_exclude keyword for building tag-exclusions.
5272
52732001-10-31  Christian Arnault  <carnault@atlas50.cern.ch> 56
5274
5275        * mgr/requirements: Don't need to explicitly declare make_fragment
5276        headers (automatically declared in the -header= option)
5277
5278        * src/cmt_symbol.cxx (print_clean): Cleaning up path variables may
5279        be either unsetenv when the result is empty or setenv if not.
5280       
5281        * fragments/application_launcher: evolution
5282
5283        * src/cmt_parser.cxx (configure_tags): protect against empty
5284        declaration of CMTCONFIG : by default will take uname...
5285
52862001-10-30  Christian Arnault  <carnault@atlas50.cern.ch> 55
5287
5288        * src/cmt_symbol.cxx (clean): Implement the cleanup correctly,
5289        with in particular the cleanup of the path variables.
5290
5291        * src/cmt_parser.cxx (print_context): improve output of cmt show tags
5292
5293        * src/cmt_symbol.h (class Symbol): Add clean_macro_value for
5294        building the result of the clean operations induced by this symbol
5295        (only implemented for path_xxx)
5296
5297        * src/cmt_parser.cxx: New post-context requirements file :
5298        user_context in addition to home package.  Added Use* use
5299        arguments to configure_xxx functions to transfer.
5300
5301        * src/cmt_parser.cxx(configure_cmt_path): Attempt to make use of
5302        CMTPATH definitions from requirements files.
5303
5304        * src/cmt_parser.cxx(configure_config_selector): Install context
5305        information for tag creation
5306
5307        * src/cmt_parser.cxx(configure_home): Attempt to make use of
5308        CMTHOME definitions from requirements files.
5309
5310        * src/cmt_parser.cxx(configure_user_context): Install user_context
5311        management
5312
5313        * src/cmt_parser.cxx(configure_site_selector): Get CMTSITE from
5314        requirements as well
5315
5316        * src/cmt_parser.cxx(configure_tags): Add a configure_tags
5317        finction to retreive tags from all possible sources: CMTCONFIG
5318        (from req) then CMTPRIMARYTAG then CMTCONFIG then CMTBIN then
5319        append all CMTEXTRATAGS.
5320
5321        * src/cmt_parser.cxx(parse_arguments): fix parsing bug for the
5322        -home= argument
5323
5324        * src/cmt_parser.cxx(parser): Set action_show_path to be recursive
5325
5326        * src/cmt_parser.cxx(parser): Call the HOME package just after
5327        using CMT. Call the use_context package just after reaching the
5328        current package.
5329
5330        * src/cmt_parser.cxx(print_clean): reformat the output (with
5331        newlines). Clear CMTPRIMARYTAG CMTEXTRATAGS and CMTCONFIG.
5332
5333        * src/cmt_parser.cxx(print_context): set CMTPRIMARYTAG
5334        CMTEXTRATAGS and CMTCONFIG from the current definitions.
5335
5336        * src/cmt_parser.cxx(set_standard_macros): Rationalize the
5337        production of current_tag
5338
5339        * src/cmt_parser.cxx(use_user_context_requirements):
5340
5341        * src/cmt_use.cxx (show_all): Display new user_context package
5342
5343        * src/cmt_use.cxx (class use_action_iterator): query function ok()
5344        includes both home_package and user_context_package
5345
5346        * src/cmt_use.cxx (reach_package): special treatment for
5347        home_package and user_context_package since they do not follow the
5348        standard location scheme.
5349
5350        * src/cmt_use.cxx (add): Improve the detection of packages not found.
5351
5352        * src/cmt_tag.cxx (unmark): Reset the use pointer
5353
5354        * src/cmt_tag.cxx (action): Install the use origin.
5355
5356        * src/cmt_tag.cxx (add): Install the use origin and the context
5357        information. It will be reset to the new context in case of
5358        re-definition. Suppress various excessive debug printouts.
5359
5360        * src/cmt_tag.cxx (clear): clear use and context new information
5361
5362        * src/cmt_tag.cxx (show): Improve the display of tags with
5363        hierarchical display of subtags and context information.
5364
5365        * src/cmt_tag.h (class Tag): Added Use* use parameter to action
5366        and add methods. Store a pointer to the package (Use*) who
5367        originated the definition, and a context string to qualify the
5368        definition.
5369
5370        * src/cmt_system.h (class CmtSystem):
5371        * src/cmt_system.cxx (add_cmt_paths_from_text): Factor out the
5372        code to register a set of CMTPATH entries, with the context
5373        information.
5374       
5375        * src/cmt_system.cxx (is_home_package): Add is_home_package and
5376        is_user_context_package query functions.
5377
5378        * src/cmt_system.cxx (get_cmt_site): Default site is empty
5379        (instead of LAL)
5380
5381        * src/cmt_symbol.cxx (print_clean): Suppress some obsolete
5382        print_tabs () formattings. Apply unset instead of unset for
5383        aliases as well.
5384       
5385        * src/cmt_symbol.cxx (action): Add special treatment for CMTXXX
5386        environment variables : the new setting has to be taken into
5387        account as soon as it is parsed.
5388
5389        * src/cmt_selector.cxx (create): remove some debug code.
5390
5391        * src/cmt_generator.cxx (build_default_makefile): Produce only
5392        Makefile on Unix and only NMake on Windows.
5393
5394        * mgr/requirements: Renaming new script_launcher fragments into
5395        application_launcher
5396
5397        * src/cmt.h (class Cmt): Added Use* use arguments to configure_xxx
5398        functions to transfer.
5399       
5400        Added use_user_context_requirements () to include post-context
5401        requirements file.
5402
5403        Added the static value primary_tag to store the primary tag.
5404       
5405
5406        * src/cmt_generator.cxx (build_default_makefile): Create Makefile
5407        only un Unix and NMake only on WIN32
5408
54092001-10-24  Christian Arnault  <carnault@lxplus038.cern.ch> 55
5410
5411        * src/cmt_parser.cxx (parser): add the recursive property to
5412        action_show_path.
5413
5414        * src/cmt_system.h (class CmtSystem):
5415        * src/cmt_system.cxx (get_user_context_package):
5416        * src/cmt_system.cxx (is_user_context_package):
5417        * src/cmt_use.cxx (add):
5418        (show_all):
5419        (class use_action_iterator):
5420        (reach_package):
5421        (add):
5422        * src/cmt_parser.cxx (configure):
5423        * src/cmt_parser.cxx (parser):
5424        * src/cmt_parser.cxx (parse_arguments):
5425        * src/cmt_parser.cxx (configure_user_context):
5426        * src/cmt.h (class Cmt):
5427
5428        Adding user_context equivalent of CMTHOME support for post
5429        requirements file. The corresponding env. var. is CMTUSERCONTEXT.
5430        The complete scheme for supporting PRE-parsed HOME requirements
5431        file is exactly copied to those POST-parsed files.
5432
5433        * mgr/requirements:
5434        * fragments/script_launcher_header:
5435        * fragments/script_launcher:         
5436        * fragments/script_launcher_trailer: Introduce a new document
5437        generator for launching scripts. The same convention as the
5438        check_application is reused, for pre-action, argument passing and
5439        post-action. Several scripts (specified in the source list of the
5440        document) can be executed in sequence.
5441
5442        * src/cmt_use.cxx (class use_action_iterator):
5443        * src/cmt_system.cxx (is_home_package):
5444        * src/cmt_system.h (class CmtSystem): Add the is_home_package
5445        function to encapsulate the syntax of a HOME package (and apply it
5446        in Use::use_action_iterator)
5447
5448        * src/cmt_symbol.cxx (action): Prepare specific actions when the
5449        parsed symbol is one of the CMTXXX standard symbols. So far
5450           CMTHOME -> re-configure home.
5451
5452        * src/cmt_parser.cxx (parser): apply use_home_requirements right
5453        after reading CMT requirements file (ie. before reading current
5454        package)
5455
5456        * src/cmt_parser.cxx (configure_home): understand the possible
5457        "set CMTHOME" declarations (but keep $CMTHOME)
5458
5459        * src/cmt_parser.cxx (reach_current_package): * src/cmt_system.cxx
5460        (get_cmt_paths): Restore the automatic addition of "current
5461        package" in the CMTPATH list.
5462
5463        * src/cmt_parser.cxx (parse_arguments): bad parsing of the
5464        -home=xxx argument
5465
5466       
5467
54682001-10-23  Christian Arnault  <carnault@lxplus007.cern.ch> 54
5469
5470        * mgr/Makefile (demo): Need to add CMTPATH towards ${CMTROOT}/demo
5471        since CMTPATH to current package is no longer supported !!!
5472
5473        * fragments/nmake/check_application (check):
5474        * fragments/nmake/cleanup_application:
5475        * fragments/nmake/application_header:
5476        * fragments/nmake/application:
5477        * fragments/application:
5478        * fragments/application_header:
5479        * fragments/cleanup_application:
5480        * fragments/check_application (check):
5481        * mgr/requirements: Create a new standard macro
5482        "application_suffix" for making possible to change the .exe
5483        default suffix of applications
5484
54852001-10-22  Christian Arnault  <carnault@lxplus026.cern.ch> 53
5486
5487        * src/cmt_parser.cxx :
5488        * src/cmt_system.cxx : Suppress the automatic addition of current
5489        package's path into CMTPATH.
5490
5491        * mgr/Makefile: Change the method to rebuild
5492        cmt_dependencies by copying what is obtained from CVS. Rebuild it
5493        manually when needed.
5494
54952001-10-19  Christian Arnault  <carnault@lxplus025.cern.ch> 52
5496
5497        * fragments/make_setup (config): Creating uses.log needs to use an
5498        intermediate temporary file
5499
[397]5500        * src\\setup.[c]sh : Avoid re-definition of CMTCONFIG
[3]5501
[397]5502        * src\\cmt_use.cxx (add): temporarily discard the mecanism by which
[3]5503        uses.log files are read before the requirements files.
5504
[397]5505        * src\\cmt_system.cxx (is_version_directory): returns -1 for fields
[3]5506        that were wildcarded
5507
[397]5508        * src\\cmt_use.cxx (add):
5509        * src\\cmt_use.cxx (need_new):         
5510        * src\\cmt_use.cxx (BestFitSelector::operate): Start the
[3]5511        implementation of priority control between explicit use
5512        specification over wildcarded ..
5513
[397]5514        * src\\cmt_parser.cxx (reach_current_package): Change the value of
[3]5515        the CMTPATH for the current package once it has been reached (but
5516        before reading its requirements file)
5517       
[397]5518        * src\\cmt_parser.cxx (install_setup_scripts): (improvement) Add the transfer of
[3]5519        arguments towards cmt.exe into setup.bat
5520
[397]5521        * src\\cmt_system.cxx (get_cmt_paths): (bug fix) path_sources was
[3]5522        not cleared as paths.
5523        Prepend "current path" to the path list under "current package".
5524
[397]5525        * src\\cmt_parser.cxx (parse_arguments): (bug fix) Suppress
[3]5526        enclosing quotes around cmt.exe arguments so that setup.bat can
5527        transmit arguments properly
5528
5529        call setup.bat "-tag_add=a,b,c"
5530
55312001-10-18  Christian Arnault  <carnault@lxplus047.cern.ch> 51
5532
5533        * src/cmt_parser.cxx (set_standard_macros): Set current_tag to
5534        CMTBIN when in CMT itself (not complete yet)
5535       
5536        * src/cmt_generator.cxx (build_dependencies): Use CMTBIN for CMT
5537        itself (instead of current_tag) well this should be cured later on
5538        to ensure that current_tag is always set to CMTBIN for CMT itself
5539
5540        * src/cmt_version.h (CMTVERSION): install v1r10 (not tagged yet)
5541
5542        * mgr/cmt_system.sh: Do not try to use AFS on Darwin and LynxOS.
5543
5544        * src/setup.[c]sh: Define CMTBIN as `uname` on Unix and CMTCONFIG
5545        as `cmt_system.sh`
5546
5547        * src/cmt_symbol.cxx (show_macro): the trailing space must be
5548        added only for WIN32 !!
5549
55502001-10-17  Christian Arnault  <carnault@lxplus047.cern.ch> 50
5551
5552        * src/cmt_symbol.cxx (show_macro): add a trailing space on all
5553        macro definitions (to avoid problem of trailing backslash)
5554       
5555        * src/cmt_parser.cxx (set_standard_macro): remove the insertion of
5556        trailing spaces after the last backslash for WIN32/NMake
5557
5558        * src/constituents.make (all): (bug fix) re-install the
5559        build_library_links action for the all target
5560
55612001-10-11  Christian Arnault  <carnault@lxplus021.cern.ch> 49
5562
5563        * src/cmt_version.h: Tagging for v1r9p20011011
5564       
5565        * fragments/library: (bug fix) transmit both -tag=<tag> and
5566        -tag_add=<tag_list> to cmt_make_shlib_common.sh
5567
55682001-10-11  Christian Arnault  <arnault@asc.lal.in2p3.fr> 48
5569
5570        * src/cmt_parser.cxx: remove debug print options
5571
55722001-10-10  Christian Arnault  <arnault@asc.lal.in2p3.fr> 47
5573
5574        * src/cmt_parser.cxx (parse_arguments): fix problems in multiple
5575        tag management.
5576
5577        converge in the question of HOME requirements file to support
5578          - no default
5579          - define the path to the HOME requirements file in ${CMTHOME}
5580
5581        converge in the arguments for manipulating the extra tags
5582          -tag=<tag>
5583          -tag_add=<tag-list>
5584          -tag_remove=<tag-list>
5585
55862001-10-03  Christian Arnault  <carnault@lxplus036.cern.ch> 46
5587
5588        * src/constituents.make (makefilesclean): Make all action lists
[397]5589        run in one single shell (ie. use ;\\ everywhere)
[3]5590
5591        Make an explicit target for build_library_links
5592        Make it called before any group
5593
55942001-10-02  Christian Arnault  <carnault@lxplus007.cern.ch> 45
5595
5596        * src/cmt_awk.h (class Awk): add a state variable
5597        (m_continuation_allowed) which when true, take into account the
5598        trailing backslashes, so as to first accumulate continued lines
5599        into one. Add the allow_continuation method to base Awk class.
5600
56012001-10-01  Christian Arnault  <carnault@lxplus034.cern.ch> 44
5602
5603        * src/cmt_cvs.cxx (class CvsImplementation): Bug in
5604        checkout_from_requirements. Did not accept leading spaces on use
5605        statements.
5606
56072001-09-27  Christian Arnault  <carnault@lxplus036.cern.ch> 43
5608
5609        * src/cmt_version.h: Tagging for v1r9p20010927
5610
5611        * src/setup.zsh: add the -begin option to the auto-expansion.
5612
5613        * src/cmt_use.cxx (show_all): Visualize the HOME package when
5614        applicable.
5615
5616        * src/cmt_system.cxx (get_home_package): (also do some formatting
5617        cleanup)
5618       
5619        * src/cmt_system.h (class CmtSystem): Adding get_home_package
5620        function to build the name given to the HOME package (provides the
5621        HOME requirements file)
5622
56232001-09-26  Christian Arnault  <arnault@asc.lal.in2p3.fr> 42
5624
5625        * src/cmt_parser.cxx (do_show_macro): Improving error detection on
5626        cmt show macro/set
5627
5628        * doc/CMTDoc.html: Improve the doc.
5629
5630        * src/cmt_parser.cxx (print): produce the CMTEXTRATAGS environment
5631        variable, at setup time.
5632                             (parse_arguments): take into account this new
5633        env.var. to retreive previous extra tags.
5634
5635        * src/Makefile.header: Add the CMTEXTRATAGS environment variable
5636        to propagate additional tags to Make.
5637       
5638        * fragments/make_setup:
5639        * fragments/constituent:
5640        * src/Makefile.header:
5641        * src/constituents.make: Adding  -tag=$(tags) to all calls to cmtexe
5642
5643        * src/cmt_system.h (class CmtSystem): Adding the bool testenv
5644        (name) function to test if an environment variable is defined or
5645        not.
5646
5647        * src/cmt_parser.cxx (use_home_requirements):
5648        * src/cmt.h (class Cmt): Adding support of CMTHOME environment
5649        variable for specifying home requirements file. Default value will
5650        be ${HOME}. And can be overridden through the -home=<directory>
5651        global option. An explicit empty value (or set to eg. NONE) will
5652        discard the feature
5653
5654        * src/cmt_parser.cxx (parse_arguments): Implement the tag list
5655        (comma separated list of extra tags) option -tag=<tag-list> to
5656        specify a list of tags to validate.
5657
56582001-09-25  Christian Arnault  <carnault@lxplus034.cern.ch> 41
5659
5660        * src/setup.csh: fixed PATH settings (may accept a path with space
5661        characters eg. for Darwin)
5662       
5663        * mgr/cmt_system.sh: Insert the knowledge of Darwin OS (Mac OS
5664        X). The default CMTCONFIG will be Darwin.
5665
5666        * src/constituents.make (makefilesclean): Ensure that removal of
5667        makefile fragments is performed AFTER all cleanup uperations.
5668
5669        * src/cmt_parser.cxx (use_home_requirements): Add the systematic
5670        search for a requirements file located in ${HOME}. This
5671        requirements file when found, is systematically parsed AFTER the
5672        requirements file of the current package has been parsed (so as to
5673        give the highest precedence to its statements)
5674       
5675        (do_remove_library_links): Upgrade "remove library_links" to make
5676        it compliant to the algorithm used in "build library_links"
5677
56782001-09-24  Christian Arnault  <carnault@lxplus014.cern.ch> 40
5679
5680        * src/cmt.h (class Cmt): * src/cmt_parser.cxx (configure): Add a
5681        global configure_error variable to store the possible error
5682        produced during the configuration.
5683        (install_test_setup_scripts): Add the -quiet option to the build
5684        temporary_name command used in setup script generation.
5685
5686        * src/cmt_error.cxx (get_last_error):
5687        * src/cmt_error.h (class CmtError): Add get_last_error to retrieve
5688        the formatted text of the last error.
5689
5690        * src/cmt_symbol.cxx (create):
5691                             (all_print):
5692                             (print):
5693                             (build):
5694        * src/cmt_parser.cxx (select): Understand the "path" statement as
5695        a complete re-definition of a path-like variable.
5696
5697        * src/cmt_system.cxx (add_cmt_path):
5698        * src/cmt_error.cxx (class Error):
5699        * src/cmt_error.h (class CmtError): Adding "path not found" error
5700        code, for CMTPATH checking.
5701
5702        * src/cmt_pattern.cxx ((const cmt_string& name): Return a warning
5703        for pattern not found.
5704
5705        * src/cmt_error.h (class CmtError):
5706        * src/cmt_error.cxx (class Error): Adding "pattern not found" error
5707        code, for showing diagnostics in "cmt show pattern"
5708
5709        * src/cmt_parser.cxx (do_show_macro): Return a warning for symbol
5710        not found.
5711
5712        * src/cmt_error.h (class CmtError):
5713        * src/cmt_error.cxx (class Error): Adding "symbol not found" error
5714        code, for showing diagnostics in "cmt show macro/set"
5715
57162001-09-19  Christian Arnault  <carnault@lxplus045.cern.ch> 39
5717
5718        * mgr/cmt_make_shlib_common.sh : return a status value which
5719        reflects the success or failure of the shared library build
5720        command.
5721
5722        * src/cmt_cvs.cxx (class CvsImplementation): Discard the versions
5723        specified with wild cards in the recursive checkout.
5724
5725        * src/cmt_triggers.cxx: Protect the error messages in the trigger
5726        facility by Cmt::quiet.
5727
5728        * src/cmt_constituent.cxx (class constituents_action_iterator):
5729        temporarily discard the -triggers option.
5730
57312001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38
5732
5733        Tagging v1r9p2001p0824
5734
57352001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38
5736
5737        * mgr/cmt_system.sh: Improve the reliability of the cmt_system.sh
5738        script against variants of "fs sysname"
5739
57402001-08-23  Christian Arnault  <carnault@lxplus030.cern.ch> 37
5741
5742        * src/cmt_cvs.cxx (class CvsImplementation): Since the tag filter
5743        is back to cmtcvs.cxx, the temporary forced tag filter in CMT is
5744        removed.
5745
5746        * src/setup.zsh: upgrade the completion for the broadcast command.
5747
5748        * src/cmt_parser.cxx (do_broadcast): Make the -select independent
5749        of the -local or -global options. This is achieved by adding a
5750        "path_selections" list only managed by the -depth, -local -global
5751        modifiers while the "selections" list is managed by the -select
5752        modifier. The -exclude is left unchanged.
5753
57542001-08-22  Christian Arnault  <carnault@lxplus024.cern.ch> 36
5755
5756        * src/cmt_cvs.cxx (class CvsImplementation): Add the possibility
5757        to transmit a flag to the CVS pluggin, by inserting a /cmtcvstest
5758        in the module name to import. This will have to be decoded by the
5759        CVS pluggin itself !!
5760
57612001-08-21  Christian Arnault  <carnault@lxplus013.cern.ch> 35
5762
5763        * src/setup.tcsh: Improving the tcsh completion mechanism (for cmt co).
5764
5765        * src/setup.zsh: Improving the zsh completion mechanism (for cmt co).
5766
5767        * src/cmt_cvs.cxx (class CvsImplementation): Converging on HEAD
5768        management strategy...
5769
5770        Starting implementation of the Atlas filter for CVS tags right
5771        into cmt_cvs.cxx rather than inside the CVS pluggin...
5772
57732001-08-20  Christian Arnault  <carnault@lxplus028.cern.ch> 34
5774
5775        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
5776        recursive checkout process
5777
57782001-08-20    <arnault@lal.in2p3.fr> 33
5779
[397]5780        * src\\cmt_cvs.cxx (class CvsImplementation): Reorganizing some CVS operations:<ul>
[3]5781          <li> Apply the CMTCVSOFFSET env. variable to all actions (tags, branches, subpackages)
5782          <li> cleanup checkout algorithms (remove some obsolete variables)
5783          <li> add the -requirements <requirements-file-path> option to checkout according to
5784            a set of use statements.
5785          <li> remove the inheritance to Awk of CvsImplementation to split the filter into 2
5786            phases (implemented as 2 separated Awk derived classes) RecursivePass1 and
5787            RecursivePass2.</ul>
5788
57892001-08-16  Christian Arnault  <carnault@lxplus046.cern.ch> 32
5790
5791        * src/cmt_symbol.cxx (print): Bug in path_remove when the
5792        specified path variable only contained one item : the remove
5793        operation was not applied.
5794
57952001-07-20  Christian Arnault  <arnault@lal.in2p3.fr> 31
5796
5797        * src/cmt_version.h: setting the patch v1r9p20010720
5798
57992001-07-20  Christian Arnault  <carnault@lxplus019.cern.ch> 30
5800
5801        * src/cmt_regexp.h (cmt_regexp::begin): Add an optional pos
5802        argument to the begin method.
5803
5804        * doc/CMTDoc.html: Improvements, English cleanup...
5805
58062001-07-18  Christian Arnault  <carnault@lxplus041.cern.ch> 29
5807
5808        * src/cmt_cvs.cxx (CvsImplementation::checkout_package): Change
5809        the mechanism to get top files, since the " -d . " does not work
5810        anymore when CVSROOT is set to kserver!!!!
5811
58122001-07-16  Christian Arnault  <carnault@lxplus030.cern.ch> 28
5813
5814        * doc/CMTDoc.html: Old PREFIX fragment variable has been replaced
5815        by FILEPATH long ago. This was not upgraded in the doc.
5816
5817        * fragments/constituent: The -f <file> MUST be specified BEFORE
5818        other Make flags!!
5819
5820        * fragments/dependencies: Tried to comment out the dependencies to
5821        cmt_path.make etc... but it confused the dependencies fragment
5822        production. Uncomment it but need to understand the side effect.
5823
58242001-07-09  Christian Arnault  <carnault@lxplus012.cern.ch> 27
5825
5826        * src/cmt_generator.cxx (build_readme): Bug: the VERSION variable
5827        was not used for installing the readme_trailer (although the
5828        documentation was mentioning it)
5829
58302001-07-04  Christian Arnault  <carnault@lxplus034.cern.ch> 26
5831
5832        * src/cmt_version.h: setting the patch v1r9p20010704
5833
58342001-07-02  Christian Arnault  <carnault@lxplus034.cern.ch> 25
5835
5836        * fragments/dependencies: Cleaning some old debug printouts.
5837
5838        * src/cmt_cvs.cxx (class CvsImplementation): Bug in replacing the
5839        wild card expression. v5r* has to be replaced by v5r0 while v5*
5840        has to be replaced by v5 in case no matching tag exists in the CVS
5841        repository.  Other bug : All split operations should be performed
[397]5842        against " \\t" (include tab character)
[3]5843
58442001-06-29  Christian Arnault  <carnault@lxplus047.cern.ch> 24
5845
5846        * src/cmt_cvs.cxx (class CvsImplementation): Final Validation of
5847        the change in the implementation of the m_installed stack used to
5848        avoid recursion due to dependency cycles.
5849
58502001-06-22  Christian Arnault  <carnault@lxplus020.cern.ch> 23
5851
5852        * src/cmt_cvs.cxx (class CvsImplementation): doing some
5853        optimizations for the big checkout operations.
5854
5855        * src/cmt_parser.cxx (do_config): Remove .[n]make files also from
5856        the binary directory.
5857
5858        * src/cmt_cvs.cxx (class CvsImplementation): Always fetch the cmt
5859        branch at HEAD even if the checkout operation is applied to a
5860        required tag (temporary feature).
5861
58622001-06-18    <arnault@lal.in2p3.fr> 22
5863
[397]5864        * src\\cmt_cvs.cxx (class CvsImplementation): insert a space
[3]5865        between top tags and other tags.
5866
[397]5867        * mgr\\cmt_make_shlib.bat: Write extra options received through
[3]5868        arguments into a temporary option file, used by @<optionfile> to
5869        resolve line-too-long prolems.
5870
[397]5871        * fragments\\nmake\\cpp_library:
5872        * fragments\\nmake\\cpp:
[3]5873        Add the /Tp qualifier for allowing non-standard file suffixes.
5874
58752001-06-05  Christian Arnault  <arnault@lal.in2p3.fr> 22
5876
5877        * src/cmt_use.cxx (class use_action_iterator): Default to the
5878        -no_auto_import was to keep the most recent specification. Change
5879        this to always request auto_import by default, (unless otherwise
5880        specified)
5881
58822001-06-01  Christian Arnault  <arnault@lal.in2p3.fr> 22
5883
5884        * src/cmt_parser.cxx (do_broadcast): Bug fix in do_broadcast: the
5885        -begin option wrongly implied the -global option.
5886
58872001-06-13    <arnault@lal.in2p3.fr> 22
5888
5889        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
5890        strategy for getting version tags from the repository:
5891          o If a request specifies a tag which is not applied to the
5892            requirements file, the specified tag is used to create the
5893            version directory but the HEAD is used in the repository.
5894          o CvsImplementation::show_cvs_infos () :
5895            stores all received infos into xxx_info corresponding
5896            local properties. Thus this method is only called once per
5897            package.
5898          o Error messages are really obtained from the error_info field.
5899
59002001-05-30  Christian Arnault  <arnault@lal.in2p3.fr> 22
5901
5902        * src/cmt_generator.cxx (build_document_makefile):
5903        * src/cmt_system.cxx (get_dot_suffix): fix bug for file_names
5904        without any suffix
5905
5906        * src/cmt.h & src/cmt_parser.cxx (set_standard_macros): Add a
5907        state standard_macros_done to protect against multiple calls to
5908        set_standard_macros.
5909
59102001-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 22
5911
5912        * src/cmt_cvs.cxx (class CvsImplementation): display the tags in a
5913        one-per-line basis instead of space separated when doing cmt
5914        cvstags.
5915
5916        * src/cmt_use.cxx (operate): Make the version selector operator a
5917        little bit more quiet...
5918
59192001-05-25  Christian Arnault  <arnault@lal.in2p3.fr> 22
5920
5921        * mgr/Makefile (demo): improve the gmake check action in the demo
5922        target.
5923
5924        * src/cmt_use.cxx (fill_macro_all): build use_xxx standard macros
5925        using macro_append instead of macro.
5926
59272001-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 22
5928
5929        * src/cmt_parser.cxx (do_broadcast): Fix the default (-local)
5930        option to act as -depth=1.
5931        Improve some error messages.
5932
59332001-05-21    <arnault@lal.in2p3.fr> 21
5934
[397]5935        * src\\setup.bat: Improved skeleton for setup.bat. Base it on
[3]5936        CMTBIN rather than on CMTCONFIG. Do not override CMTCONFIG if
5937        defined by the user. Do not care about PATH for Visual tools.
5938
[397]5939        * mgr\\install.mak: change the strategy for building the setup.bat
5940        script for CMT itself at INSTALL time. Now copy ..\\src\\setup.bat
[3]5941        skeleton.
5942
[397]5943        * mgr\\requirements: Fix WIN32/VisualC tag definitions and PATH
[3]5944        settings for cleaner handling of default tag overriding.
5945
[397]5946        * src\\cmt_use.cxx (operate): Implement the algorithm for using
[3]5947        aliases to alternate version specification in uses.
5948
5949-------------------------------------------------------------------------------------
59502001-05-18  Christian Arnault  <arnault@lal.in2p3.fr> 21
5951
5952        -> Tag CMTv1r9p20010521
5953
5954        * src/cmt_use.cxx (show_sub_uses): Start the implementation of
5955        version_alias and path_alias for equivalencing two version naming
5956        policies.
5957
5958        * src/cmt_cvs.cxx (class CvsImplementation): Adding the -o offset
5959        option to cmt checkout for specifying a global offset to the base
5960        CVS repository. This offset will be prepended to all modules
5961        during the various CVS operations.
5962
5963        the m_offset attribute is added to the CvsImplementation class.
5964
5965        (class CvsImplementation): Improve protection against CVS modules
5966        not found.
5967       
5968        (class CvsImplementation): Added the --help option the cmt checkout.
5969
59702001-07-10  Christian Arnault  <carnault@lxplus017.cern.ch> b-21
5971
5972        * mgr/requirements: add the -tag=$(tag) option to the
5973        build_dependencies macro.
5974
5975        * fragments/dependencies: take the improvements into account.
5976
5977        * src/cmt_generator.cxx (build_dependencies): Improve the
5978        dependency builder: re-generate all entries of the
5979        <constituent>_dependencies.make that are missing from the complete
5980        source list (thus regenerate it when it is empty).
5981        Optimize the file scan for getting the new source list.
5982
5983        * src/cmt_parser.cxx (do_build_dependencies): Dynamically shifts
5984        arguments of the build dependencies command to keep only the
5985        new-source-list. The complete command being
5986        "cmt <args> build dependencies <constituent-name> <new-source-list>"
5987       
5988        (do_config): drop all makefile fragments from the mgr/cmt
5989        directory AND from the binary directory.
5990
59912001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 20
5992
5993        * Moving to v1r8
5994       
5995       
59962001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 19
5997
5998        * src/cmt_deps_builder.cxx (): Augmented local internal
5999        line buffer (from 1024 to 16384).
6000
6001        * doc/CMTDoc.html: document the new &lt;package>_root macro
6002
6003        * src/cmt_parser.cxx (set_standard_macros) (get_best_form): Define
6004        a new set of standard macros using the pattern <package>_root
6005        similar to <PACKAGE>ROOT except that this new definition uses the
6006        get_best_form, with a relative path to the package. The
6007        <PACKAGE>ROOT macro is restored to the previous convention, that
6008        it uses the absolute path.
6009       
6010        * src/cmt_use.cxx (fill_includes_macro): Adapt the
6011        fill_includes_macro to use the new <package>_root standard macro
6012
6013
60142001-05-10  Christian Arnault  <arnault@lal.in2p3.fr> 18
6015
6016        * src/cmt_parser.cxx (do_broadcast): Add the -begin=<pattern>
6017        option to start the broadcast loop from a given package. This
6018        option can be combined with other options such as -select or
6019        -exclude.
6020
6021        * src/cmt_generator.cxx (filter_paths): Suppress two unused
6022        variables.
6023
6024        * src/cmt_use.cxx (add): Bug fixing: during the discovery of
6025        versions requested for a given package, the discarded versions
6026        were not correctly replaced by the finally selected version,
6027        especially in the Use::get_paths method. The
6028        Use::get_selected_version has been added to obtain the effective
6029        replacement for a discarded version.
6030
6031        * fragments/check_application: suppress the ". setup.sh" before
6032        application run.
6033
60342001-05-04  Christian Arnault  <carnault@lxplus023.cern.ch> 17
6035
6036        * src/cmt_parser.cxx (set_standard_macros): The production of all
6037        use_xxx standard macros now is based on a "macro_append" keyword
6038        instead of "macro", since "macro" resets all previous
6039        definitions. Therefore if the user's requirements did augment
6040        those use_xxx macros, these specifications would be ignored.
6041       
6042        (do_broadcast): Set the -local option to broadcast the
6043        default. Add the -global option to revert to the old default (with
6044        no selection and to any depth)
6045
60462001-05-03  Christian Arnault  <carnault@lxplus019.cern.ch> 17
6047
6048        * src/cmt_symbol.cxx (add_value_to_list): A new macro or set
6049        keyword resets (discards) all previous definitions for the
6050        corresponding symbol.
6051
6052        * src/cmt_symbol.h (class SymbolValueList): Added an attribute
6053        discarded for symbol resetting.
6054
6055        * src/cmt_parser.cxx (print_macros): Exclude scripts from macros
6056        defined in the $(tag).make file.
6057
60582001-04-27  Christian Arnault  <carnault@lxplus022.cern.ch> 16
6059
6060        * src/cmt_parser.cxx (get_best_form): Validate the compression
6061        algorithm for paths to packages (only for the macro <PACKAGE>ROOT
6062        - this is still not true for the <PACKAGE>ROOT environment
6063        variable) into a relative form when it is shorter than the
6064        absolute form.
6065
6066        * src/cmt_system.cxx (compress_path): Fix the algorithm for
6067        compressing the patterns "aaaa/xxxx/../bbbb" into aaaa/bbbb.
6068
6069        * src/cmt_generator.cxx (filter_paths): use
6070        CmtSystem::compress_path instead of duplicating its algorithm for
6071        erasing "/aaa/.." patterns
6072
60732001-04-25  Christian Arnault  <carnault@lxplus022.cern.ch> 15
6074
6075        * src/cmt_parser.cxx (set_standard_macros): Prepare the production
6076        of <PACKAGE>ROOT macros as relative paths rather than absolute
6077        ones, when the relative expression is shorter than the absolute
6078        one. Temporarily, trigger that feature by setting the
6079        CMTTESTPREFIX environment variable until absence of side effects
6080        is confirmed.
6081
60822001-04-18  Christian Arnault  <carnault@atlas009.cern.ch> 15
6083
6084        * src/cmt_generator.cxx (build_readme): bug when generating the
6085        readme_trailer fragment : the PACKAGE variable should be reset to
6086        current.
6087
60882001-04-11  Christian Arnault  <arnault@lal.in2p3.fr> 15
6089
6090        * src/cmt_generator.h (class Generator):
6091        * src/cmt_parser.cxx (do_build_readme):
6092        * src/cmt.h (class Cmt): do_build_readme now propagates argument list
6093
6094        * fragments/readme_trailer:
6095        * src/cmt_generator.cxx (build_readme): Added DATE and USER information when building the README.html file. readme_trailer fragment updated accordingly.
6096       
6097        (build_readme): Add the -url=<url> argument to the cmt build
6098        readme command. The specified URL will be used in place of the
6099        package path when generating the URL for used packages.
6100
61012001-04-18  Christian Arnault  <arnault@lal.in2p3.fr> 14
6102
6103        * src/cmt_symbol.cxx (build): In all builder objects, symbol value
6104        lists registered by discarded Uses are now ignored.
6105
6106        * src/cmt_symbol.h (class SymbolValue): cleanup a comment.
6107
6108        * src/cmt_symbol.cxx (print): protect setup script execution
6109        against missing files.
6110
61112001-04-10  Christian Arnault  <arnault@lal.in2p3.fr> 13
6112
6113        * src/cmt_generator.cxx (build_readme):
6114        * fragments/readme_use: building readme.html requires to know the
6115        mgr/cmt style of each used package. This fragment now requires a
6116        fourth variable MGRSTYLE which reflects the use->mgr_style
6117        attribute. Generator::build_readme fills in this new variable.
6118
61192001-04-06  Christian Arnault  <arnault@lal.in2p3.fr> 12
6120
6121        * src/cmt_parser.cxx
6122        (reach_current_package): Use CmtSystem::getenv instead of base getenv
6123       
6124        * src/cmt_symbol.cxx (action): Now really private stuff is
6125        selected when access is at UserMode and scope is Private.
6126
6127        * src/cmt_use.cxx (add): This method does not need to maintain
6128        current scope and access mode any longer.
6129
6130        * src/cmt_parser.cxx (parse_requirements): Cmt::parse_requirements
6131        now manages the AccessMode and Scope when recursing into
6132        requirements files of used packages.
6133
6134        Cmt::scope          handles the sticky state provided by private/public statements
6135        Cmt::current_access handles the access mode that reflects the situation of the user
6136
6137        * src/cmt_parser.h (enum): introduce the AccessMode to distinguish
6138        between DeveloperMode (when pwd is in the current package
6139        directory) and UserMode (otherwise).
6140
6141        * src/cmt.h (class Cmt): Cmt::current_mode is now current_access
6142        and is of type AccessMode
6143
6144        * src/cmt_parser.cxx (reach_current_package): Use
6145        CmtSystem::getenv instead of base getenv
6146
6147        * src/cmt_use.cxx (Use::get_paths):
6148        * src/cmt_pattern.cxx (Pattern::apply ()) : bug in computing the
6149        path between two Uses. The result now includes the current Use.
6150
61512001-04-05    <arnault@lal.in2p3.fr> 12
6152
[397]6153        * src\\cmt_tag.cxx (Tag::add(const cmt_string& name, int priority):
[3]6154        clear a newly created Tag object (to deal with the reuse of old
6155        objects)
6156
[397]6157        * src\\cmt_pattern.cxx (Pattern::add) : clear a newly created
[3]6158        pattern object (to deal with the reuse of old objects)
6159
[397]6160        * src\\cmt_use.h (class Use): Add Use::author_action and
[3]6161        Use::manager_action to fill in the author and manager information.
6162
[397]6163        * src\\cmt_parser.cxx (select): fill in author and manager values
[3]6164        with the complete line. When several author and manager statements
6165        are provided, fill in as several lines (separated with a new-line).
6166
[397]6167        * src\\cmt_generator.cxx (analyze_file (const Constituent&
[3]6168        constituent, const cmt_string& file) : production of objects for
6169        libraries and applications is strictly identical.
6170
61712001-04-03  Christian Arnault  <arnault@lal.in2p3.fr> 11
6172
6173        * src/cmt_constituent.cxx (clear): constituent.parameters was not
6174        cleared in Constituent::clear
6175
6176        * src/cmt_symbol.cxx (build): add cleanup ValueList objects after
6177        their addition for ensuring a really new value (due to cmt_string
6178        optimizing)
6179
61802001-04-03  Christian Arnault  <carnault@atlas006.cern.ch> 10
6181
6182        * mgr/Makefile: Operate the demo targets on different make action
6183        lines
6184
6185        * src/Makefile.header: Added -tag=$(tag) to cmt actions
6186
6187        * fragments/generator_header: create the output directory if
6188        needed
6189
61902001-04-02    <arnault@lal.in2p3.fr> 9
6191
[397]6192        * fragments\\nmake\\constituent: added the -tag=$(tag) option to cmt
[3]6193        build actions
6194
[397]6195        * src\\cmt_parser.cxx (parser): show_constituentxxx recursively
[3]6196        reads used requirements files
6197
[397]6198        * src\\cmt_pattern.cxx (Pattern::apply () const): protection added
[3]6199        for the case where the pattern is applied to the package that
6200        defines it.
6201
62022001-03-29  Christian Arnault  <carnault@atlas005.cern.ch> 8
6203
6204        * src/cmt_use.cxx (get_paths):
6205        * src/cmt_use.h (class Use):
6206        * src/cmt_pattern.h (class IgnorePattern):
6207        * src/cmt_pattern.cxx (const apply): Bug in apply global patterns
6208        : a pattern defined in one package should only be applied to the
6209        Uses that are on one of the paths between the current Use and the
6210        one wher the pattern is defined (and not to the Uses that never
6211        pretend to inherit that pattern!!!)
6212
6213        This required to implement the Use::get_paths which fills in the
6214        inclusive list of all Uses that are between two Uses.
6215
62162001-03-27  Christian Arnault  <carnault@lxplus017.cern.ch> 7
6217
6218        * fragments/dependencies: protection against missing dependency
6219        make fragment during clean operations.
6220
6221        * src/cmt_constituent.cxx (class constituents_action_iterator):
6222        the -suffix= option was hidden by the user variable specification
6223        while parsing the constituent parameters.
6224
62252001-03-23  Christian Arnault  <carnault@atlas007.cern.ch> 6
6226
6227        * mgr/requirements: clean up WIN32 tag variants definitions
6228
6229        * src/Makefile.header (setup.make): Display of the target in case
6230        of target not found (.DEFAULT)
6231
6232        * fragments/make_setup (csh): few checks
6233
6234        * fragments/installer: add the creation of $(install_dir) if
6235        needed
6236
62372001-03-21  Christian Arnault  <arnault@lal.in2p3.fr> 5
6238
6239        * src/cmt_parser.cxx (parse_arguments): When the tag specified in
6240        the command line arguments (using -tag=<tag>) is the same as
6241        CMTCONFIG, then still validate the tag given by uname
6242
6243        * fragments/dependencies: generate
6244        ${CONSTITUENT}_dependencies.make into $(bin)
6245
6246        * fragments/constituent: generate ${CONSTITUENT}.make into $(bin)
6247
6248        * src/cmt_constituent.cxx (parse):
6249        * src/cmt_constituent.h (class Constituent): Added the two-step
6250        parsing of the constituents specifications : first stage during
6251        parsing of the requirements file, parameters are simply stored in
6252        the constituent object and not interpreted. Second stage : after
6253        building the standard macros (once requirements files have
6254        entirely been read) then constituent objects are parsed.
6255
6256        * src/cmt_parser.cxx: Add Constituent::parse_all in
6257        Cmt::set_standard_macros to finalize the constituent
6258        parsing. Install set_standard_macros in several additional actions
6259
6260
6261
62622001-03-16  Christian Arnault  <arnault@lal.in2p3.fr> 4
6263
6264        * src/cmt_cvs.cxx (class CvsImplementation): Get the files at the
6265        top directory when doing a cmt checkout. 
6266
6267        Only checkout at head for the top package (ie do not recurse at
6268        head) and when -r is not specified.
6269
6270        * src/cmt_symbol.cxx (resolve_value_for_macros): Perform the
6271        substitution of ${} to %% (or reverse) even if the env. var. is
6272        not defined in CMT.
6273
6274        * src/cmt_parser.cxx (install_setup_scripts): Setup scripts on
6275        Windows generate the temporary expansion script in
6276        %HOMEDRIVE%%HOMEPATH%.
6277
62782001-03-16  Christian Arnault  <carnault@atlas009.cern.ch> 3
6279
6280        * mgr/requirements: clean up variants for VisualC and
6281        VisualC/debug
6282
62832001-03-15    <arnault@lal.in2p3.fr> 2
6284
[397]6285        * src\\cmt_use.cxx (class use_action_iterator): Strange name
[3]6286        conflict: the use_action_iterator::set method is in conflict with
6287        something else when the class is named "action_iterator" (is it a
6288        conflict with the same private class defined in Symbol.cxx ??)
6289
[397]6290        * src\\NMakefile.header (cmtexe): Fix for re-building cmt when
[3]6291        cmt.exe does not exist.
6292
62932001-03-13  Christian Arnault  <arnault@lal.in2p3.fr> 1
6294
6295        * src/cmt_use.cxx (class action_iterator): Introducing the
6296        action_iterator class for managing the local expansion of macros
6297        in the syntax parser (similart to what was done in Symbol::action)
6298
6299        * src/cmt_generator.cxx (Generator::build_make_setup) when
6300        generating setup.make, the default value for constituents is
6301        extracted from the constituents macro.
6302
63032001-03-06  Christian Arnault  <arnault@lal.in2p3.fr>
6304
6305        * src/cmt_cvs.cxx (class CvsImplementation): Show both top tags
6306        and non-top tags in cmt cvstags.
6307
6308        * doc/CMT.htm: Addition of several slide shows (from Atlas)
6309
6310        * mgr/cmt_buildcvsinfos2.sh (error): The awk script had to be
6311        protected against multiple ocurrences of the /symbols/,/locks/
6312        pattern.
6313
6314        Implement both in python and in shell script the differntiated
6315        production of top tags and non-top tags. Top tags are the set of
6316        tags sharing the most recent CVS tagged version id (ie. the HEAD
6317        may be more recent)
6318
63192001-03-05    <arnault@lal.in2p3.fr>
6320
[397]6321        * src\\cmt_parser.cxx (do_build_library_links): Handle libraries
[3]6322        specified as a full path in <package>_libraries
6323
[397]6324        * src\\cmt_parser.cxx (print_context):
6325        * src\\cmt_symbol.cxx (all_print): Use one line per
[3]6326        env. var. assignment when generating setup scripts (instead of ;
6327        separated instructions) . The latter style should be no longer
6328        needed since we use temporary files.
6329
[397]6330        * src\\cmt_parser.cxx (set_standard_macros): Add CMTCONFIG to the
[3]6331        standard sets, so as to let it known as a plain "symbol"
6332
63332001-03-02    <arnault@lal.in2p3.fr>
6334
[397]6335        * src\\cmt_system.h: introduce the CmtSystem::ev_open () and
[3]6336        CmtSystem::ev_close () to get the OS-dependent pattern for
6337        environment variable definition.
6338
[397]6339        * src\\cmt_symbol.cxx (resolve_value_for_macros): Substitute
[3]6340        patterns ${xxx} or %xxx% to the appropriate OS-dependent pattern
6341        when producing "set" values only (this is only done when the
6342        pattern is not already the good one)
6343
[397]6344        * src\\cmt_parser.cxx (install_setup_scripts): Changed
[3]6345        >>${tempfile} into >${tempfile} in setup scripts (fix a constraint
6346        in csh)
6347
63482001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>
6349
6350        * src/cmt_parser.cxx (do_build_temporary_name): Add the build
6351        temporary_name command to supply that missing function on various
6352        shells.
6353        (install_test_setup_scripts): Apply this new build service to
6354        setup scripts generation.
6355
6356        * src/Makefile.header: Needed a trailing end-of-line
6357
63582001-02-15  Christian Arnault  <arnault@lal.in2p3.fr>
6359
6360        * src/cmt_cvs.cxx (class CvsImplementation): Fix misuse of
6361        checkout_package arguments (confusion between package path and
6362        checkout directory)
6363
63642001-02-26    <arnault@lal.in2p3.fr>
6365
[397]6366        * src\\cmt_parser.cxx (install_test_setup_scripts): use mktemp for
[3]6367        setup scripts.
6368
[397]6369        * mgr\\requirements: Suppress local private configuration of
[3]6370        MSVC++. It has to be done previously to operate on CMT (even
6371        before making the INSTALL.bat)
6372
63732001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>
6374
6375        * src/cmt_deps_builder.cxx ((char* ptr,
6376                              state_def& state,
6377                              const cmt_string& dir_name,
6378                              int current_path_index,
6379                              const CmtSystem::cmt_string_vector& include_paths,
6380                              const CmtSystem::cmt_string_vector& substitutions,
6381                              CmtSystem::cmt_string_vector& all_deps,
6382                              CmtSystem::cmt_string_vector& deps)
6383        * src/cmt_generator.cxx ((const cmt_string& file_name)
6384
6385        Rollback recent change to work on cmt_strings rather than char* to
6386        restore speed.
6387
63882001-02-15  Christian Arnault  <arnault@lal.in2p3.fr>
6389
6390        * src/cmt_generator.cxx (build_dependencies): Restore the
6391        mechanism that takes into account the arguments, and the source
6392        list when -all_sources option is provided.
6393
6394        * mgr/requirements: change /machine:I386 into /machine:IX86 as
6395        link option for VisualC
6396
63972001-02-13    <arnault@lal.in2p3.fr>
6398
[397]6399        * src\\cmt_generator.cxx (build_dependencies): Do not require the
[3]6400        source list from the arguments. Instead, get the sources directly
6401        from the constituents definition.
6402
6403        The "cmt build dependencies" now only requires the constituent name.
6404
[397]6405        * src\\cmt_deps_builder.cxx: Read files at once into a cmt_string
[3]6406        and work from the text instead of reainf line by line from the file.
6407
6408        Install the detection of fortran include statements
6409
64102001-02-06    <arnault@lal.in2p3.fr>
6411
[397]6412        * src\\cmt_use.cxx: clean up space & tabs
[3]6413
6414        * cmt_parser.cxx (parse_requirements_text): Abort the parser in
6415        case of error, but only for check configuration command.
6416
6417        * NMakefile.header (lex_echo): Add -quiet option to cmt command
6418        except cmt check configuration
6419       
6420        * constituents.nmake: Add -quiet option to cmt command
6421
64222001-01-30    <arnault@lal.in2p3.fr>
6423
6424        * all dsp fragments : suppress the Win32 Release
6425        configuration. Only keep the Win32 Debug. This makes possible the
6426        generation of msdev using the syntax cmt build msdev
6427        -tag=VisualCdbg
6428
64292001-01-30    <arnault@lal.in2p3.fr>
6430
6431        * mgr/cmt_buildcvsinfos.py: first attempt to make the cvs script
6432        written in Python
6433
6434        * mgr/requirements: Consistently base Windows tag on VisualC rather
6435        than WIN32
6436
6437        upgraded setup.tcsh setup.zsh
6438
6439        introduced cmt show include_dirs
6440       
6441        introduced cmt show constituent <name>
6442
6443        bug in Pattern::add : overridden patterns were not cleared.
6444
6445        cmt config must recursively get used packages (at least to get patterns)
6446
6447        introduced cmt show pattern_names (at least for completion mechanisms)       
6448          new action : action_show_pattern_names
6449
6450        experimental work started on build triggers
6451       
6452          macro build_triggers
6453                implied_library_prefix
6454                implied_library_sufffix
6455
6456          new library option -triggers
6457          new constituent attribute build_triggers
6458          new fragment dependencies_and_triggers for libraries
6459
6460        bug in cmt_system.cxx::scan_dir
6461
6462        Recursively get all requirements file in cmt config action
6463
6464
6465        Changed strategy for argument parsing error detection
6466       
64672001-01-30    <arnault@lal.in2p3.fr>
6468
6469        * cmt_use.cxx ((const cmt_string& from_path) : bug in detection of
6470        "use pack " without version specification at all (ie equiv. to
6471        *). We needed to check we are on a real CMT package.
6472
6473        * cmt_constituent.cxx (class action_iterator): Expand the macros
6474        before acting upon a constituent specification. Each expanded word
6475        may then result in several words. Thus the line parser is
6476        re-implemented through a local operator class "action_iterator",
6477        in charge of filling up a new constituent object from the expanded
6478        statement. (Note that this mechanism could perfectly be reused for
6479        other statements eg "use" !!!)
6480
6481        * cmt_parser.cxx (set_standard_macros): Implement all_constituents
6482        and all_constituentsclean unconditionally.
6483
6484        * NMakefile.header (checkuses): if defined statements require that
6485        the macro to test is provided without quotes.
6486
6487        * cmt_generator.cxx: Apply the new convention of installing object
6488        files into $(bin)${CONSTITUENTS} also for applications (was only
6489        done for libraries)
6490
6491        * cmt_parser.cxx (print_context): Take the current CONFIG name
6492        from CmtSystem::get_cmt_config rather than recursively calling
6493        "cmt system", when generating setup scripts.
6494
[397]6495        * cmt_cvs.cxx (class CvsImplementation): Use '/' \303\255nstead of
[3]6496        CmtSystem::file_separator for CVS-only file specs.
6497
64982000-12-26    <arnault@lal.in2p3.fr>
6499
6500        * cmt_fragment.h (class Fragment and FragmentHandle): Install all
6501        variants of (win)copy methods that act upon a cmt_string instead
6502        of a FILE*.
6503
6504        * cmt_model.cxx: Create the implementation file for CmtModel
6505
6506        * cmt_model.h (class CmtModel): Create the CmtModel class
6507
6508        * cmt_parser.cxx (do_expand_model): Add the new command verb :
6509        'expand model' and all associated features
6510        (do_expand_model): call the CmtModel::expand
6511
Note: See TracBrowser for help on using the repository browser.