source: CMT/v1r12p20020606/ChangeLog

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

Import all tags

File size: 63.3 KB
Line 
12002-06-10  Christian Arnault  <carnault@lxplus040.cern.ch> 86
2
3        * fragments/constituent_synchronized : preparing lock management for parallel builds
4        (not yet available)
5
6        * src/cmt_parser.h (enum): Introduce "cmt show set_names" and "cmt show macro_names"
7        * src/cmt.h
8        * src/cmt_parser.cxx
9        * src/setup.zsh
10        * src/setup.tcsh:
11
122002-06-04  Christian Arnault  <arnault@lal.in2p3.fr> 85
13
14        * mgr/Makefile (cpp): Manage platform specific compilers
15
16        * src/cmt_parser.h (enum): Introduce action_awk action_run_sequence
17
18        * src/cmt_use.cxx (show_sub_uses): improve management of -no_auto_imports
19
20        * src/cmt_use.h (class Use):
21                Introducing new query functions for access path analysis
22                improve no-auto-imports mechanisms
23
24        * src/cmt_system.cxx (is_package_directory):
25
26        * src/cmt_awk.h (class Awk):
27        * src/cmt_awk.cxx (class Parser): Fix limited management of back slashes
28
29        * src/cmt.h (class Cmt):
30                Introduce the sequence runner
31                introduce the awk test command
32                Introduce possible pattern matching for cmt show sets/macros
33
34        * src/Makefile.header (common_target): remove the useless
35        tag=$CMTCONFIG option for recursive Make calls.
36
37        * mgr/requirements:
38                properly define some macros on WIN32
39
40        * Starting a branch for fixes to v1r12p20020515
41       
42
43
442002-05-15  Christian Arnault  <arnault@asc.lal.in2p3.fr> 84
45
46        * src/cmt_version.h (CMTVERSION): Preparing the new tag v1r12p20020515
47
48        * doc/CMTDoc.html: Upgrade the documentation.
49
50        * src/setup.tcsh:
51        * src/setup.zsh: Add all_tags to the list of know show options
52
53        * src/cmt_tag.cxx (show_definition):
54        * src/cmt_tag.h (class Tag): Added Tag::show_definition
55        (unfiltered show method wrt the selected state)
56
57        * src/cmt_parser.cxx (do_help): Implement the new cmt show all_tags command.
58
59        * src/cmt.h (class Cmt): Added Cmt::do_show_all_tags ()
60
61        * src/cmt_parser.h (enum): Added action_show_all_tags
62
63        * mgr/requirements: remove -I$(inc) from default value of ccomp
64        macro (no longer needed and has side effects)
65
66        * src/cmt_use.cxx (add): Protect against null use pointer when not found.
67
68        * src/cmt_tag.cxx (action): do increase the tag ref list when
69        overridden. It used to be un-overridden...
70
71        * fragments/constituents_trailer (clean): add a semi-colon between the two shell commands.
72       
73        * src/cmt_system.cxx (create_symlink): Explicit .c_str() in system calls.
74
75        * doc/table.html: setup a direct URL to CVSWeb rather than through
76        an intermediate page
77
782002-04-12  Christian Arnault  <carnault@lxplus030.cern.ch> 84
79
80        * doc/CMTDoc.html:
81        * src/setup.zsh:
82        * src/setup.tcsh:
83        * src/cmt_parser.cxx (do_help):
84        * src/cmt.h (class Cmt):
85        * src/cmt_parser.h (enum): introduce action_show_all_tags do
86        display all defined tags (while action_show_tags only shows all
87        active tags)
88
89        * fragments/constituents_trailer (clean): typo in the clean target.
90
912002-04-11    <arnault@lal.in2p3.fr> 83
92
93        * src\cmt_parser.cxx (print_clean): Suppress the unset of CMTCONFIG
94
952002-04-10    <arnault@lal.in2p3.fr> 82
96
97        * fragments\library:
98        * fragments\library_no_share: Suppress the experimental change for
99        erasing the object files after filling the library
100
1012002-04-10  Christian Arnault  <carnault@lxplus044.cern.ch> 81
102
103        * src/cmt_version.h: preparing tagging for v1r12
104
105
106       
107        * mgr/requirements: Adapt to Darwin
108
109        * src/cmt_symbol.cxx (action):
110        * src/cmt_use.cxx (action):
111        * src/cmt_use.h (class Use): Introduce m_has_native_version
112
113        * mgr/requirements: Add standard $(library_prefix) and $(library_suffix) macros
114
115        * mgr/cmt_make_shlib_common.sh (temp_shlib): Set verbose mode to
116        the linker command and control it through the QUIET macro. Fix the
117        temporary expansion directory
118       
119        * mgr/cmt_make_shlib_common.sh (temp_shlib):
120        * fragments/library_header:
121        * fragments/cleanup_library: Add standard $(library_prefix) and $(library_suffix) macros
122
123        * fragments/constituents_trailer (makefilesclean):
124        * fragments/constituent: remove specific makefile fragments for
125        the constituents (instead of *.make)
126
127        * fragments/library_no_share:
128        * fragments/library: erase *.o files after filling the library
129
130        * src/cmt_use.h (class Use): Add use::sub_use_auto_imports to save
131        specifications on sub uses. Add Use::set_auto_imports to possibly
132        promote auto_imports to sub uses when it is changed from Off to
133        On.
134
135        * src/cmt_parser.h (enum):
136        * src/cmt_pattern.cxx (show_all_applied_patterns):
137        * src/cmt_pattern.h (class Pattern): adding Pattern::show_all_applied_patterns ()
138        * src/setup.tcsh:
139        * src/setup.zsh:
140        * src/cmt_parser.cxx (do_help):
141        * src/cmt.h (class Cmt): Adding Cmt::do_show_applied_patterns for
142        the new command "cmt show applied_patterns"
143
1442002-04-04  Christian Arnault  <carnault@lxplus044.cern.ch> 80
145
146        * src/cmt_use.cxx (add): Protect against duplicated registration of
147        current_use.
148
149        * src/cmt_parser.cxx (install_setup_scripts): Append an empty line
150        at the end of the generated setup script (problem on some shells)
151       
152        * src/cmt_parser.cxx (do_create):
153        * src/cmt.h (class Cmt): Change the signature of the do_create
154        function to receive its arguments from the "arguments" list rather
155        than changing current_package etc...
156
157        * src/Makefile.header: Add a systematic config target (for backward compatibility)
158
159        * fragments/constituents_trailer (binclean): added the binclean
160        target to completely remove the binary directory at once.
161
162        * fragments/make_header:
163        * fragments/constituents_header:
164        * fragments/nmake/make_header (CMTEXTRATAGS):
165        * fragments/nmake/constituents_header (CMTEXTRATAGS): Remove the settings of CMTCONFIG
166
1672002-03-22  Christian Arnault  <carnault@lxplus037.cern.ch> 79
168
169        * src/cmt_symbol.cxx (suppress_OS_delimiters): operate on %...%
170        patterns only on Windows machines.
171
1722002-03-20  Christian Arnault  <carnault@lxplus042.cern.ch> 78
173
174        * mgr/Makefile (Atlas): Suppress HP rebuild for Atlas group
175
176        * src/cmt_cvs.cxx (filter): Improve the recursive passes and
177        handle the new qualifiers of the use statements.
178
179        * fragments/cleanup_header (clean): Fix bad insertion of the .DEFAULT target
180
181        * src/cmt_symbol.cxx (suppress_OS_delimiters): Introduce this new
182        function to ensure that only $() syntax is used in tag makefiles
183        (ie suppress ${} and %% syntaxes)
184        (show_macro): apply this new function for action_build_tag_makefile
185
186        * src/cmt_generator.cxx (reset): Do not generate the Visual
187        directory on non-windows machines
188
189        * fragments/group (clean): Suppress one echo on gmake clean
190
1912002-03-14  Christian Arnault  <carnault@lxplus037.cern.ch> 77
192
193        * src/cmt_parser.cxx (set_standard_macros): Cleanup management of m_current_tag
194
1952002-03-07  Christian Arnault  <carnault@lxplus048.cern.ch> 76
196
197        * src/cmt_parser.cxx (print_context): Suppress the automatic
198        settings of CMTEXTRATAGS
199
200        * src/Makefile.header: Do not change CMTCONFIG
201        * src/NMakefile.header: Do not change CMTCONFIG
202
2032002-02-27  Christian Arnault  <carnault@lxplus042.cern.ch> 75
204
205        * fragments/jar: Adding removal of jar file for clean target
206
207        * src/cmt_use.cxx (show_sub_uses): show no_auto_imports status
208
209        * src/cmt_parser.cxx (reach_current_package): reapply global
210        pattern at once until side effects are solved in user projects.
211
212        * fragments/jar: Apply an old fix to Unix fragments (was applied
213        to Windows only)
214
2152002-02-26  Christian Arnault  <carnault@lxplus016.cern.ch> 74
216
217        * src/cmt_use.cxx (move_to): select_alternate must be applied
218        after reach_package for searches against an absolute path or
219        against the current directory.
220
2212002-02-25    <arnault@lal.in2p3.fr> 73
222
223        * fragments/cleanup_header (clean): Add default action
224
225        * src/Makefile.header (common_target): Remove debug print
226
227        * src\cmt_parser.cxx (parse_requirements): Apply global patterns
228        right after parsing a requirements file, and only considering the
229        Use context, one at a time (rather than applying all global
230        patterns to all Uses at once after reading all requirements file)
231
232        * src\cmt_pattern.cxx (apply_all_globals):
233        * src\cmt_pattern.h (class Pattern): Add a method to apply all
234        global patterns in the context of only one Use object.
235
2362002-02-24    <arnault@lal.in2p3.fr> 72
237
238        * src\cmt_system.cxx (command_separator): New method for getting
239        the shell command separator (& or ;)
240
241        * src\cmt_cvs.cxx (class CvsImplementation): Add
242        CmtSystem::command_separator() between cvs co of each branch
243        (instead of newlines).
244
245        * src\cmt_system.cxx (has_device): Accepts the \\xxx\ syntax as a
246        device name in file paths on windows.
247
248        * src\cmt_parser.cxx (configure_cmt_path): Hide show_set action
249        when recursive definition of CMTCONFIG
250
251        * src\cmt_use.cxx (need_new): Some optimizations
252       
253        * src\cmt_use.cxx (move_to): Exchange the priority of CMTPATH
254        versus version when selecting the best version.
255
256        * src\cmt_parser.cxx (use_cmt): Hide CMTDEBUG while parsing the
257        requirements of CMT itself
258
2592002-02-20  Christian Arnault  <arnault@lal.in2p3.fr> 71
260
261        * src/cmt_parser.cxx (do_broadcast): Fix a bug for setting the
262        style the the Current use. This effect was induced by the new
263        mechanism for constructing the Current Use object, now a singleton
264        of the Use class.
265
2662002-02-07    <arnault@lal.in2p3.fr> 70
267
268        * src\cmt_use.cxx (change_path): Add a m_located flag in Use class
269        to record the success of the package localization. Test against
270        this info instead of real_path to allow for package found in
271        current directory (where real_path stays empty)
272
273        * src\cmt_parser.cxx (configure):
274
275        * src\cmt_use.cxx (show_sub_uses): Ensure that the cmt show uses
276        displays the correct scoping information for uses and
277        sub-uses. cmt show uses also displays the full tree even when it
278        contains private uses.
279
2802002-02-06    <arnault@lal.in2p3.fr> 69
281
282        * src\cmt_use.cxx (class use_action_iterator): Install UseContext
283        to manage proper propagation of -no_auto_imports
284
2852002-01-30    <arnault@lal.in2p3.fr> 68
286
287        * src/cmt_parser.cxx (parse_arguments): Fix the bug of private
288        environment variables which could not be set even within the
289        package (bug in the management of the -pack= -version= -path=
290        options).
291
292        * src/cmt.h : Install all attributes of the Cmt class as private
293        attributes, and make them follow the convention : m_xxx. This
294        implies to install few accessor methods.
295
2962002-01-29    <arnault@lal.in2p3.fr> 67
297
298        * src/cmt_use.cxx (class use_action_iterator): The private uses
299        are accessed for
300            - broadcast operations
301            - show uses operations
302
303        * src/cmt_symbol.cxx (action): Expands the specified script name
304        for the setup_script and cleanup_script statement.
305          Protect against empty script names.
306
3072002-01-11  Christian Arnault  <carnault@lxplus035.cern.ch> parallelbuilds
308
309        * src/Makefile.header: Reorganize basic Makefile fragment
310        generation to permit better support for parallel & concurrent
311        builds.  Mimize also the number of makefile fragments generated
312        and kept : only $(tag).make remains in ../cmt . All other are
313        thrown away after use.
314
315        Make those changes a branch "parallelbuilds"
316       
317
3182002-01-09  Christian Arnault  <carnault@lxplus001.cern.ch> 66
319
320        * src/NMakefile.header (tags): Apply the fix for tags onto
321        NMakefile.header
322
3232002-01-07    <arnault@lal.in2p3.fr> 65
324
325        * src/Makefile.header (tags): Attempt to fix the continuity break
326        between v1r9 and v1r10, by re-installing the possibility to use
327        gmake tag=<...> rather than having to use source setup.[c]sh
328        -tag=<...>
329
330        (This fix has to be tested before any validation)
331
3322001-11-26  Christian Arnault  <carnault@atlas50.cern.ch> 64
333
334        * Tagging v1r10p20011126
335       
336        * src/Makefile.header: tag is now ${CMTCONFIG} and tags ${CMTEXTRATAGS}
337
338        * mgr/requirements: Provide the macro tags as ${CMTEXTRATAGS}
339
340        * src/cmt_tag.cxx: Various changes in strategy for tags:
341          - tag inclusion (defined by the "tag" statement) transmits the priority.
342          - tag selection can be discarded by exclusion specifications. Exclusion
343          qualifies a set of contradictory tags. Contradictory tags will be selected
344          according to their priority or to their declaration order in case of
345          equal priority.
346
347        * src/cmt_parser.h (enum Priority): Change the priority list:
348        Arguments get highest priority
349        then CMTCONFIG
350        then user tags (those defined in requirements)
351
352        * fragments/make_setup: produce uses.make and tags.make
353
354        * src/cmt_parser.cxx (parse_arguments):
355        * src/cmt.h (class Cmt): Suppress the mechanism of
356        primary_tag. CMTCONFIG is enough.
357
3582001-11-21  Christian Arnault  <carnault@lxplus040.cern.ch> 63
359
360        * src/cmt_symbol.cxx (add_value_to_list): fix protection on
361        value_list.size () to start at 1 (not at 2)
362
363        * src/cmt_symbol.cxx (build): Reflective values of Sets should
364        consider previous setenv settings.
365
366        * src/cmt_generator.cxx (build_dependencies): Using ../$(tag) for
367        output base of the dependencies fragment rather then
368        Cmt::current_tag
369
370        * src/Makefile.header (CMTPRIMARYTAG): tag=... argument of gmake
371        will override CMTPRIMARYTAG. However internal tag macro is only
372        replaced with ${CMTCONFIG}
373
374        * fragments/make_setup (config): create a tags.log (for cmt show
375        tags)
376
377        * mgr/cmt_make_shlib_common.sh: Add the ${lib} prefix to the
378        temporary expansion directory. Fix a bug in sed filter for all
379        module files.
380
381        * src/cmt_parser.cxx (configure_tags): Add a protection against
382        absence of CMTPRIMARYTAG
383
384        * src/cmt_system.cxx (create_symlink):
385        * src/cmt_system.h (class CmtSystem): Adding the create_symlink
386        function.
387
388        * src/cmt_parser.cxx (do_build_library_links): Using direct system
389        calls to create symlinks.
390
3912001-11-13  Christian Arnault  <carnault@lxplus010.cern.ch> 62
392
393        * Tagging v1r10p20011113
394
395        * mgr/requirements:
396        * src/constituents.make (build_library_links): Define macros for
397        build_library_links and remove_library_links
398
399        * fragments/make_setup (config): Add build_library_links target
400
401        * src/cmt_parser.cxx (set_standard_macros): Fix bad production of
402        use_includes when private is used.
403
404        * src/cmt_parser.cxx (do_broadcast): Fix -begin=<pattern> error
405
4062001-11-08  Christian Arnault  <carnault@lxplus028.cern.ch> 61
407
408        * src/cmt_version.h: tagging v1r10
409
410        * src/cmt_system.cxx (add_cmt_path): Get cwd alias to each selected path.
411
412        * src/cmt.h (class Cmt): Add cmt_path_cwd vector of all CMTPATH
413        entries normalized to getcwd.
414
415        * src/cmt_generator.cxx (java_file_action):
416        * src/cmt_generator.cxx (proto_file_action):
417        * src/cmt_generator.cxx (module_file_action): Pass reference to the constituent in order
418        to transmit constituent variables to the fragment.
419
420        * src/cmt_parser.cxx (set_standard_macros): Insert a space
421        character for all generated macro_append operations.
422
423        * src/cmt_fragment.cxx (xxxcopy):
424        * src/cmt_fragment.h (class Variable): Adding the expansion of
425        fragments variables using both the ${} syntax AND the $() syntax.
426
427        * src/cmt_tag.h :
428        * src/cmt_tag.cxx (is_selected): Change the Tag::selected attribute to bool.
429
4302001-11-07  Christian Arnault  <carnault@lxplus006.cern.ch> 60
431
432        * src/cmt_symbol.cxx (build): Implement the possibilty to have
433        reflexive asignment to symbols: when a symbol value is exactly
434        specified (from set, macro or path statements) using $(<name>) or
435        ${<name>} or %<name>% then the old value is preserved for all
436        corresponding selectors.
437
438        * src/cmt_parser.cxx (set_standard_macros): Re-activate -import
439        options (that had been discarded!)
440
441        * src/cmt_use.cxx (add): Generate an error when a package is not
442        found (the error was only generated at "cmt show uses")
443
444        * src/cmt_constituent.cxx (show): Display -import options
445
446        * fragments/dependencies: Force checking $(bin)
447
448        * fragments/constituent: Adding some printout to display when
449        constituent fragment is rebuilt
450
451        * src/cmt_parser.cxx (set_standard_macros): Re-validate
452        -no_auto_imports option for use and -import options for
453        constituents.
454
4552001-11-06  Christian Arnault  <carnault@lxplus038.cern.ch> 59
456
457        * src/cmt_generator.cxx (build_document_makefile): protect against
458        missing files (causing infinite loops in Make)
459
4602001-11-05  Christian Arnault  <carnault@lxplus005.cern.ch> 58
461
462        * mgr/Makefile (application_suffix): Define application_suffix in
463        the CMT's Makefile
464
465        * src/cmt_parser.cxx (print_context): Do not generate ROOT and
466        CONFIG for cmt_standalone packages.
467
468        * mgr/requirements: Reomving the cmt_selector.cxx source file.
469
470        * src/constituents.make: Force the dirs target for
471        build_library_links
472
473        * src/cmt_parser.cxx (restore_all_tags): Get the value of
474        CMTPRIMARYTAG to configure Cmt::primary_tag.
475
476        Leave unchanged the primary_tag and the extra_tags except if
477        overridden through the -tagxxx= options
478
479        * src/cmt_parser.h (enum): Add PrioritySite in the list of
480        possible priorities.
481
482        * src/cmt.h (class Cmt): Add the restore_all_tags function. Add
483        the extra_tags attribute . Change the strategy of tag persistency:
484
485          o CMTPRIMARYTAG always contains what had been specified using
486        the -tag= option,
487
488          o CMTEXTRATAGS contains what had been manipulated by -tag_add=
489        and -tag_remove= options.
490
491          o CMTCONFIG is setup independently of the primary tag.
492
493        * src/Makefile.header (primary_tag): Propagate tags using
494        CMTPRIMARYTAG instead of CMTCONFIG (except when CMTPRIMARYtAG is
495        not yet defined)
496
497        * src/cmt_constituent.cxx (parse): Fix the word parsing for
498        constituent specification...
499
5002001-11-02  Christian Arnault  <arnault@asc.lal.in2p3.fr> 57
501
502        * src/cmt.h
503        * src/cmt_database.cxx
504        * src/cmt_database.h
505        * src/cmt_parser.cxx
506        * src/cmt_parser.h
507        * src/cmt_selector.cxx
508        * src/cmt_selector.h
509        * src/cmt_symbol.cxx
510        * src/cmt_symbol.h
511        * src/cmt_tag.cxx
512
513        * src/cmt_tag.h:
514        Suppressing cmt_selector objects (only tags are needed!!)
515        Add tag_exclude keyword for building tag-exclusions.
516
5172001-10-31  Christian Arnault  <carnault@atlas50.cern.ch> 56
518
519        * mgr/requirements: Don't need to explicitly declare make_fragment
520        headers (automatically declared in the -header= option)
521
522        * src/cmt_symbol.cxx (print_clean): Cleaning up path variables may
523        be either unsetenv when the result is empty or setenv if not.
524       
525        * fragments/application_launcher: evolution
526
527        * src/cmt_parser.cxx (configure_tags): protect against empty
528        declaration of CMTCONFIG : by default will take uname...
529
5302001-10-30  Christian Arnault  <carnault@atlas50.cern.ch> 55
531
532        * src/cmt_symbol.cxx (clean): Implement the cleanup correctly,
533        with in particular the cleanup of the path variables.
534
535        * src/cmt_parser.cxx (print_context): improve output of cmt show tags
536
537        * src/cmt_symbol.h (class Symbol): Add clean_macro_value for
538        building the result of the clean operations induced by this symbol
539        (only implemented for path_xxx)
540
541        * src/cmt_parser.cxx: New post-context requirements file :
542        user_context in addition to home package.  Added Use* use
543        arguments to configure_xxx functions to transfer.
544
545        * src/cmt_parser.cxx(configure_cmt_path): Attempt to make use of
546        CMTPATH definitions from requirements files.
547
548        * src/cmt_parser.cxx(configure_config_selector): Install context
549        information for tag creation
550
551        * src/cmt_parser.cxx(configure_home): Attempt to make use of
552        CMTHOME definitions from requirements files.
553
554        * src/cmt_parser.cxx(configure_user_context): Install user_context
555        management
556
557        * src/cmt_parser.cxx(configure_site_selector): Get CMTSITE from
558        requirements as well
559
560        * src/cmt_parser.cxx(configure_tags): Add a configure_tags
561        finction to retreive tags from all possible sources: CMTCONFIG
562        (from req) then CMTPRIMARYTAG then CMTCONFIG then CMTBIN then
563        append all CMTEXTRATAGS.
564
565        * src/cmt_parser.cxx(parse_arguments): fix parsing bug for the
566        -home= argument
567
568        * src/cmt_parser.cxx(parser): Set action_show_path to be recursive
569
570        * src/cmt_parser.cxx(parser): Call the HOME package just after
571        using CMT. Call the use_context package just after reaching the
572        current package.
573
574        * src/cmt_parser.cxx(print_clean): reformat the output (with
575        newlines). Clear CMTPRIMARYTAG CMTEXTRATAGS and CMTCONFIG.
576
577        * src/cmt_parser.cxx(print_context): set CMTPRIMARYTAG
578        CMTEXTRATAGS and CMTCONFIG from the current definitions.
579
580        * src/cmt_parser.cxx(set_standard_macros): Rationalize the
581        production of current_tag
582
583        * src/cmt_parser.cxx(use_user_context_requirements):
584
585        * src/cmt_use.cxx (show_all): Display new user_context package
586
587        * src/cmt_use.cxx (class use_action_iterator): query function ok()
588        includes both home_package and user_context_package
589
590        * src/cmt_use.cxx (reach_package): special treatment for
591        home_package and user_context_package since they do not follow the
592        standard location scheme.
593
594        * src/cmt_use.cxx (add): Improve the detection of packages not found.
595
596        * src/cmt_tag.cxx (unmark): Reset the use pointer
597
598        * src/cmt_tag.cxx (action): Install the use origin.
599
600        * src/cmt_tag.cxx (add): Install the use origin and the context
601        information. It will be reset to the new context in case of
602        re-definition. Suppress various excessive debug printouts.
603
604        * src/cmt_tag.cxx (clear): clear use and context new information
605
606        * src/cmt_tag.cxx (show): Improve the display of tags with
607        hierarchical display of subtags and context information.
608
609        * src/cmt_tag.h (class Tag): Added Use* use parameter to action
610        and add methods. Store a pointer to the package (Use*) who
611        originated the definition, and a context string to qualify the
612        definition.
613
614        * src/cmt_system.h (class CmtSystem):
615        * src/cmt_system.cxx (add_cmt_paths_from_text): Factor out the
616        code to register a set of CMTPATH entries, with the context
617        information.
618       
619        * src/cmt_system.cxx (is_home_package): Add is_home_package and
620        is_user_context_package query functions.
621
622        * src/cmt_system.cxx (get_cmt_site): Default site is empty
623        (instead of LAL)
624
625        * src/cmt_symbol.cxx (print_clean): Suppress some obsolete
626        print_tabs () formattings. Apply unset instead of unset for
627        aliases as well.
628       
629        * src/cmt_symbol.cxx (action): Add special treatment for CMTXXX
630        environment variables : the new setting has to be taken into
631        account as soon as it is parsed.
632
633        * src/cmt_selector.cxx (create): remove some debug code.
634
635        * src/cmt_generator.cxx (build_default_makefile): Produce only
636        Makefile on Unix and only NMake on Windows.
637
638        * mgr/requirements: Renaming new script_launcher fragments into
639        application_launcher
640
641        * src/cmt.h (class Cmt): Added Use* use arguments to configure_xxx
642        functions to transfer.
643       
644        Added use_user_context_requirements () to include post-context
645        requirements file.
646
647        Added the static value primary_tag to store the primary tag.
648       
649
650        * src/cmt_generator.cxx (build_default_makefile): Create Makefile
651        only un Unix and NMake only on WIN32
652
6532001-10-24  Christian Arnault  <carnault@lxplus038.cern.ch> 55
654
655        * src/cmt_parser.cxx (parser): add the recursive property to
656        action_show_path.
657
658        * src/cmt_system.h (class CmtSystem):
659        * src/cmt_system.cxx (get_user_context_package):
660        * src/cmt_system.cxx (is_user_context_package):
661        * src/cmt_use.cxx (add):
662        (show_all):
663        (class use_action_iterator):
664        (reach_package):
665        (add):
666        * src/cmt_parser.cxx (configure):
667        * src/cmt_parser.cxx (parser):
668        * src/cmt_parser.cxx (parse_arguments):
669        * src/cmt_parser.cxx (configure_user_context):
670        * src/cmt.h (class Cmt):
671
672        Adding user_context equivalent of CMTHOME support for post
673        requirements file. The corresponding env. var. is CMTUSERCONTEXT.
674        The complete scheme for supporting PRE-parsed HOME requirements
675        file is exactly copied to those POST-parsed files.
676
677        * mgr/requirements:
678        * fragments/script_launcher_header:
679        * fragments/script_launcher:   
680        * fragments/script_launcher_trailer: Introduce a new document
681        generator for launching scripts. The same convention as the
682        check_application is reused, for pre-action, argument passing and
683        post-action. Several scripts (specified in the source list of the
684        document) can be executed in sequence.
685
686        * src/cmt_use.cxx (class use_action_iterator):
687        * src/cmt_system.cxx (is_home_package):
688        * src/cmt_system.h (class CmtSystem): Add the is_home_package
689        function to encapsulate the syntax of a HOME package (and apply it
690        in Use::use_action_iterator)
691
692        * src/cmt_symbol.cxx (action): Prepare specific actions when the
693        parsed symbol is one of the CMTXXX standard symbols. So far
694           CMTHOME -> re-configure home.
695
696        * src/cmt_parser.cxx (parser): apply use_home_requirements right
697        after reading CMT requirements file (ie. before reading current
698        package)
699
700        * src/cmt_parser.cxx (configure_home): understand the possible
701        "set CMTHOME" declarations (but keep $CMTHOME)
702
703        * src/cmt_parser.cxx (reach_current_package): * src/cmt_system.cxx
704        (get_cmt_paths): Restore the automatic addition of "current
705        package" in the CMTPATH list.
706
707        * src/cmt_parser.cxx (parse_arguments): bad parsing of the
708        -home=xxx argument
709
710       
711
7122001-10-23  Christian Arnault  <carnault@lxplus007.cern.ch> 54
713
714        * mgr/Makefile (demo): Need to add CMTPATH towards ${CMTROOT}/demo
715        since CMTPATH to current package is no longer supported !!!
716
717        * fragments/nmake/check_application (check):
718        * fragments/nmake/cleanup_application:
719        * fragments/nmake/application_header:
720        * fragments/nmake/application:
721        * fragments/application:
722        * fragments/application_header:
723        * fragments/cleanup_application:
724        * fragments/check_application (check):
725        * mgr/requirements: Create a new standard macro
726        "application_suffix" for making possible to change the .exe
727        default suffix of applications
728
7292001-10-22  Christian Arnault  <carnault@lxplus026.cern.ch> 53
730
731        * src/cmt_parser.cxx :
732        * src/cmt_system.cxx : Suppress the automatic addition of current
733        package's path into CMTPATH.
734
735        * mgr/Makefile: Change the method to rebuild
736        cmt_dependencies by copying what is obtained from CVS. Rebuild it
737        manually when needed.
738
7392001-10-19  Christian Arnault  <carnault@lxplus025.cern.ch> 52
740
741        * fragments/make_setup (config): Creating uses.log needs to use an
742        intermediate temporary file
743
744        * src\setup.[c]sh : Avoid re-definition of CMTCONFIG
745
746        * src\cmt_use.cxx (add): temporarily discard the mecanism by which
747        uses.log files are read before the requirements files.
748
749        * src\cmt_system.cxx (is_version_directory): returns -1 for fields
750        that were wildcarded
751
752        * src\cmt_use.cxx (add):
753        * src\cmt_use.cxx (need_new):   
754        * src\cmt_use.cxx (BestFitSelector::operate): Start the
755        implementation of priority control between explicit use
756        specification over wildcarded ..
757
758        * src\cmt_parser.cxx (reach_current_package): Change the value of
759        the CMTPATH for the current package once it has been reached (but
760        before reading its requirements file)
761       
762        * src\cmt_parser.cxx (install_setup_scripts): (improvement) Add the transfer of
763        arguments towards cmt.exe into setup.bat
764
765        * src\cmt_system.cxx (get_cmt_paths): (bug fix) path_sources was
766        not cleared as paths.
767        Prepend "current path" to the path list under "current package".
768
769        * src\cmt_parser.cxx (parse_arguments): (bug fix) Suppress
770        enclosing quotes around cmt.exe arguments so that setup.bat can
771        transmit arguments properly
772
773        call setup.bat "-tag_add=a,b,c"
774
7752001-10-18  Christian Arnault  <carnault@lxplus047.cern.ch> 51
776
777        * src/cmt_parser.cxx (set_standard_macros): Set current_tag to
778        CMTBIN when in CMT itself (not complete yet)
779       
780        * src/cmt_generator.cxx (build_dependencies): Use CMTBIN for CMT
781        itself (instead of current_tag) well this should be cured later on
782        to ensure that current_tag is always set to CMTBIN for CMT itself
783
784        * src/cmt_version.h (CMTVERSION): install v1r10 (not tagged yet)
785
786        * mgr/cmt_system.sh: Do not try to use AFS on Darwin and LynxOS.
787
788        * src/setup.[c]sh: Define CMTBIN as `uname` on Unix and CMTCONFIG
789        as `cmt_system.sh`
790
791        * src/cmt_symbol.cxx (show_macro): the trailing space must be
792        added only for WIN32 !!
793
7942001-10-17  Christian Arnault  <carnault@lxplus047.cern.ch> 50
795
796        * src/cmt_symbol.cxx (show_macro): add a trailing space on all
797        macro definitions (to avoid problem of trailing backslash)
798       
799        * src/cmt_parser.cxx (set_standard_macro): remove the insertion of
800        trailing spaces after the last backslash for WIN32/NMake
801
802        * src/constituents.make (all): (bug fix) re-install the
803        build_library_links action for the all target
804
8052001-10-11  Christian Arnault  <carnault@lxplus021.cern.ch> 49
806
807        * src/cmt_version.h: Tagging for v1r9p20011011
808       
809        * fragments/library: (bug fix) transmit both -tag=<tag> and
810        -tag_add=<tag_list> to cmt_make_shlib_common.sh
811
8122001-10-11  Christian Arnault  <arnault@asc.lal.in2p3.fr> 48
813
814        * src/cmt_parser.cxx: remove debug print options
815
8162001-10-10  Christian Arnault  <arnault@asc.lal.in2p3.fr> 47
817
818        * src/cmt_parser.cxx (parse_arguments): fix problems in multiple
819        tag management.
820
821        converge in the question of HOME requirements file to support
822          - no default
823          - define the path to the HOME requirements file in ${CMTHOME}
824
825        converge in the arguments for manipulating the extra tags
826          -tag=<tag>
827          -tag_add=<tag-list>
828          -tag_remove=<tag-list>
829
8302001-10-03  Christian Arnault  <carnault@lxplus036.cern.ch> 46
831
832        * src/constituents.make (makefilesclean): Make all action lists
833        run in one single shell (ie. use ;\ everywhere)
834
835        Make an explicit target for build_library_links
836        Make it called before any group
837
8382001-10-02  Christian Arnault  <carnault@lxplus007.cern.ch> 45
839
840        * src/cmt_awk.h (class Awk): add a state variable
841        (m_continuation_allowed) which when true, take into account the
842        trailing backslashes, so as to first accumulate continued lines
843        into one. Add the allow_continuation method to base Awk class.
844
8452001-10-01  Christian Arnault  <carnault@lxplus034.cern.ch> 44
846
847        * src/cmt_cvs.cxx (class CvsImplementation): Bug in
848        checkout_from_requirements. Did not accept leading spaces on use
849        statements.
850
8512001-09-27  Christian Arnault  <carnault@lxplus036.cern.ch> 43
852
853        * src/cmt_version.h: Tagging for v1r9p20010927
854
855        * src/setup.zsh: add the -begin option to the auto-expansion.
856
857        * src/cmt_use.cxx (show_all): Visualize the HOME package when
858        applicable.
859
860        * src/cmt_system.cxx (get_home_package): (also do some formatting
861        cleanup)
862       
863        * src/cmt_system.h (class CmtSystem): Adding get_home_package
864        function to build the name given to the HOME package (provides the
865        HOME requirements file)
866
8672001-09-26  Christian Arnault  <arnault@asc.lal.in2p3.fr> 42
868
869        * src/cmt_parser.cxx (do_show_macro): Improving error detection on
870        cmt show macro/set
871
872        * doc/CMTDoc.html: Improve the doc.
873
874        * src/cmt_parser.cxx (print): produce the CMTEXTRATAGS environment
875        variable, at setup time.
876                             (parse_arguments): take into account this new
877        env.var. to retreive previous extra tags.
878
879        * src/Makefile.header: Add the CMTEXTRATAGS environment variable
880        to propagate additional tags to Make.
881       
882        * fragments/make_setup:
883        * fragments/constituent:
884        * src/Makefile.header:
885        * src/constituents.make: Adding  -tag=$(tags) to all calls to cmtexe
886
887        * src/cmt_system.h (class CmtSystem): Adding the bool testenv
888        (name) function to test if an environment variable is defined or
889        not.
890
891        * src/cmt_parser.cxx (use_home_requirements):
892        * src/cmt.h (class Cmt): Adding support of CMTHOME environment
893        variable for specifying home requirements file. Default value will
894        be ${HOME}. And can be overridden through the -home=<directory>
895        global option. An explicit empty value (or set to eg. NONE) will
896        discard the feature
897
898        * src/cmt_parser.cxx (parse_arguments): Implement the tag list
899        (comma separated list of extra tags) option -tag=<tag-list> to
900        specify a list of tags to validate.
901
9022001-09-25  Christian Arnault  <carnault@lxplus034.cern.ch> 41
903
904        * src/setup.csh: fixed PATH settings (may accept a path with space
905        characters eg. for Darwin)
906       
907        * mgr/cmt_system.sh: Insert the knowledge of Darwin OS (Mac OS
908        X). The default CMTCONFIG will be Darwin.
909
910        * src/constituents.make (makefilesclean): Ensure that removal of
911        makefile fragments is performed AFTER all cleanup uperations.
912
913        * src/cmt_parser.cxx (use_home_requirements): Add the systematic
914        search for a requirements file located in ${HOME}. This
915        requirements file when found, is systematically parsed AFTER the
916        requirements file of the current package has been parsed (so as to
917        give the highest precedence to its statements)
918       
919        (do_remove_library_links): Upgrade "remove library_links" to make
920        it compliant to the algorithm used in "build library_links"
921
9222001-09-24  Christian Arnault  <carnault@lxplus014.cern.ch> 40
923
924        * src/cmt.h (class Cmt): * src/cmt_parser.cxx (configure): Add a
925        global configure_error variable to store the possible error
926        produced during the configuration.
927        (install_test_setup_scripts): Add the -quiet option to the build
928        temporary_name command used in setup script generation.
929
930        * src/cmt_error.cxx (get_last_error):
931        * src/cmt_error.h (class CmtError): Add get_last_error to retrieve
932        the formatted text of the last error.
933
934        * src/cmt_symbol.cxx (create):
935                             (all_print):
936                             (print):
937                             (build):
938        * src/cmt_parser.cxx (select): Understand the "path" statement as
939        a complete re-definition of a path-like variable.
940
941        * src/cmt_system.cxx (add_cmt_path):
942        * src/cmt_error.cxx (class Error):
943        * src/cmt_error.h (class CmtError): Adding "path not found" error
944        code, for CMTPATH checking.
945
946        * src/cmt_pattern.cxx ((const cmt_string& name): Return a warning
947        for pattern not found.
948
949        * src/cmt_error.h (class CmtError):
950        * src/cmt_error.cxx (class Error): Adding "pattern not found" error
951        code, for showing diagnostics in "cmt show pattern"
952
953        * src/cmt_parser.cxx (do_show_macro): Return a warning for symbol
954        not found.
955
956        * src/cmt_error.h (class CmtError):
957        * src/cmt_error.cxx (class Error): Adding "symbol not found" error
958        code, for showing diagnostics in "cmt show macro/set"
959
9602001-09-19  Christian Arnault  <carnault@lxplus045.cern.ch> 39
961
962        * mgr/cmt_make_shlib_common.sh : return a status value which
963        reflects the success or failure of the shared library build
964        command.
965
966        * src/cmt_cvs.cxx (class CvsImplementation): Discard the versions
967        specified with wild cards in the recursive checkout.
968
969        * src/cmt_triggers.cxx: Protect the error messages in the trigger
970        facility by Cmt::quiet.
971
972        * src/cmt_constituent.cxx (class constituents_action_iterator):
973        temporarily discard the -triggers option.
974
9752001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38
976
977        Tagging v1r9p2001p0824
978
9792001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38
980
981        * mgr/cmt_system.sh: Improve the reliability of the cmt_system.sh
982        script against variants of "fs sysname"
983
9842001-08-23  Christian Arnault  <carnault@lxplus030.cern.ch> 37
985
986        * src/cmt_cvs.cxx (class CvsImplementation): Since the tag filter
987        is back to cmtcvs.cxx, the temporary forced tag filter in CMT is
988        removed.
989
990        * src/setup.zsh: upgrade the completion for the broadcast command.
991
992        * src/cmt_parser.cxx (do_broadcast): Make the -select independent
993        of the -local or -global options. This is achieved by adding a
994        "path_selections" list only managed by the -depth, -local -global
995        modifiers while the "selections" list is managed by the -select
996        modifier. The -exclude is left unchanged.
997
9982001-08-22  Christian Arnault  <carnault@lxplus024.cern.ch> 36
999
1000        * src/cmt_cvs.cxx (class CvsImplementation): Add the possibility
1001        to transmit a flag to the CVS pluggin, by inserting a /cmtcvstest
1002        in the module name to import. This will have to be decoded by the
1003        CVS pluggin itself !!
1004
10052001-08-21  Christian Arnault  <carnault@lxplus013.cern.ch> 35
1006
1007        * src/setup.tcsh: Improving the tcsh completion mechanism (for cmt co).
1008
1009        * src/setup.zsh: Improving the zsh completion mechanism (for cmt co).
1010
1011        * src/cmt_cvs.cxx (class CvsImplementation): Converging on HEAD
1012        management strategy...
1013
1014        Starting implementation of the Atlas filter for CVS tags right
1015        into cmt_cvs.cxx rather than inside the CVS pluggin...
1016
10172001-08-20  Christian Arnault  <carnault@lxplus028.cern.ch> 34
1018
1019        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
1020        recursive checkout process
1021
10222001-08-20    <arnault@lal.in2p3.fr> 33
1023
1024        * src\cmt_cvs.cxx (class CvsImplementation): Reorganizing some CVS operations:
1025          - Apply the CMTCVSOFFSET env. variable to all actions (tags, branches, subpackages)
1026          - cleanup checkout algorithms (remove some obsolete variables)
1027          - add the -requirements <requirements-file-path> option to checkout according to
1028            a set of use statements.
1029          - remove the inheritance to Awk of CvsImplementation to split the filter into 2
1030            phases (implemented as 2 separated Awk derived classes) RecursivePass1 and
1031            RecursivePass2.
1032
10332001-08-16  Christian Arnault  <carnault@lxplus046.cern.ch> 32
1034
1035        * src/cmt_symbol.cxx (print): Bug in path_remove when the
1036        specified path variable only contained one item : the remove
1037        operation was not applied.
1038
10392001-07-20  Christian Arnault  <arnault@lal.in2p3.fr> 31
1040
1041        * src/cmt_version.h: setting the patch v1r9p20010720
1042
10432001-07-20  Christian Arnault  <carnault@lxplus019.cern.ch> 30
1044
1045        * src/cmt_regexp.h (cmt_regexp::begin): Add an optional pos
1046        argument to the begin method.
1047
1048        * doc/CMTDoc.html: Improvements, English cleanup...
1049
10502001-07-18  Christian Arnault  <carnault@lxplus041.cern.ch> 29
1051
1052        * src/cmt_cvs.cxx (CvsImplementation::checkout_package): Change
1053        the mechanism to get top files, since the " -d . " does not work
1054        anymore when CVSROOT is set to kserver!!!!
1055
10562001-07-16  Christian Arnault  <carnault@lxplus030.cern.ch> 28
1057
1058        * doc/CMTDoc.html: Old PREFIX fragment variable has been replaced
1059        by FILEPATH long ago. This was not upgraded in the doc.
1060
1061        * fragments/constituent: The -f <file> MUST be specified BEFORE
1062        other Make flags!!
1063
1064        * fragments/dependencies: Tried to comment out the dependencies to
1065        cmt_path.make etc... but it confused the dependencies fragment
1066        production. Uncomment it but need to understand the side effect.
1067
10682001-07-09  Christian Arnault  <carnault@lxplus012.cern.ch> 27
1069
1070        * src/cmt_generator.cxx (build_readme): Bug: the VERSION variable
1071        was not used for installing the readme_trailer (although the
1072        documentation was mentioning it)
1073
10742001-07-04  Christian Arnault  <carnault@lxplus034.cern.ch> 26
1075
1076        * src/cmt_version.h: setting the patch v1r9p20010704
1077
10782001-07-02  Christian Arnault  <carnault@lxplus034.cern.ch> 25
1079
1080        * fragments/dependencies: Cleaning some old debug printouts.
1081
1082        * src/cmt_cvs.cxx (class CvsImplementation): Bug in replacing the
1083        wild card expression. v5r* has to be replaced by v5r0 while v5*
1084        has to be replaced by v5 in case no matching tag exists in the CVS
1085        repository.  Other bug : All split operations should be performed
1086        against " \t" (include tab character)
1087
10882001-06-29  Christian Arnault  <carnault@lxplus047.cern.ch> 24
1089
1090        * src/cmt_cvs.cxx (class CvsImplementation): Final Validation of
1091        the change in the implementation of the m_installed stack used to
1092        avoid recursion due to dependency cycles.
1093
10942001-06-22  Christian Arnault  <carnault@lxplus020.cern.ch> 23
1095
1096        * src/cmt_cvs.cxx (class CvsImplementation): doing some
1097        optimizations for the big checkout operations.
1098
1099        * src/cmt_parser.cxx (do_config): Remove .[n]make files also from
1100        the binary directory.
1101
1102        * src/cmt_cvs.cxx (class CvsImplementation): Always fetch the cmt
1103        branch at HEAD even if the checkout operation is applied to a
1104        required tag (temporary feature).
1105
11062001-06-18    <arnault@lal.in2p3.fr> 22
1107
1108        * src\cmt_cvs.cxx (class CvsImplementation): insert a space
1109        between top tags and other tags.
1110
1111        * mgr\cmt_make_shlib.bat: Write extra options received through
1112        arguments into a temporary option file, used by @<optionfile> to
1113        resolve line-too-long prolems.
1114
1115        * fragments\nmake\cpp_library:
1116        * fragments\nmake\cpp:
1117        Add the /Tp qualifier for allowing non-standard file suffixes.
1118
11192001-06-05  Christian Arnault  <arnault@lal.in2p3.fr> 22
1120
1121        * src/cmt_use.cxx (class use_action_iterator): Default to the
1122        -no_auto_import was to keep the most recent specification. Change
1123        this to always request auto_import by default, (unless otherwise
1124        specified)
1125
11262001-06-01  Christian Arnault  <arnault@lal.in2p3.fr> 22
1127
1128        * src/cmt_parser.cxx (do_broadcast): Bug fix in do_broadcast: the
1129        -begin option wrongly implied the -global option.
1130
11312001-06-13    <arnault@lal.in2p3.fr> 22
1132
1133        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
1134        strategy for getting version tags from the repository:
1135          o If a request specifies a tag which is not applied to the
1136            requirements file, the specified tag is used to create the
1137            version directory but the HEAD is used in the repository.
1138          o CvsImplementation::show_cvs_infos () :
1139            stores all received infos into xxx_info corresponding
1140            local properties. Thus this method is only called once per
1141            package.
1142          o Error messages are really obtained from the error_info field.
1143
11442001-05-30  Christian Arnault  <arnault@lal.in2p3.fr> 22
1145
1146        * src/cmt_generator.cxx (build_document_makefile):
1147        * src/cmt_system.cxx (get_dot_suffix): fix bug for file_names
1148        without any suffix
1149
1150        * src/cmt.h & src/cmt_parser.cxx (set_standard_macros): Add a
1151        state standard_macros_done to protect against multiple calls to
1152        set_standard_macros.
1153
11542001-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 22
1155
1156        * src/cmt_cvs.cxx (class CvsImplementation): display the tags in a
1157        one-per-line basis instead of space separated when doing cmt
1158        cvstags.
1159
1160        * src/cmt_use.cxx (operate): Make the version selector operator a
1161        little bit more quiet...
1162
11632001-05-25  Christian Arnault  <arnault@lal.in2p3.fr> 22
1164
1165        * mgr/Makefile (demo): improve the gmake check action in the demo
1166        target.
1167
1168        * src/cmt_use.cxx (fill_macro_all): build use_xxx standard macros
1169        using macro_append instead of macro.
1170
11712001-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 22
1172
1173        * src/cmt_parser.cxx (do_broadcast): Fix the default (-local)
1174        option to act as -depth=1.
1175        Improve some error messages.
1176
11772001-05-21    <arnault@lal.in2p3.fr> 21
1178
1179        * src\setup.bat: Improved skeleton for setup.bat. Base it on
1180        CMTBIN rather than on CMTCONFIG. Do not override CMTCONFIG if
1181        defined by the user. Do not care about PATH for Visual tools.
1182
1183        * mgr\install.mak: change the strategy for building the setup.bat
1184        script for CMT itself at INSTALL time. Now copy ..\src\setup.bat
1185        skeleton.
1186
1187        * mgr\requirements: Fix WIN32/VisualC tag definitions and PATH
1188        settings for cleaner handling of default tag overriding.
1189
1190        * src\cmt_use.cxx (operate): Implement the algorithm for using
1191        aliases to alternate version specification in uses.
1192
1193-------------------------------------------------------------------------------------
11942001-05-18  Christian Arnault  <arnault@lal.in2p3.fr> 21
1195
1196        -> Tag CMTv1r9p20010521
1197
1198        * src/cmt_use.cxx (show_sub_uses): Start the implementation of
1199        version_alias and path_alias for equivalencing two version naming
1200        policies.
1201
1202        * src/cmt_cvs.cxx (class CvsImplementation): Adding the -o offset
1203        option to cmt checkout for specifying a global offset to the base
1204        CVS repository. This offset will be prepended to all modules
1205        during the various CVS operations.
1206
1207        the m_offset attribute is added to the CvsImplementation class.
1208
1209        (class CvsImplementation): Improve protection against CVS modules
1210        not found.
1211       
1212        (class CvsImplementation): Added the --help option the cmt checkout.
1213
12142001-07-10  Christian Arnault  <carnault@lxplus017.cern.ch> b-21
1215
1216        * mgr/requirements: add the -tag=$(tag) option to the
1217        build_dependencies macro.
1218
1219        * fragments/dependencies: take the improvements into account.
1220
1221        * src/cmt_generator.cxx (build_dependencies): Improve the
1222        dependency builder: re-generate all entries of the
1223        <constituent>_dependencies.make that are missing from the complete
1224        source list (thus regenerate it when it is empty).
1225        Optimize the file scan for getting the new source list.
1226
1227        * src/cmt_parser.cxx (do_build_dependencies): Dynamically shifts
1228        arguments of the build dependencies command to keep only the
1229        new-source-list. The complete command being
1230        "cmt <args> build dependencies <constituent-name> <new-source-list>"
1231       
1232        (do_config): drop all makefile fragments from the mgr/cmt
1233        directory AND from the binary directory.
1234
12352001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 20
1236
1237        Moving to v1r8
1238       
1239       
12402001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 19
1241
1242        * src/cmt_deps_builder.cxx ((istream& input,
1243                               const cmt_string& dir_name,
1244                               int current_path_index,
1245                               const CmtSystem::cmt_string_vector& include_paths,
1246                               const CmtSystem::cmt_string_vector& substitutions,
1247                               CmtSystem::cmt_string_vector& all_deps,
1248                               CmtSystem::cmt_string_vector& deps)): Augmented local internal
1249        line buffer (from 1024 to 16384).
1250
1251        * doc/CMTDoc.html: document the new <package>_root macro
1252
1253        * src/cmt_parser.cxx (set_standard_macros) (get_best_form): Define
1254        a new set of standard macros using the pattern <package>_root
1255        similar to <PACKAGE>ROOT except that this new definition uses the
1256        get_best_form, with a relative path to the package. The
1257        <PACKAGE>ROOT macro is restored to the previous convention, that
1258        it uses the absolute path.
1259       
1260        * src/cmt_use.cxx (fill_includes_macro): Adapt the
1261        fill_includes_macro to use the new <package>_root standard macro
1262
1263
12642001-05-10  Christian Arnault  <arnault@lal.in2p3.fr> 18
1265
1266        * src/cmt_parser.cxx (do_broadcast): Add the -begin=<pattern>
1267        option to start the broadcast loop from a given package. This
1268        option can be combined with other options such as -select or
1269        -exclude.
1270
1271        * src/cmt_generator.cxx (filter_paths): Suppress two unused
1272        variables.
1273
1274        * src/cmt_use.cxx (add): Bug fixing: during the discovery of
1275        versions requested for a given package, the discarded versions
1276        were not correctly replaced by the finally selected version,
1277        especially in the Use::get_paths method. The
1278        Use::get_selected_version has been added to obtain the effective
1279        replacement for a discarded version.
1280
1281        * fragments/check_application: suppress the ". setup.sh" before
1282        application run.
1283
12842001-05-04  Christian Arnault  <carnault@lxplus023.cern.ch> 17
1285
1286        * src/cmt_parser.cxx (set_standard_macros): The production of all
1287        use_xxx standard macros now is based on a "macro_append" keyword
1288        instead of "macro", since "macro" resets all previous
1289        definitions. Therefore if the user's requirements did augment
1290        those use_xxx macros, these specifications would be ignored.
1291       
1292        (do_broadcast): Set the -local option to broadcast the
1293        default. Add the -global option to revert to the old default (with
1294        no selection and to any depth)
1295
12962001-05-03  Christian Arnault  <carnault@lxplus019.cern.ch> 17
1297
1298        * src/cmt_symbol.cxx (add_value_to_list): A new macro or set
1299        keyword resets (discards) all previous definitions for the
1300        corresponding symbol.
1301
1302        * src/cmt_symbol.h (class SymbolValueList): Added an attribute
1303        discarded for symbol resetting.
1304
1305        * src/cmt_parser.cxx (print_macros): Exclude scripts from macros
1306        defined in the $(tag).make file.
1307
13082001-04-27  Christian Arnault  <carnault@lxplus022.cern.ch> 16
1309
1310        * src/cmt_parser.cxx (get_best_form): Validate the compression
1311        algorithm for paths to packages (only for the macro <PACKAGE>ROOT
1312        - this is still not true for the <PACKAGE>ROOT environment
1313        variable) into a relative form when it is shorter than the
1314        absolute form.
1315
1316        * src/cmt_system.cxx (compress_path): Fix the algorithm for
1317        compressing the patterns "aaaa/xxxx/../bbbb" into aaaa/bbbb.
1318
1319        * src/cmt_generator.cxx (filter_paths): use
1320        CmtSystem::compress_path instead of duplicating its algorithm for
1321        erasing "/aaa/.." patterns
1322
13232001-04-25  Christian Arnault  <carnault@lxplus022.cern.ch> 15
1324
1325        * src/cmt_parser.cxx (set_standard_macros): Prepare the production
1326        of <PACKAGE>ROOT macros as relative paths rather than absolute
1327        ones, when the relative expression is shorter than the absolute
1328        one. Temporarily, trigger that feature by setting the
1329        CMTTESTPREFIX environment variable until absence of side effects
1330        is confirmed.
1331
13322001-04-18  Christian Arnault  <carnault@atlas009.cern.ch> 15
1333
1334        * src/cmt_generator.cxx (build_readme): bug when generating the
1335        readme_trailer fragment : the PACKAGE variable should be reset to
1336        current.
1337
13382001-04-11  Christian Arnault  <arnault@lal.in2p3.fr> 15
1339
1340        * src/cmt_generator.h (class Generator):
1341        * src/cmt_parser.cxx (do_build_readme):
1342        * src/cmt.h (class Cmt): do_build_readme now propagates argument list
1343
1344        * fragments/readme_trailer:
1345        * src/cmt_generator.cxx (build_readme): Added DATE and USER information when building the README.html file. readme_trailer fragment updated accordingly.
1346       
1347        (build_readme): Add the -url=<url> argument to the cmt build
1348        readme command. The specified URL will be used in place of the
1349        package path when generating the URL for used packages.
1350
13512001-04-18  Christian Arnault  <arnault@lal.in2p3.fr> 14
1352
1353        * src/cmt_symbol.cxx (build): In all builder objects, symbol value
1354        lists registered by discarded Uses are now ignored.
1355
1356        * src/cmt_symbol.h (class SymbolValue): cleanup a comment.
1357
1358        * src/cmt_symbol.cxx (print): protect setup script execution
1359        against missing files.
1360
13612001-04-10  Christian Arnault  <arnault@lal.in2p3.fr> 13
1362
1363        * src/cmt_generator.cxx (build_readme):
1364        * fragments/readme_use: building readme.html requires to know the
1365        mgr/cmt style of each used package. This fragment now requires a
1366        fourth variable MGRSTYLE which reflects the use->mgr_style
1367        attribute. Generator::build_readme fills in this new variable.
1368
13692001-04-06  Christian Arnault  <arnault@lal.in2p3.fr> 12
1370
1371        * src/cmt_parser.cxx
1372        (reach_current_package): Use CmtSystem::getenv instead of base getenv
1373       
1374        * src/cmt_symbol.cxx (action): Now really private stuff is
1375        selected when access is at UserMode and scope is Private.
1376
1377        * src/cmt_use.cxx (add): This method does not need to maintain
1378        current scope and access mode any longer.
1379
1380        * src/cmt_parser.cxx (parse_requirements): Cmt::parse_requirements
1381        now manages the AccessMode and Scope when recursing into
1382        requirements files of used packages.
1383
1384        Cmt::scope          handles the sticky state provided by private/public statements
1385        Cmt::current_access handles the access mode that reflects the situation of the user
1386
1387        * src/cmt_parser.h (enum): introduce the AccessMode to distinguish
1388        between DeveloperMode (when pwd is in the current package
1389        directory) and UserMode (otherwise).
1390
1391        * src/cmt.h (class Cmt): Cmt::current_mode is now current_access
1392        and is of type AccessMode
1393
1394        * src/cmt_parser.cxx (reach_current_package): Use
1395        CmtSystem::getenv instead of base getenv
1396
1397        * src/cmt_use.cxx (Use::get_paths):
1398        * src/cmt_pattern.cxx (Pattern::apply ()) : bug in computing the
1399        path between two Uses. The result now includes the current Use.
1400
14012001-04-05    <arnault@lal.in2p3.fr> 12
1402
1403        * src\cmt_tag.cxx (Tag::add(const cmt_string& name, int priority):
1404        clear a newly created Tag object (to deal with the reuse of old
1405        objects)
1406
1407        * src\cmt_pattern.cxx (Pattern::add) : clear a newly created
1408        pattern object (to deal with the reuse of old objects)
1409
1410        * src\cmt_use.h (class Use): Add Use::author_action and
1411        Use::manager_action to fill in the author and manager information.
1412
1413        * src\cmt_parser.cxx (select): fill in author and manager values
1414        with the complete line. When several author and manager statements
1415        are provided, fill in as several lines (separated with a new-line).
1416
1417        * src\cmt_generator.cxx (analyze_file (const Constituent&
1418        constituent, const cmt_string& file) : production of objects for
1419        libraries and applications is strictly identical.
1420
14212001-04-03  Christian Arnault  <arnault@lal.in2p3.fr> 11
1422
1423        * src/cmt_constituent.cxx (clear): constituent.parameters was not
1424        cleared in Constituent::clear
1425
1426        * src/cmt_symbol.cxx (build): add cleanup ValueList objects after
1427        their addition for ensuring a really new value (due to cmt_string
1428        optimizing)
1429
14302001-04-03  Christian Arnault  <carnault@atlas006.cern.ch> 10
1431
1432        * mgr/Makefile: Operate the demo targets on different make action
1433        lines
1434
1435        * src/Makefile.header: Added -tag=$(tag) to cmt actions
1436
1437        * fragments/generator_header: create the output directory if
1438        needed
1439
14402001-04-02    <arnault@lal.in2p3.fr> 9
1441
1442        * fragments\nmake\constituent: added the -tag=$(tag) option to cmt
1443        build actions
1444
1445        * src\cmt_parser.cxx (parser): show_constituentxxx recursively
1446        reads used requirements files
1447
1448        * src\cmt_pattern.cxx (Pattern::apply () const): protection added
1449        for the case where the pattern is applied to the package that
1450        defines it.
1451
14522001-03-29  Christian Arnault  <carnault@atlas005.cern.ch> 8
1453
1454        * src/cmt_use.cxx (get_paths):
1455        * src/cmt_use.h (class Use):
1456        * src/cmt_pattern.h (class IgnorePattern):
1457        * src/cmt_pattern.cxx (const apply): Bug in apply global patterns
1458        : a pattern defined in one package should only be applied to the
1459        Uses that are on one of the paths between the current Use and the
1460        one wher the pattern is defined (and not to the Uses that never
1461        pretend to inherit that pattern!!!)
1462
1463        This required to implement the Use::get_paths which fills in the
1464        inclusive list of all Uses that are between two Uses.
1465
14662001-03-27  Christian Arnault  <carnault@lxplus017.cern.ch> 7
1467
1468        * fragments/dependencies: protection against missing dependency
1469        make fragment during clean operations.
1470
1471        * src/cmt_constituent.cxx (class constituents_action_iterator):
1472        the -suffix= option was hidden by the user variable specification
1473        while parsing the constituent parameters.
1474
14752001-03-23  Christian Arnault  <carnault@atlas007.cern.ch> 6
1476
1477        * mgr/requirements: clean up WIN32 tag variants definitions
1478
1479        * src/Makefile.header (setup.make): Display of the target in case
1480        of target not found (.DEFAULT)
1481
1482        * fragments/make_setup (csh): few checks
1483
1484        * fragments/installer: add the creation of $(install_dir) if
1485        needed
1486
14872001-03-21  Christian Arnault  <arnault@lal.in2p3.fr> 5
1488
1489        * src/cmt_parser.cxx (parse_arguments): When the tag specified in
1490        the command line arguments (using -tag=<tag>) is the same as
1491        CMTCONFIG, then still validate the tag given by uname
1492
1493        * fragments/dependencies: generate
1494        ${CONSTITUENT}_dependencies.make into $(bin)
1495
1496        * fragments/constituent: generate ${CONSTITUENT}.make into $(bin)
1497
1498        * src/cmt_constituent.cxx (parse):
1499        * src/cmt_constituent.h (class Constituent): Added the two-step
1500        parsing of the constituents specifications : first stage during
1501        parsing of the requirements file, parameters are simply stored in
1502        the constituent object and not interpreted. Second stage : after
1503        building the standard macros (once requirements files have
1504        entirely been read) then constituent objects are parsed.
1505
1506        * src/cmt_parser.cxx: Add Constituent::parse_all in
1507        Cmt::set_standard_macros to finalize the constituent
1508        parsing. Install set_standard_macros in several additional actions
1509
1510
1511
15122001-03-16  Christian Arnault  <arnault@lal.in2p3.fr> 4
1513
1514        * src/cmt_cvs.cxx (class CvsImplementation): Get the files at the
1515        top directory when doing a cmt checkout. 
1516
1517        Only checkout at head for the top package (ie do not recurse at
1518        head) and when -r is not specified.
1519
1520        * src/cmt_symbol.cxx (resolve_value_for_macros): Perform the
1521        substitution of ${} to %% (or reverse) even if the env. var. is
1522        not defined in CMT.
1523
1524        * src/cmt_parser.cxx (install_setup_scripts): Setup scripts on
1525        Windows generate the temporary expansion script in
1526        %HOMEDRIVE%%HOMEPATH%.
1527
15282001-03-16  Christian Arnault  <carnault@atlas009.cern.ch> 3
1529
1530        * mgr/requirements: clean up variants for VisualC and
1531        VisualC/debug
1532
15332001-03-15    <arnault@lal.in2p3.fr> 2
1534
1535        * src\cmt_use.cxx (class use_action_iterator): Strange name
1536        conflict: the use_action_iterator::set method is in conflict with
1537        something else when the class is named "action_iterator" (is it a
1538        conflict with the same private class defined in Symbol.cxx ??)
1539
1540        * src\NMakefile.header (cmtexe): Fix for re-building cmt when
1541        cmt.exe does not exist.
1542
15432001-03-13  Christian Arnault  <arnault@lal.in2p3.fr> 1
1544
1545        * src/cmt_use.cxx (class action_iterator): Introducing the
1546        action_iterator class for managing the local expansion of macros
1547        in the syntax parser (similart to what was done in Symbol::action)
1548
1549        * src/cmt_generator.cxx (Generator::build_make_setup) when
1550        generating setup.make, the default value for constituents is
1551        extracted from the constituents macro.
1552
15532001-03-06  Christian Arnault  <arnault@lal.in2p3.fr>
1554
1555        * src/cmt_cvs.cxx (class CvsImplementation): Show both top tags
1556        and non-top tags in cmt cvstags.
1557
1558        * doc/CMT.htm: Addition of several slide shows (from Atlas)
1559
1560        * mgr/cmt_buildcvsinfos2.sh (error): The awk script had to be
1561        protected against multiple ocurrences of the /symbols/,/locks/
1562        pattern.
1563
1564        Implement both in python and in shell script the differntiated
1565        production of top tags and non-top tags. Top tags are the set of
1566        tags sharing the most recent CVS tagged version id (ie. the HEAD
1567        may be more recent)
1568
15692001-03-05    <arnault@lal.in2p3.fr>
1570
1571        * src\cmt_parser.cxx (do_build_library_links): Handle libraries
1572        specified as a full path in <package>_libraries
1573
1574        * src\cmt_parser.cxx (print_context):
1575        * src\cmt_symbol.cxx (all_print): Use one line per
1576        env. var. assignment when generating setup scripts (instead of ;
1577        separated instructions) . The latter style should be no longer
1578        needed since we use temporary files.
1579
1580        * src\cmt_parser.cxx (set_standard_macros): Add CMTCONFIG to the
1581        standard sets, so as to let it known as a plain "symbol"
1582
15832001-03-02    <arnault@lal.in2p3.fr>
1584
1585        * src\cmt_system.h: introduce the CmtSystem::ev_open () and
1586        CmtSystem::ev_close () to get the OS-dependent pattern for
1587        environment variable definition.
1588
1589        * src\cmt_symbol.cxx (resolve_value_for_macros): Substitute
1590        patterns ${xxx} or %xxx% to the appropriate OS-dependent pattern
1591        when producing "set" values only (this is only done when the
1592        pattern is not already the good one)
1593
1594        * src\cmt_parser.cxx (install_setup_scripts): Changed
1595        >>${tempfile} into >${tempfile} in setup scripts (fix a constraint
1596        in csh)
1597
15982001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>
1599
1600        * src/cmt_parser.cxx (do_build_temporary_name): Add the build
1601        temporary_name command to supply that missing function on various
1602        shells.
1603        (install_test_setup_scripts): Apply this new build service to
1604        setup scripts generation.
1605
1606        * src/Makefile.header: Needed a trailing end-of-line
1607
16082001-02-15  Christian Arnault  <arnault@lal.in2p3.fr>
1609
1610        * src/cmt_cvs.cxx (class CvsImplementation): Fix misuse of
1611        checkout_package arguments (confusion between package path and
1612        checkout directory)
1613
16142001-02-26    <arnault@lal.in2p3.fr>
1615
1616        * src\cmt_parser.cxx (install_test_setup_scripts): use mktemp for
1617        setup scripts.
1618
1619        * mgr\requirements: Suppress local private configuration of
1620        MSVC++. It has to be done previously to operate on CMT (even
1621        before making the INSTALL.bat)
1622
16232001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>
1624
1625        * src/cmt_deps_builder.cxx ((char* ptr,
1626                              state_def& state,
1627                              const cmt_string& dir_name,
1628                              int current_path_index,
1629                              const CmtSystem::cmt_string_vector& include_paths,
1630                              const CmtSystem::cmt_string_vector& substitutions,
1631                              CmtSystem::cmt_string_vector& all_deps,
1632                              CmtSystem::cmt_string_vector& deps)
1633        * src/cmt_generator.cxx ((const cmt_string& file_name)
1634
1635        Rollback recent change to work on cmt_strings rather than char* to
1636        restore speed.
1637
16382001-02-15  Christian Arnault  <arnault@lal.in2p3.fr>
1639
1640        * src/cmt_generator.cxx (build_dependencies): Restore the
1641        mechanism that takes into account the arguments, and the source
1642        list when -all_sources option is provided.
1643
1644        * mgr/requirements: change /machine:I386 into /machine:IX86 as
1645        link option for VisualC
1646
16472001-02-13    <arnault@lal.in2p3.fr>
1648
1649        * src\cmt_generator.cxx (build_dependencies): Do not require the
1650        source list from the arguments. Instead, get the sources directly
1651        from the constituents definition.
1652
1653        The "cmt build dependencies" now only requires the constituent name.
1654
1655        * src\cmt_deps_builder.cxx: Read files at once into a cmt_string
1656        and work from the text instead of reainf line by line from the file.
1657
1658        Install the detection of fortran include statements
1659
16602001-02-06    <arnault@lal.in2p3.fr>
1661
1662        * src\cmt_use.cxx: clean up space & tabs
1663
1664        * cmt_parser.cxx (parse_requirements_text): Abort the parser in
1665        case of error, but only for check configuration command.
1666
1667        * NMakefile.header (lex_echo): Add -quiet option to cmt command
1668        except cmt check configuration
1669       
1670        * constituents.nmake: Add -quiet option to cmt command
1671
16722001-01-30    <arnault@lal.in2p3.fr>
1673
1674        * all dsp fragments : suppress the Win32 Release
1675        configuration. Only keep the Win32 Debug. This makes possible the
1676        generation of msdev using the syntax cmt build msdev
1677        -tag=VisualCdbg
1678
16792001-01-30    <arnault@lal.in2p3.fr>
1680
1681        * Add cmt_buildcvsinfos.py first attempt to make the cvs script
1682        written in Python
1683
1684        * requirements: Consistently base Windows tag on VisualC rather
1685        than WIN32
1686
1687        upgraded setup.tcsh setup.zsh
1688
1689        introduced cmt show include_dirs
1690       
1691        introduced cmt show constituent <name>
1692
1693        bug in Pattern::add : overridden patterns were not cleared.
1694
1695        cmt config must recursively get used packages (at least to get patterns)
1696
1697        introduced cmt show pattern_names (at least for completion mechanisms) 
1698          new action : action_show_pattern_names
1699
1700        experimental work started on build triggers
1701       
1702          macro build_triggers
1703                implied_library_prefix
1704                implied_library_sufffix
1705
1706          new library option -triggers
1707          new constituent attribute build_triggers
1708          new fragment dependencies_and_triggers for libraries
1709
1710        bug in cmt_system.cxx::scan_dir
1711
1712        Recursively get all requirements file in cmt config action
1713
1714
1715        Changed strategy for argument parsing error detection
1716       
17172001-01-30    <arnault@lal.in2p3.fr>
1718
1719        * cmt_use.cxx ((const cmt_string& from_path) : bug in detection of
1720        "use pack " without version specification at all (ie equiv. to
1721        *). We needed to check we are on a real CMT package.
1722
1723        * cmt_constituent.cxx (class action_iterator): Expand the macros
1724        before acting upon a constituent specification. Each expanded word
1725        may then result in several words. Thus the line parser is
1726        re-implemented through a local operator class "action_iterator",
1727        in charge of filling up a new constituent object from the expanded
1728        statement. (Note that this mechanism could perfectly be reused for
1729        other statements eg "use" !!!)
1730
1731        * cmt_parser.cxx (set_standard_macros): Implement all_constituents
1732        and all_constituentsclean unconditionally.
1733
1734        * NMakefile.header (checkuses): if defined statements require that
1735        the macro to test is provided without quotes.
1736
1737        * cmt_generator.cxx: Apply the new convention of installing object
1738        files into $(bin)${CONSTITUENTS} also for applications (was only
1739        done for libraries)
1740
1741        * cmt_parser.cxx (print_context): Take the current CONFIG name
1742        from CmtSystem::get_cmt_config rather than recursively calling
1743        "cmt system", when generating setup scripts.
1744
1745        * cmt_cvs.cxx (class CvsImplementation): Use '/' ínstead of
1746        CmtSystem::file_separator for CVS-only file specs.
1747
17482000-12-26    <arnault@lal.in2p3.fr>
1749
1750        * cmt_fragment.h (class Fragment and FragmentHandle): Install all
1751        variants of (win)copy methods that act upon a cmt_string instead
1752        of a FILE*.
1753
1754        * cmt_model.cxx: Create the implementation file for CmtModel
1755
1756        * cmt_model.h (class CmtModel): Create the CmtModel class
1757
1758        * cmt_parser.cxx (do_expand_model): Add the new command verb :
1759        'expand model' and all associated features
1760        (do_expand_model): call the CmtModel::expand
1761
Note: See TracBrowser for help on using the repository browser.