From 42001865ee8becafb814e7d6d4176532e1e112fc Mon Sep 17 00:00:00 2001 From: espen Date: Wed, 27 Oct 2004 15:52:13 +0000 Subject: [PATCH] Added package definition. Now using load-foreign-library from UFFI --- tools/sharedlib.lisp | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/tools/sharedlib.lisp b/tools/sharedlib.lisp index 8ef77d1..ea8cde2 100644 --- a/tools/sharedlib.lisp +++ b/tools/sharedlib.lisp @@ -1,11 +1,23 @@ -(in-package "ALIEN") -(export '(load-shared-library)) -(in-package "SYSTEM") -(import 'alien:load-shared-library) +(asdf:oos 'asdf:load-op :uffi) -(defun load-shared-library (file &key init prototype initargs) - (format t ";;; Loading shared library ~A~%" file) - (load-object-file file) +(defpackage #:sharedlib + (:use #:common-lisp #:uffi) + (:export #:load-shared-library)) + +(in-package #:sharedlib) + + +(defparameter *library-paths* '("/usr/lib/")) + + + +(defun load-shared-library (name &key init prototype initargs) + (format t ";;; Loading shared library ~A~%" name) + (let ((pathname (find-foreign-library name *library-paths*))) + (if pathname + (unless (load-foreign-library pathname) + (error "Couldn't load shared library: ~A" pathname)) + (error "Shared library not found: ~A" name))) (when init (apply #'alien:alien-funcall @@ -14,4 +26,3 @@ :type (alien::parse-alien-type (or prototype `(function c-call:void))) :sap-form (system:foreign-symbol-address init))) initargs))) - -- 2.11.0