source: CMT/v1r19/ChangeLog@ 23

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

tune warnings - see CL262

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