I'm hacking together a custom Makefile.PL for DBD::Oracle which copies just the needed bits of Oracle into the DBD::Oracle directory and then builds against it. 'make install' then copies the required bits (i.e. the normal DBD::Oracle bits plus two Oracle shared libraries) into the perl tree, the idea being that you can generate a version of perl that can talk to Oracle without requiring a full Oracle client install, with a consequent saving of more than 400Mb of disk space. It all appears to work so far, the only problem being that ExtUtils::Install doesn't propagate symlinks properly. In blib/arch/auto/DBD/Oracle I have this:

lrwxrwxrwx 1 root other 17 Oct 5 22:39 libclntsh.so -> libclntsh.so.10.1
-rw-r--r--   1 root     other    22467396 Oct  5 22:39 libclntsh.so.10.1
-rw-r--r--   1 root     other    3687916 Oct  5 22:39 libnnz10.so
-rw-r--r--   1 root     other          0 Oct  5 22:39 Oracle.bs
-rwxr-xr-x   1 root     other     127824 Oct  5 22:39 Oracle.so

but when this is copied by 'make install' it ends up like this:

-r--r--r--   1 root     other      10902 Oct 19  2004 dbdimp.h
-r--r--r--   1 root     other    22467396 Oct  5 22:39 libclntsh.so
-r--r--r--   1 root     other    22467396 Oct  5 22:39 libclntsh.so.10.1
-r--r--r--   1 root     other    3687916 Oct  5 22:39 libnnz10.so
-r--r--r--   1 root     other      21765 Aug 31 16:41 mk.pm
-r--r--r--   1 root     other      14811 Aug 24  2004 ocitrace.h
-r--r--r--   1 root     other          0 Aug 31 16:41 Oracle.bs
-r--r--r--   1 root     other       2639 Jul 12  2004 Oracle.h
-r-xr-xr-x   1 root     other     127824 Oct  5 22:39 Oracle.so

i.e. the libclntsh.so symlink has been collapsed into a simple file copy. Is there any way of telling MakeMaker to maintain the symlink, or will I just have to fake it up by tweaking the generated Makefile?

--
Alan Burlison
--

Reply via email to