configure: Use GUILD_OPTIMIZE=-O1 for Guile-3.
[mes.git] / scripts / mescc.scm.in
1 #! @GUILE@ \
2 --no-auto-compile -e main -L @guile_site_dir@ -C @guile_site_ccache_dir@ -s
3 !#
4 ;;; GNU Mes --- Maxwell Equations of Software
5 ;;; Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
6 ;;;
7 ;;; This file is part of GNU Mes.
8 ;;;
9 ;;; GNU Mes is free software; you can redistribute it and/or modify it
10 ;;; under the terms of the GNU General Public License as published by
11 ;;; the Free Software Foundation; either version 3 of the License, or (at
12 ;;; your option) any later version.
13 ;;;
14 ;;; GNU Mes is distributed in the hope that it will be useful, but
15 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 ;;; GNU General Public License for more details.
18 ;;;
19 ;;; You should have received a copy of the GNU General Public License
20 ;;; along with GNU Mes.  If not, see <http://www.gnu.org/licenses/>.
21
22 (cond-expand
23  (mes)
24  (guile
25   (define %arch (car (string-split %host-type #\-)))
26   (define %kernel (car (filter
27                         (compose not
28                                  (lambda (x) (member x '("pc" "portbld" "unknown"))))
29                         (cdr (string-split %host-type #\-)))))))
30
31 (define %prefix (or (getenv "MES_PREFIX")
32                       (if (string-prefix? "@prefix" "@prefix@")
33                           ""
34                           "@prefix@")))
35
36 (define %includedir (or (getenv "includedir")
37                         (string-append %prefix "/include")))
38
39 (define %libdir (or (getenv "libdir")
40                     (string-append %prefix "/lib")))
41
42 (define %version (if (string-prefix? "@VERSION" "@VERSION@") "git"
43                      "@VERSION@"))
44
45 (define %arch (if (string-prefix? "@mes_cpu" "@mes_cpu@") %arch
46                   "@mes_cpu@"))
47
48 (define %kernel (if (string-prefix? "@mes_kernel" "@mes_kernel@") %kernel
49                     "@mes_kernel@"))
50
51 (define %numbered-arch? (if (getenv "numbered_arch") (and=> (getenv "numbered_arch")
52                                                             (lambda (x) (equal? x "true")))
53                             (if (string-prefix? "@numbered_arch" "@numbered_arch@") #f
54                                 (equal? "@numbered_arch@" "true"))))
55
56 (setenv "%prefix" %prefix)
57 (setenv "%includedir" %includedir)
58 (setenv "%libdir" %libdir)
59 (setenv "%version" %version)
60 (setenv "%arch" %arch)
61 (setenv "%kernel" %kernel)
62 (setenv "%numbered_arch" (if %numbered-arch? "true" "false"))
63
64 (cond-expand
65  (mes
66   (mes-use-module (mescc))
67   (mescc:main (command-line)))
68  (guile
69   (use-modules (mescc))))
70
71 (define (main args)
72   (mescc:main args))