diff --git a/make.scm b/make.scm index 0d6874b3..6f17abe4 100755 --- a/make.scm +++ b/make.scm @@ -1,7 +1,6 @@ #! /bin/sh # -*- scheme -*- -#exec ${GUILE-guile} --no-auto-compile -L . -L guile -C . -C guile -s "$0" ${1+"$@"} -exec ${GUILE-guile} -L . -L guile -C . -C guile -s "$0" ${1+"$@"} +exec ${GUILE-guile} --no-auto-compile -L . -L guile -C . -C guile -s "$0" ${1+"$@"} !# (use-modules (srfi srfi-26)) @@ -23,8 +22,8 @@ exec ${GUILE-guile} -L . -L guile -C . -C guile -s "$0" ${1+"$@"} (setenv "host" %host-type) (apply system* `("guile" "--no-auto-compile" - "-L" "." "-L" "guile" - "-C" "." "-C" "guile" + "-L" "." + "-C" "." "-s" "build-aux/compile-all.scm" ,@scm-files))) diff --git a/module/language/c99/compiler.scm b/module/language/c99/compiler.scm index 0735eda4..49509b97 100644 --- a/module/language/c99/compiler.scm +++ b/module/language/c99/compiler.scm @@ -28,12 +28,13 @@ #:use-module (system base pmatch) #:use-module (ice-9 optargs) #:use-module (ice-9 pretty-print) + #:use-module (nyacc lang c99 parser) + #:use-module (nyacc lang c99 pprint) + #:use-module (mes guile) #:use-module (mes as) #:use-module (mes as-i386) #:use-module (mes elf) #:use-module (mes M1) - #:use-module (nyacc lang c99 parser) - #:use-module (nyacc lang c99 pprint) #:export (c99-ast->info c99-input->ast c99-input->elf diff --git a/module/mes/M1.scm b/module/mes/M1.scm index edc0b7ea..12a4c153 100644 --- a/module/mes/M1.scm +++ b/module/mes/M1.scm @@ -26,6 +26,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (system base pmatch) + #:use-module (mes guile) #:use-module (mes as) #:use-module (mes elf) #:export (object->M1 diff --git a/module/mes/as-i386.scm b/module/mes/as-i386.scm index 375c6ebe..cf8066a4 100644 --- a/module/mes/as-i386.scm +++ b/module/mes/as-i386.scm @@ -25,6 +25,7 @@ ;;; Code: (define-module (mes as-i386) + #:use-module (mes guile) #:use-module (mes as) #:export ( i386:accu-not diff --git a/module/mes/as.scm b/module/mes/as.scm index 6e11a6b7..3c7ff1d3 100644 --- a/module/mes/as.scm +++ b/module/mes/as.scm @@ -24,6 +24,7 @@ (define-module (mes as) #:use-module (srfi srfi-1) + #:use-module (mes guile) #:use-module (mes bytevectors) #:export (dec->hex int->bv16 diff --git a/module/mes/bytevectors.scm b/module/mes/bytevectors.scm index 514276f4..7846c52b 100644 --- a/module/mes/bytevectors.scm +++ b/module/mes/bytevectors.scm @@ -23,6 +23,7 @@ ;;; Code: (define-module (mes bytevectors) + #:use-module (mes guile) #:export (bytevector-u32-native-set! bytevector-u16-native-set! make-bytevector)) diff --git a/module/mes/elf.scm b/module/mes/elf.scm index c715dc5f..1f8c689c 100644 --- a/module/mes/elf.scm +++ b/module/mes/elf.scm @@ -23,6 +23,7 @@ ;;; Code: (define-module (mes elf) + #:use-module (mes guile) #:export (M1->elf)) (cond-expand diff --git a/module/mes/guile.scm b/module/mes/guile.scm new file mode 100644 index 00000000..3f46f7f9 --- /dev/null +++ b/module/mes/guile.scm @@ -0,0 +1,47 @@ +;;; -*-scheme-*- + +;;; Mes --- Maxwell Equations of Software +;;; Copyright © 2017 Jan Nieuwenhuizen +;;; +;;; This file is part of Mes. +;;; +;;; Mes is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; Mes 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 General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with Mes. If not, see . + +;;; Commentary: + +;;; Code: + +(define-module (mes guile)) + +(cond-expand + (guile-2.2) + (guile-2 + (eval-when (compile load eval) + (define-syntax include-from-path + (lambda (x) + (syntax-case x () + ((k filename) + (let ((fn (syntax->datum #'filename))) + (with-syntax ((fn (datum->syntax + #'filename + (canonicalize-path + (or (%search-load-path fn) + (syntax-violation 'include-from-path + "file not found in path" + x #'filename)))))) + #'(include fn)))))))) + (export include-from-path)) + (guile + (use-modules (ice-9 syncase))) + (mes))