(module pre-installer mzscheme (require (lib "setup-extension.ss" "make") (lib "compile.ss" "dynext") (lib "link.ss" "dynext") (lib "process.ss") (lib "file.ss")) (provide pre-installer) (define (inserr env message) (display (format " ~a~%" message)) (display (format " Setting environment variable ~a might help.~% It will be used as PLT_EXTENSION_LIB_PATHS variable~%" env ))) (define saved-plt-extension-lib-paths #f) (define (cond-set-extension_lib_path env) (let ((var (getenv env))) (if (eq? var #f) (begin (display (format " ~a has not been set, will *not* be used for PLT_EXTENSION_LIB_PATHS~%" env)) (if saved-plt-extension-lib-paths (begin (display (format " Resetting PLT_EXTENSION_LIB_PATHS=~a~%" saved-plt-extension-lib-paths)) (putenv "PLT_EXTENSION_LIB_PATHS" saved-plt-extension-lib-paths)))) (begin (display (format " Setting PLT_EXTENSION_LIB_PATHS=~a~%" var)) (putenv "PLT_EXTENSION_LIB_PATHS" var))))) (define (pre-installer plthome package-dir) (with-handlers ((exn:fail? (lambda (exn) (inserr "PSQL_EXTENSION_LIB_PATH" "POSTGRESQL DRIVER NOT INSTALLED")))) (cond-set-extension_lib_path "PSQL_EXTENSION_LIB_PATH") (display (format " PLT_EXTENSION_LIB_PATHS=~a~%" (getenv "PLT_EXTENSION_LIB_PATHS"))) (begin (current-directory package-dir) (let ((type (system-type 'os))) (if (eq? type 'windows) (begin (system "cl /LD c-sqld-psql.c") ) (begin (system "gcc -shared -o c-sqld-psql.so c-sqld-psql.c -lpthread") ) )) )) ) )