source: CMT/v1r19/ChangeLog@ 18

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

Project mgmt fixes - See CL 260

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