1 | ;;;; sdl.setup -*- Scheme -*- |
---|
2 | |
---|
3 | |
---|
4 | (define (check-depends) |
---|
5 | |
---|
6 | (let* ((lib-fun-pack '(("SDL" "SDL_Init" "libsdl1.2-dev") |
---|
7 | ("SDL_gfx" "polygonColor" "libsdl-gfx1.2-dev") |
---|
8 | ("SDL_net" "SDLNet_Init" "libsdl-net1.2-dev") |
---|
9 | ("SDL_ttf" "TTF_Init" "libsdl-ttf2.0-dev") |
---|
10 | ("SDL_image" "IMG_Init" "libsdl-image1.2-dev"))) |
---|
11 | (missing (filter (lambda (lib-fun) |
---|
12 | (not (find-library (first lib-fun) (second lib-fun)))) |
---|
13 | lib-fun-pack))) |
---|
14 | (for-each |
---|
15 | (lambda (lib-fun) |
---|
16 | (print "\nWARNING: You seem to be missing the library " (first lib-fun) "!")) |
---|
17 | missing) |
---|
18 | (cond-expand |
---|
19 | (linux |
---|
20 | (unless (null? missing) |
---|
21 | (print "\nSuggested package(s) to install: " (map third missing)))) |
---|
22 | (else #f)))) |
---|
23 | |
---|
24 | (check-depends) |
---|
25 | |
---|
26 | (let* ((escape-flags (lambda (fs) |
---|
27 | (map |
---|
28 | (lambda (s) (if (not (or (string-prefix-ci? "-l" s) |
---|
29 | (string-prefix-ci? "-i" s) |
---|
30 | (string-prefix-ci? "-d" s))) |
---|
31 | (sprintf " -C ~a " s) |
---|
32 | (sprintf " ~a " s))) |
---|
33 | (string-split fs)))) |
---|
34 | (sdl-cflags (apply string-append |
---|
35 | (escape-flags |
---|
36 | (with-input-from-pipe "sdl-config --cflags" read-line)))) |
---|
37 | (sdl-lflags (apply string-append |
---|
38 | ;; sdl-config doesn't give these |
---|
39 | " -lSDL_gfx -lSDL_net -lSDL_ttf -lSDL_image" |
---|
40 | (escape-flags |
---|
41 | (with-input-from-pipe "sdl-config --libs" read-line)))) |
---|
42 | (types? (version>=? (chicken-version) "4.7.4")) |
---|
43 | (files (append '("sdl.so" |
---|
44 | "sdl.import.so" |
---|
45 | "sdl-foreign-types-include.scm") |
---|
46 | (if types? '("sdl.types") '())))) |
---|
47 | (compile ,@(if types? '(-emit-type-file sdl.types) '()) |
---|
48 | -s -O3 -d1 sdl.scm -j sdl -lSDL ,sdl-cflags ,sdl-lflags) |
---|
49 | (compile -s -O3 -d0 sdl.import.scm ,sdl-cflags ,sdl-lflags) |
---|
50 | |
---|
51 | (install-extension 'sdl files '((version "0.5.5")))) |
---|
52 | |
---|