source: CMT/v1r19/ChangeLog@ 24

Last change on this file since 24 was 24, checked in by arnault, 21 years ago

Fix project creation - CL 263

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