aboutsummaryrefslogtreecommitdiffstats
path: root/Link.scm
diff options
context:
space:
mode:
Diffstat (limited to 'Link.scm')
-rw-r--r--Link.scm13
1 files changed, 9 insertions, 4 deletions
diff --git a/Link.scm b/Link.scm
index a141e54..a60fd02 100644
--- a/Link.scm
+++ b/Link.scm
@@ -68,18 +68,18 @@
(define (compile-file file . args)
(apply hobbit file args)
- (require 'build)
+ (load (in-vicinity (implementation-vicinity) "build"))
(build-from-whole-argv
(list "build" "-tdll"
(string-append "--compiler-options=-I" (implementation-vicinity))
"-c"
- (string-append (descmify file) ".c")
- ;; or (replace-suffix file (scheme-file-suffix) ".c")
+ (begin (require 'glob)
+ (replace-suffix file (scheme-file-suffix) ".c"))
"-hsystem"
)))
(define (link-named-scm name . modules)
- (require 'build)
+ (load (in-vicinity (implementation-vicinity) "build"))
(let* ((iv (implementation-vicinity))
(oss (string-append scm:object-suffix " "))
(command
@@ -107,6 +107,7 @@
(define link:able-suffix
(cond ((provided? 'shl) ".sl")
((provided? 'sun-dl) ".so")
+ ((provided? 'mac-dl) ".shlb")
(else ".o")))
(define link:link
(lambda (file . libs)
@@ -136,6 +137,10 @@
(set! *load-pathname* file)
(set! linkobj (assoc name link:modules))
(cond (linkobj (dyn:unlink (cdr linkobj))))
+ (if (and (provided? 'sun-dl)
+ (> 3 (string-length file))
+ (not (eqv? (string-ref file 0) '#\/)))
+ (set! file (string-append "./" file)))
(set! linkobj (dyn:link file))
(for-each (lambda (lib)
(cond ((dyn:link lib))