Chicken Scheme

#Lisp

Eggs File

svn-client

;;; svn-client.meta -*- scheme -*-
((author "Alejandro Forero Cuervo")
 (maintainer "Peter Bex")
 (synopsis "A wrapper around Subversion's libsvn_client C library.")
 (category misc)
 (test-dependencies test)
 (license "Public Domain")
 (components (extension svn-client
                        (custom-build "build-svn-client")
                        (source-dependencies "svn-client-base.c"))))

Cross Platform Example

;;; opengl.egg

((synopsis "OpenGL bindings")
 (category graphics)
 (license "BSD")
 (dependencies bind silex)
 (author "felix winkelmann")
 (components
   (extension glu
               (cond-expand
                 (windows 
                   (link-options "-lopengl32" "-lglu32"))
                 (macosx
                   (csc-options "-FOpenGL")
                   (link-options "-framework OpenGL" 
                                 "-framework Foundation"))
                 (openbsd
                   (csc-options "-I/usr/X11R6/include" "-I/usr/local/include")
                   (link-options "-L/usr/X11R6/lib" "-L/usr/X11R6/lib" 
                                 "-LX11" "-L/usr/local/lib" "-L" "-lGLU"))
                 (else
                   (link-options "-LX11" "-L" "-lGLU"))))
   (extension gl
              (cond-expand
                (windows 
                  (link-options "-lopengl32"))
                (macosx
                  (csc-options "-FOpenGL")
                  (link-options "-framework OpenGL" 
                                "-framework Foundation"))
                (openbsd
                  (csc-options "-I/usr/X11R6/include" "-I/usr/local/include")
                  (link-options "-L/usr/X11R6/lib" "-L/usr/X11R6/lib" 
                                "-LX11" "-L/usr/local/lib" "-L" "-lGL"))
                (else
                  (link-options "-LX11" "-L" "-lGL"))))))

openssl

((synopsis "Bindings to the OpenSSL SSL/TLS library")
 (author "Thomas Chust")
 (maintainer "Vasilij Schneidermann")
 (license "BSD")
 (category net)
 (dependencies srfi-1 srfi-13 srfi-18 address-info)
 (test-dependencies http-client server-test spiffy test uri-common)
 (foreign-dependencies "openssl-1.1.0")
 (component-options (csc-options "-O3" "-d1"))
 (components (extension openssl (custom-build "build-openssl")
                        (component-dependencies openssl.socket))
             (extension openssl.cipher (custom-build "build-openssl"))
             (extension openssl.digest (custom-build "build-openssl"))
             (extension openssl.random (custom-build "build-openssl"))
             (extension openssl.socket (custom-build "build-openssl"))
             (extension openssl.version (custom-build "build-openssl"))))

Using Include

((license "Public Domain")
 (category parsing)
 (author "Oleg Kiselyov. Ported to chicken by Shawn Wagner.")
 (synopsis "input-stream tokenizing and parsing routines.")
 (dependencies srfi-13)
 (components (extension input-parse
                        (source "input-parse-chicken.scm")
                        (source-dependencies "input-parse.scm"
                                             "myenv-chicken.scm")
                        (csc-options "-O3" "-d0"))))

Build Script

CFLAGS="`apr-1-config --includes` -D_LARGEFILE64_SOURCE "
CFLAGS="$CFLAGS -I/usr/include/subversion-1 "
CFLAGS="$CFLAGS -I/usr/local/include/subversion-1"
LDFLAGS="`apr-1-config --libs --link-ld`"

# Link order taken from subversion's python bindings
"$CHICKEN_CSC" -C "$CFLAGS" -L "$LDFLAGS" \
           -L -lsvn_subr-1 -L -lsvn_diff-1 -L -lsvn_delta-1 \
           -L -lsvn_fs-1 -L -lsvn_repos-1 -L -lsvn_wc-1 \
           -L -lsvn_ra-1 -L -lsvn_client-1 "$@"