racket/src/mac/install-libs.rkt
Matthew Flatt eaf68e6e85 GMP and MPFR as pre-build libraries for Mac OS X and Windows
Also, add versions for Unix references, and adjust the way that
missing bindings are handled.
2012-11-16 22:21:54 -07:00

45 lines
1.2 KiB
Racket

#lang racket/base
(require racket/path racket/system)
(define from (vector-ref (current-command-line-arguments) 0))
(define to
(path->string (simplify-path (build-path (collection-path "racket")
'up 'up "lib/")
#f)))
(define libs
'("libffi.5"
"libgio-2.0.0"
"libgmodule-2.0.0"
"libgthread-2.0.0"
"libglib-2.0.0"
"libgobject-2.0.0"
"libintl.8"
"libpango-1.0.0"
"libpangocairo-1.0.0"
"libcairo.2"
"libpixman-1.0"
"libpng15.15"
"libgmp.10"
"libmpfr.4"
"libjpeg.62"))
(define (fixup p p-new)
(printf "Fixing ~s\n" p-new)
(system (format "install_name_tool -id ~a ~a" (file-name-from-path p-new) p-new))
(for-each (lambda (s)
(system (format "install_name_tool -change ~a @loader_path/~a ~a"
(format "~a/~a.dylib" from s)
(format "~a.dylib" s)
p-new)))
libs))
(define (install p)
(let* ([p (format "~a.dylib" p)]
[dest (string-append to p)])
(when (file-exists? dest) (delete-file dest))
(copy-file (build-path from p) dest)
(fixup p dest)))
(for-each install libs)