1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
package AutomakeWorkspaceHelper;
# ************************************************************
# Description : An Automake Workspace Helper
# Author : Chad Elliott
# Create Date : 9/01/2004
# ************************************************************
# ************************************************************
# Pragmas
# ************************************************************
use strict;
use FileHandle;
use WorkspaceHelper;
use vars qw(@ISA);
@ISA = qw(WorkspaceHelper);
# ************************************************************
# Data Section
# ************************************************************
my(%vals) = ('ACE_ROOT' => '$(top_srcdir)',
'TAO_ROOT' => '$(top_srcdir)',
'ACE_BUILDDIR' => '$(top_builddir)',
'TAO_BUILDDIR' => '$(top_builddir)',
'TAO_IDL' => 'ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl' . "\n" .
'TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf',
);
my(%addon) = ('ACE_ROOT' => {'TAO_ROOT' => '/..',
'TAO_BUILDDIR' => '/..'},
'ACE_BUILDDIR' => {'TAO_ROOT' => '/..',
'TAO_BUILDDIR' => '/..'},
);
# ************************************************************
# Subroutine Section
# ************************************************************
sub modify_value {
my($self) = shift;
my($name) = shift;
my($value) = shift;
if ($name eq 'includedir') {
## TAO/orbsvcs and TAO are like separate projects, so first
## remove the TAO/orbsvcs part and if that doesn't work try
## removing the TAO part. The ACE related values don't need
## any modification.
if (!($value =~ s/^\/TAO\/orbsvcs//)) {
$value =~ s/^\/TAO//;
}
}
return $value;
}
sub write_settings {
my($self) = shift;
my($wsc) = shift;
my($fh) = shift;
my(@locals) = @_;
my($status) = 1;
my($error) = undef;
my($crlf) = $wsc->crlf();
my($pfh) = new FileHandle();
my(%seen) = ();
my($outdir) = $wsc->get_outdir();
foreach my $local (reverse @locals) {
if (open($pfh, "$outdir/$local")) {
while(<$pfh>) {
foreach my $key (keys %vals) {
if (/$key/) {
$seen{$key} = $vals{$key};
}
}
}
close($pfh);
}
else {
$status = 0;
$error = "Unable to open $local for reading.";
}
}
foreach my $key (sort keys %seen) {
print $fh "$key = $seen{$key}";
if (defined $addon{$key}) {
foreach my $add (keys %{$addon{$key}}) {
if ($seen{$add}) {
print $fh $addon{$key}->{$add};
last;
}
}
}
print $fh $crlf;
}
print $fh $crlf;
return $status, $error;
}
1;
|