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.