;;; Chickadee Game Toolkit ;;; Copyright © 2016 David Thompson ;;; ;;; Chickadee is free software: you can redistribute it and/or modify it ;;; under the terms of the GNU Lesser General Public License as ;;; published by the Free Software Foundation, either version 3 of the ;;; License, or (at your option) any later version. ;;; ;;; Chickadee is distributed in the hope that it will be useful, but WITHOUT ;;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ;;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General ;;; Public License for more details. ;;; ;;; You should have received a copy of the GNU Lesser General Public ;;; License along with this program. If not, see ;;; . ;;; Commentary: ;; ;; Build time configuration. ;; ;;; Code: (define-module (chickadee config) #:use-module (ice-9 match) #:use-module (system foreign) #:export (dynamic-link* %datadir %chickadee-version %libopenal %libvorbisfile %libmpg123 %libfreetype %libreadline scope-datadir)) ;; Try to link against multiple library possibilities, such as the ;; absolute file name discovered by ./configure or by searching the ;; library load path as a fallback method. Useful when restributing ;; relocatable builds. (define (dynamic-link* names) (let loop ((names names)) (match names (() (error "could not find library" names)) ((name . rest) (or (false-if-exception (dynamic-link name)) (loop rest)))))) (define %datadir (or (getenv "CHICKADEE_DATADIR") "@chickadee_datadir@/chickadee")) (define %chickadee-version "@PACKAGE_VERSION@") (define %libopenal '("@OPENAL_LIBDIR@/libopenal" "libopenal")) (define %libvorbisfile '("@VORBIS_LIBDIR@/libvorbisfile" "libvorbisfile")) (define %libmpg123 '("@MPG123_LIBDIR@/libmpg123" "libmpg123")) (define %libfreetype '("@FREETYPE_LIBDIR@/libfreetype" "libfreetype")) (define %libreadline '("@READLINE_LIBDIR@/libreadline" "libreadline")) (define (scope-datadir file) "Append the Chickadee data directory to FILE." (string-append %datadir "/" file))