source: CMT/HEAD/ChangeLog @ 516

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

See C.L. 405

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