r2914: rename .cl files
[clsql.git] / db-oracle / oracle-loader.lisp
1 ;;; -*- Mode: Lisp -*-
2 ;;; $Id: oracle-loader.lisp,v 1.1 2002/09/30 10:19:23 kevin Exp $
3 ;;;
4 ;;; MaiSQL --- Common Lisp Interface Layer to SQL Databases
5 ;;; This is copyrighted software.  See documentation for terms.
6 ;;; 
7 ;;; oracle-loader.cl --- Foreign Object Loader for Oracle
8
9 (in-package :clsql-oracle)
10
11 ;; Load the foreign library
12
13 (eval-when (:load-toplevel :compile-toplevel)
14   (defvar *oracle-home*
15     nil
16     "The root of the Oracle installation, usually $ORACLE_HOME is set to this.")
17   (unless *oracle-home*
18     (setf *oracle-home*
19           (cdr (assoc ':ORACLE_HOME ext:*environment-list* :test #'eq)))))
20
21 (defparameter *oracle-libs*
22   '(#-oracle-9i "rdbms/lib/ssdbaed.o"
23     "rdbms/lib/defopt.o"
24     #-oracle-9i "rdbms/lib/homts.o"
25     "lib/nautab.o"
26     "lib/naeet.o"
27     "lib/naect.o"
28     "lib/naedhs.o"
29     #-oracle-9i"lib/libnsslb8.a"
30     #+oracle-9i "lib/homts.o"
31     )
32   "Oracle client libraries, relative to ORACLE_HOME.")
33
34 (defun make-oracle-load-path ()
35   (mapcar (lambda (x)
36             (concatenate 'string *oracle-home* "/" x))
37           *oracle-libs*))
38
39
40 ; ;(defparameter *oracle-so-libraries*
41 ; ;;  `(,(concatenate 'string "-L" *oracle-home* "/lib/")
42 ;     '(
43 ;       "-lclntsh"
44 ;       "-lnetv2"
45 ;       "-lnttcp"
46 ;       "-lnetwork"
47 ;       "-lncr"
48 ;       "-lclient"
49 ;       "-lvsn"
50 ;       "-lcommon"
51 ;       "-lgeneric"
52 ;       "-lmm"
53 ;       "-lnlsrtl3"
54 ;       "-lcore4"
55 ;       "-lnlsrtl3"
56 ;       "-lepc"
57 ;       "-ldl"
58 ;       "-lm")
59 ;   "List of library flags needed to be passed to ld to load the
60 ; Oracle client library succesfully.  If this differs at your site,
61 ; set *oracle-so-libraries* to the right path before compiling or
62 ; loading the system.")
63
64
65 #-oracle-9i
66 (defun oracle-libraries ()
67   `(,(concatenate 'string
68                  "-L" *oracle-home* "/lib")
69     "-lagtsh"
70 ;;    "-locijdbc8"
71     "-lclntsh"
72     "-lclient8"
73     "-lvsn8"
74     "-lcommon8"
75     "-lskgxp8"
76     "-lmm"
77     "-lnls8"
78     "-lcore8"
79     "-lgeneric8"
80     "-ltrace8"
81     "-ldl"
82     "-lm"))
83
84 ;;  "List of library flags needed to be passed to ld to load the
85 ;;Oracle client library succesfully.  If this differs at your site,
86 ;;set *oracle-so-libraries* to the right path before compiling or
87 ;;loading the system.")
88
89 #+oracle-9i
90 (defun oracle-libraries ()
91   `(,(concatenate 'string
92                  "-L" *oracle-home* "/lib")
93     "-lagent9"
94     "-lagtsh"
95 ;;    "-locijdbc8"
96     "-lclntsh"
97     "-lclntst9"
98     "-lclient9"
99     "-lvsn9"
100     "-lcommon9"
101     "-lskgxp9"
102     "-lmm"
103     "-lnls9"
104     "-lcore9"
105     "-lgeneric9"
106     "-ltrace9"
107     "-ldl"
108     #+redhat-linux "-L/usr/lib/gcc-lib/i386-redhat-linux/2.96"
109     "-lgcc"
110     "-lm"))
111
112 (defmethod database-type-load-foreign ((database-type (eql :oracle)))
113   (progv '(sys::*dso-linker*)
114       '("/usr/bin/ld")
115     (ext:load-foreign (make-oracle-load-path)
116                     :libraries (oracle-libraries))))
117
118
119 (database-type-load-foreign :oracle)