source: CMT/v1r19/ChangeLog@ 17

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

Force refresh of dependencies - see CL 259

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