source: CMT/v1r19/ChangeLog@ 3

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

Various improvements - Introduction of CMTPROJECTPATH - see CL251

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