Chez Scheme 用のOpenGL ライブラリ(現在は Linux のみのセットアップ) は、次のように GLUT ライブラリをロードします。
(define no-op (load-shared-object "libglut.so.3"))
これがそのコードへのリンクです。
libglut.so.3
もちろん、ライブラリをLinux ではなくGLUT.framework/GLUT
macOS でロードしたいと考えています。
Ypsilon スキームがプラットフォームに基づいてライブラリをロードする方法の例を次に示します。
(define libGLUT
(cond
(on-darwin (load-shared-object "GLUT.framework/GLUT"))
(on-windows (load-shared-object "glut32.dll"))
(on-linux (load-shared-object "libglut.so.3"))
(on-freebsd (load-shared-object "libglut.so"))
(on-openbsd (begin
(load-shared-object "libXmu.so.10.0")
(load-shared-object "libGLU.so.7.0")
(load-shared-object "libglut.so.3.7")))
(else
(assertion-violation
#f
"can not locate GLUT library, unknown operating system"))))
Chez Scheme でプラットフォームをチェックして、外国のライブラリのバインディングで同様のことを行うにはどうすればよいでしょうか?