aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Lirzin <mthl@gnu.org>2016-08-02 17:04:00 +0200
committerMathieu Lirzin <mthl@gnu.org>2016-08-02 18:17:20 +0200
commita6849d4a45292b37e83910583464409743905e74 (patch)
tree361122e55b101e5ec5440d9b251ad4688c3971c0
parent651b8bbcf96376b723921820de82061ccdba9c4f (diff)
downloadcuirass-a6849d4a45292b37e83910583464409743905e74.tar
cuirass-a6849d4a45292b37e83910583464409743905e74.tar.gz
Add (cuirass) module.
* src/cuirass.scm: New file. * Makefile.am (guilesitedir, dist_guilesite_DATA) (nodist_guilesite_DATA): New variables. (pkgmoduledir): Refer to 'guilesitedir'. (CLEANFILES): Add 'nodist_guilesite_DATA'. * bin/cuirass.in: Use (cuirass) module. * bin/evaluate.in: Likewise.
-rw-r--r--Makefile.am7
-rw-r--r--bin/cuirass.in3
-rw-r--r--bin/evaluate.in3
-rw-r--r--src/cuirass.scm33
4 files changed, 41 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am
index d4916fb..b31d934 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,7 +3,11 @@
bin_SCRIPTS = bin/cuirass bin/evaluate
noinst_SCRIPTS = pre-inst-env
-pkgmoduledir=$(datarootdir)/guile/site/2.0/$(PACKAGE)
+guilesitedir=$(datarootdir)/guile/site/2.0
+dist_guilesite_DATA = src/cuirass.scm
+nodist_guilesite_DATA = $(dist_guilesite_DATA:%.scm=%.go)
+
+pkgmoduledir=$(guilesitedir)/$(PACKAGE)
dist_pkgmodule_DATA = \
src/cuirass/base.scm \
src/cuirass/database.scm \
@@ -89,6 +93,7 @@ EXTRA_DIST = \
DISTCLEANFILES = src/cuirass/config.scm
CLEANFILES = \
+ $(nodist_guilesite_DATA) \
$(dist_pkgmodule_DATA:%.scm=%.go) \
src/cuirass/config.go
diff --git a/bin/cuirass.in b/bin/cuirass.in
index ff2cc90..0d34636 100644
--- a/bin/cuirass.in
+++ b/bin/cuirass.in
@@ -20,8 +20,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
;;; You should have received a copy of the GNU General Public License
;;; along with Cuirass. If not, see <http://www.gnu.org/licenses/>.
-(use-modules (cuirass base)
- (cuirass database)
+(use-modules (cuirass)
(cuirass ui)
(cuirass utils)
(ice-9 getopt-long))
diff --git a/bin/evaluate.in b/bin/evaluate.in
index 239bdcc..f0542ce 100644
--- a/bin/evaluate.in
+++ b/bin/evaluate.in
@@ -23,8 +23,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
;;; You should have received a copy of the GNU General Public License
;;; along with Cuirass. If not, see <http://www.gnu.org/licenses/>.
-(use-modules (cuirass base)
- (cuirass database)
+(use-modules (cuirass)
(cuirass utils)
(ice-9 match)
(ice-9 pretty-print)
diff --git a/src/cuirass.scm b/src/cuirass.scm
new file mode 100644
index 0000000..35bea44
--- /dev/null
+++ b/src/cuirass.scm
@@ -0,0 +1,33 @@
+;;;; cuirass.scm -- Cuirass public interface.
+;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
+;;;
+;;; This file is part of Cuirass.
+;;;
+;;; Cuirass 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.
+;;;
+;;; Cuirass 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 Cuirass. If not, see <http://www.gnu.org/licenses/>.
+
+;;;; Commentary:
+;;;
+;;; This composite module re-exports everything from the public submodules.
+;;;
+;;;; Code:
+
+(define-module (cuirass))
+
+;;; Module usages and exports need to be done at expansion time.
+(eval-when (eval load expand)
+ (let ((i (module-public-interface (current-module))))
+ (for-each (λ (m) (module-use! i (resolve-interface m)))
+ ;; Public modules.
+ '((cuirass base)
+ (cuirass database)))))