source: CMT/v1r19/ChangeLog@ 22

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

create project improvements - see CL261

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