;;;; sdl.setup -*- Scheme -*- (define (check-depends) (let* ((lib-fun-pack '(("SDL" "SDL_Init" "libsdl1.2-dev") ("SDL_gfx" "polygonColor" "libsdl-gfx1.2-dev") ("SDL_net" "SDLNet_Init" "libsdl-net1.2-dev") ("SDL_ttf" "TTF_Init" "libsdl-ttf2.0-dev") ("SDL_image" "IMG_Init" "libsdl-image1.2-dev"))) (missing (filter (lambda (lib-fun) (not (find-library (first lib-fun) (second lib-fun)))) lib-fun-pack))) (for-each (lambda (lib-fun) (print "\nWARNING: You seem to be missing the library " (first lib-fun) "!")) missing) (cond-expand (linux (unless (null? missing) (print "\nSuggested package(s) to install: " (map third missing)))) (else #f)))) (check-depends) (let* ((escape-flags (lambda (fs) (map (lambda (s) (if (not (or (string-prefix-ci? "-l" s) (string-prefix-ci? "-i" s) (string-prefix-ci? "-d" s))) (sprintf " -C ~a " s) (sprintf " ~a " s))) (string-split fs)))) (sdl-cflags (apply string-append (escape-flags (with-input-from-pipe "sdl-config --cflags" read-line)))) (sdl-lflags (apply string-append ;; sdl-config doesn't give these " -lSDL_gfx -lSDL_net -lSDL_ttf -lSDL_image" (escape-flags (with-input-from-pipe "sdl-config --libs" read-line)))) (types? (version>=? (chicken-version) "4.7.4")) (files (append '("sdl.so" "sdl.import.so" "sdl-foreign-types-include.scm") (if types? '("sdl.types") '())))) (compile ,@(if types? '(-emit-type-file sdl.types) '()) -s -O3 -d1 sdl.scm -j sdl -lSDL_ttf -lSDL_image -lSDL_gfx -lSDL_net -lSDL ,sdl-cflags ,sdl-lflags) (compile -s -O3 -d0 sdl.import.scm ,sdl-cflags ,sdl-lflags) (install-extension 'sdl files '((version "0.5.5"))))