Subject: Making DBD::Oracle with Instant Client 10.1.0.3

From: [email-masked]
Date: Wed, 2 Feb 2005 13:09:58 +0900

Hi all,

Thanks to the devel package, I've got succeeded in making DBD::Oracle
with the Oracle Instant Client 10.1.0.3, no *.mk files, in my linux box.
My recipe is:

1) install both basic- and devel-10.1.0.3 rpm packages
2) export ORALCE_HOME="/usr/lib/oracle/10.1.0.3/client"
3) export LD_LIBRARY_PATH="$ORACLE_HOME/lib:$LD_LIBRARY_PATH"
4) modify the Makefile.PL file to bypass the find_headers() routine and
   to pass a correct -I flag to cc (the attached dirty patch is FYI)
5) execute the Makefile.PL * with the -l option *, perl Makefile.PL -l
6) make && make test && make install
#  I got many errors in t/30long.t (retrieving blobs ?)
#  but it seems to work fairly.

I hope this could help those who are annoyed with the "Unable to locate an
oracle.mk,..." error.

Happy DBing,

Satoshi

--- Makefile.PL.orig	2004-10-22 18:07:04.000000000 +0900
+++ Makefile.PL	2005-02-02 12:39:56.703125000 +0900
@@ -276,7 +276,7 @@
     print "Oracle sysliblist: $syslibs\n";
     my $libdir = ora_libdir();
     $opts{dynamic_lib} = { OTHERLDFLAGS => "$::opt_g" };
-    my @h_dirs = find_headers();
+#    my @h_dirs = find_headers();
     if ($client_version_full =~ /^8.0.6/ && $os eq 'hpux') {
 	$linkwith_msg = "-lextp -l$lib.";
 	$opts{LIBS} = [ "-L$OH/$libdir -lextp -l$lib $syslibs" ];
@@ -286,7 +286,8 @@
 	$linkwith_msg = "-l$lib.";
 	$opts{LIBS} = [ "-L$OH/$libdir -l$lib $syslibs" ];
     }
-    my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
+#    my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
+    my $inc = "-I/usr/include/oracle/10.1.0.3/client";
     $opts{INC}  = "$inc -I$dbi_arch_dir";
 }
 else {	# --- trawl the guts of Oracle's make files looking the how it wants to link

---

From: [email-masked]
Date: Thu, 3 Feb 2005 11:46:07 +0900

Hi Tim,

Thank you for your kind reply.

I found my patch will cause a compilation error for the local variable
@h_dirs gets into undefined after commenting out the line 279.  
It should be corrected as following:

+    my @h_dirs;
+    my $inc = "-I/usr/include/oracle/10.1.0.3/client"

I'm not a dbi-users member so I can't reply my post... I wonder if you can do it.

Thanks,

Satoshi