On Wed, Jan 11, 2006 at 10:22:18AM +0000, Tim Bunce wrote:
> > Running
> >
> > ORACLE_HOME=/usr/lib/oracle/10.2.0.1/client/lib perl Makefile.PL -m
> > /usr/share/oracle/10.2.0.1/client/demo.mk
> >
> > seems to go well for the Makefile.PL, but make is not able to find
> > the header files. So it seems that some more tweaking will be needed
> > for .rpm instalations of Instant Client where the only common path of
> > the installation is /usr.
>
> I've added /usr/include/oracle/$client_version_full/client to the list
> of directories searched for header files[1], and added an option to
> explicitly add an extra directory to the front of that list.
The directory returned by find_headers is the full
/usr/include/oracle/10.2.0.1/client
path (in my case). The code
map { "-I$OH/$_" }
make it into
-I/usr/lib/oracle/10.2.0.1/client//usr/include/oracle/10.2.0.1/client
for my value of
ORACLE_HOME=/usr/lib/oracle/10.2.0.1/client
So in my case (but I'm not sure what the general goal of that code is),
just prepending -I (and not -I$OH) fixed the compilation.
--- Makefile.PL.orig 2006-01-16 14:40:52.000000000 +0100
+++ Makefile.PL 2006-01-16 14:51:55.000000000 +0100
@@ -635,7 +635,7 @@
my $OCIINCLUDE = expand_mkvars($MK{INCLUDE} || '', 0, 0);
# $OCIINCLUDE .= " -I$OH/rdbms/demo";
my @h_dirs = find_headers();
- my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
+ my $inc = join " ", map { "-I$_" } @h_dirs;
$opts{INC} = "$inc $OCIINCLUDE -I$dbi_arch_dir";
}
@@ -1298,6 +1298,7 @@
sub expand_mkvars {
my ($string, $strip, $backtick, $level, $maxlevel) = @_;
+ return unless defined $string;
$level ||= 1;
local($_) = $string;
print "$level Expanding $_\n" if $::opt_d;
--
------------------------------------------------------------------------
Honza Pazdziora | [EMAIL PROTECTED] | http://www.fi.muni.cz/~adelton/
.project: Perl, mod_perl, DBI, Oracle, large Web systems, XML/XSL, ...
Only self-confident people can be simple.