Marc:
I have the following code that used to work in an older beta of gambit:
(define-macro (setup-loader) (set! ##ld-cmd "/usr/ccs/bin/ld -G %s.o libfftw.so.2.0.5 -o %s") '(begin))
(setup-loader)
(c-declare " #include "fftw.h"
fftwnd_plan p;
")
(define fftw2d_create_plan_backward (c-lambda () void "p = fftw2d_create_plan(64, 64, FFTW_BACKWARD, FFTW_ESTIMATE | FFTW_IN_PLACE); "))
(define fftw2d_create_plan_forward (c-lambda () void "p = fftw2d_create_plan(64, 64, FFTW_FORWARD, FFTW_ESTIMATE | FFTW_IN_PLACE); "))
;;; Both forward and backward ffts, depends on which way the plan was created.
(define fftwc (c-lambda (scheme-object) void " int j; double *fp = (double *)((___WORD)___BODY_AS (___arg1,___tSUBTYPED)); fftwnd_one(p, (fftw_complex *)(fp), NULL); for (j = 0; j < 64 * 64 * 2; j++) fp[j] *= .015625; "))
Now I get
Gambit Version 4.0 beta 13
(compile-file "all.scm")
*** ERROR IN #<procedure #2> -- Unbound variable: ##ld-cmd
and there's no ##ld-cmd in gambc40b14, either.
How can I set things up to link all dynamically loaded files against libfftw.so.2.0.5?
Brad