source: CMT/v1r19/ChangeLog@ 21

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

Work on the doc

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