Re: compile question
[email protected] (Tim Bunce) Sun, 1 Apr 2001 11:02:46 +0100
| Newsgroups | perl.dbi.oracle-oci |
|---|---|
| Organization | Paul Ingram Group, Software Systems, +44 1 483 862800 |
| Message-ID | <[email protected]> |
Hi Dave,
The README says "then edit the top of the 'boot' shell script and run it".
The top of the boot script says "edit this section - and you *do* need
to edit it". In that section it says "The contents of this string
should be extracted from the generated Makefile of a *working*
DBD::Oracle that has been *built recently on the same platform*"
Have you edited it? Just build a working DBD::Oracle on that system and
copy the OTHERLDFLAGS settings from it.
Tim.
p.s. After the next DBD::Oracle release you won't need to do this since
the installed DBD::Oracle will tell Oracle::OCI what's required.
On Fri, Mar 30, 2001 at 05:27:00PM -0800, Dave Viner wrote:
> in compiling the OCI.so shared object, the OTHERLDFLAGS contains a -YP
> directive and a -Qy directive. according to my gcc man page these directives
> do the following:
>
>
> -YP,dirs
> Search the directories dirs, and no others, for li-
> braries specified with `-l'. You can separate di-
> rectory entries in dirs from one another with
> colons.
>
> and
>
> -Qy Identify the versions of each tool used by the com-
> piler, in a .ident assembler directive in the out-
> put.
>
>
> but they are System V Options only. so for someone like me (a FreeBSD user),
> i'm screwed. i don't know enough about compilers to know if i can get around
> these with other directives. is there an alternative to these?
>
> dave
>
> btw - i'm attaching an initial stab at a patch for bsd. at least it makes it
> to the compilation of the c files. not wonderous, but something is more than
> nothing
>
>
> --
> once you're married, you'll understand the importance of fresh produce.
> - tony soprano
> --- Oracle-OCI-0.01/boot Fri Mar 30 17:14:41 2001
> +++ orig/Oracle-OCI-0.01/boot Sun Mar 25 13:59:01 2001
> @@ -1,4 +1,4 @@
> -#!/bin/bash
> +#!/bin/ksh
> set -x
>
> # ###########################################################################
> @@ -12,7 +12,7 @@
> # the generated Makefile of a *working* DBD::Oracle that
> # has been *built recently on the same platform*:
> #
> -dynamic_lib='OTHERLDFLAGS=>q[ -L${ORACLE_HOME}/lib/ -L${ORACLE_HOME}/rdbms/lib -lclntsh ${ORACLE_HOME}/lib/nautab.o ${ORACLE_HOME}/lib/naeet.o ${ORACLE_HOME}/lib/naect.o ${ORACLE_HOME}/lib/naedhs.o `cat ${ORACLE_HOME}/lib/ldflags` -ln8 -lnl8 -lnro8 `cat ${ORACLE_HOME}/lib/ldflags` -ln8 -lnl8 -lclient8 -lvsn8 -lcommon8 -lskgxp8 -lgeneric8 -lmm -lnls8 -lcore8 -lnls8 -lcore8 -lnls8 `cat ${ORACLE_HOME}/lib/ldflags` -ln8 -lnl8 -lnro8 `cat ${ORACLE_HOME}/lib/ldflags` -ln8 -lnl8 -lclient8 -lvsn8 -lcommon8 -lskgxp8 -lgeneric8 -ltrace8 -lnls8 -lcore8 -lnls8 -lcore8 -lnls8 -lclient8 -lvsn8 -lcommon8 -lskgxp8 -lgeneric8 -lnls8 -lcore8 -lnls8 -lcore8 -lnls8 `cat ${ORACLE_HOME}/lib/sysliblist` `if [ -f /usr/lib/libsched.so ] ; then echo -lsched ; else true; fi` -R/opt/SUNWcluster/lib:${ORACLE_HOME}/lib -YP,:/opt/mysql/mysql/lib:/usr/dt/lib:/opt/SUNWcluster/lib:/usr/ccs/lib:/usr/lib -Qy -lc -laio -lposix4 -lkstat -lm -lthread]'
> +dynamic_lib='OTHERLDFLAGS=>q[ -L/home/oracle/product/8.1.5/lib/ -L/home/oracle/product/8.1.5/rdbms/lib -lclntsh /home/oracle/product/8.1.5/lib/nautab.o /home/oracle/product/8.1.5/lib/naeet.o /home/oracle/product/8.1.5/lib/naect.o /home/oracle/product/8.1.5/lib/naedhs.o `cat /home/oracle/product/8.1.5/lib/ldflags` -ln8 -lnl8 -lnro8 `cat /home/oracle/product/8.1.5/lib/ldflags` -ln8 -lnl8 -lclient8 -lvsn8 -lcommon8 -lskgxp8 -lgeneric8 -lmm -lnls8 -lcore8 -lnls8 -lcore8 -lnls8 `cat /home/oracle/product/8.1.5/lib/ldflags` -ln8 -lnl8 -lnro8 `cat /home/oracle/product/8.1.5/lib/ldflags` -ln8 -lnl8 -lclient8 -lvsn8 -lcommon8 -lskgxp8 -lgeneric8 -ltrace8 -lnls8 -lcore8 -lnls8 -lcore8 -lnls8 -lclient8 -lvsn8 -lcommon8 -lskgxp8 -lgeneric8 -lnls8 -lcore8 -lnls8 -lcore8 -lnls8 `cat /home/oracle/product/8.1.5/lib/sysliblist` `if [ -f /usr/lib/libsched.so ] ; then echo -lsched ; else true; fi` -R/opt/SUNWcluster/lib:/home/oracle/product/8.1.5/lib -YP,:/opt/mysql/mysql/lib:/usr/dt/lib:/opt/SUNWcluster/lib:/usr/ccs/lib:/usr/lib -Qy -lc -laio -lposix4 -lkstat -lm -lthread]'
>
> #
> # --- perl regex of OCI* functions for h2xs to skip/ignore:
> @@ -45,16 +45,8 @@
> then
> /bin/rm -rf Oracle/OCI/*
>
> -# h2xs options:
> -# -d turn debugging on
> -# -O overwrite extensions directory
> -# -n module name
> -# -F additional flags to C preprocessor
> -# -M selects functions and macros to process
> -# -k omit const in XS code even if there in C
> -# -x automatically generate XSUBs
> -perl h2xs -d -O -n Oracle::OCI \
> - -F "-I$ORACLE_HOME/rdbms/demo -I$ORACLE_HOME/rdbms/public -I$ORACLE_HOME/network/public" \
> +./h2xs -d -O -n Oracle::OCI \
> + -F "-I$ORACLE_HOME/rdbms/demo -I$ORACLE_HOME/network/public" \
> -M "^OCI(?!TypeArrayByName\b|StmtGetBindInfo\b|TypeArrayByRef\b|EnvCallback\b$skip_funcs)" \
> -k -x \
> $ORACLE_HOME/rdbms/demo/oci.h \
> @@ -76,12 +68,6 @@
> ln -s ../../XSUB.h
> mkdir t && ln -s ../../../connect.t t/connect.t
>
> -echo
> -echo "Editing h2xs.typemap"
> -## remove the ** and make them *
> -perl -p -i.bak -w \
> - -e 's/OCITrans\s+\*\*/OCITrans \*/;' \
> - h2xs.typemap
>
> echo
> echo "Editing OCI.xs..."
> @@ -100,7 +86,6 @@
> -e 's/^sword$/sword_status/;' \
> -e '$types{do{($a=$1)=~tr/\t //d;$a} }++ if m/^\t(\w+[\s\*]*)\s+[\&\s]*\w+$/;' \
> -e 'END{ open T,">types.dat" or die $!; print T Dumper(\%types); }' \
> - -e 's/\[]//; ' \
> OCI.xs
> # gdiff -u OCI.xs.bak OCI.xs | grep '^[-+]'
>