Fixing the Dreaded *.mk Error in DBD::Oracle insalls
If you have ever had this message:
Unable to locate an oracle.mk, proc.mk or other suitable *.mk
file in your Oracle installation. (I looked in…)
It can be a very frustrating one to track down.
I have seen it across almost all platforms and versions of Oracle but what it boils down to is that you are quite simply:
1) Missing some part of your Oracle Client or
2) Part of your Oracle Client is some place where the Makefile.PL cannot find it or
3) Part of your Oracle Client is buried inside a resource or a symbolic link or
4) Oracle has moved or removed files that DBD::Oracle needs to compile.
Well what to do then??
There is no 100% answer for this problem but there seems to be two main scenarios where I have encountered this and have come up with somewhat of a solution:
1) If you are attempting to build against any of Oracle’s Instantclients you most likely have only have the basic install available. To correct this simply make sure you get the SDK and SQLPlus downloads as well and try compiling again.
2) If you are installing against an 11g instance (Oracle seems to have moved a number of things about depending on the platform) then you best bet would be to give this a try:
Perl Makefile.PL -l
which forces the compile to user the “direct link” method thus bypassing the *.mk files. Expect much more output and a longer compile time when you take this route but it should work exactly the same.