source: CMT/v1r19/ChangeLog@ 16

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

Finalizing R&D on project and strategy management - see CL258

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