diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | gamma/.gitignore (renamed from src/.gitignore) | 4 | ||||
-rw-r--r-- | gamma/Makefile.am (renamed from src/Makefile.am) | 4 | ||||
-rw-r--r-- | gamma/app.h (renamed from src/app.h) | 0 | ||||
-rw-r--r-- | gamma/documentation.sci (renamed from src/documentation.sci) | 0 | ||||
-rw-r--r-- | gamma/eval.c (renamed from src/eval.c) | 0 | ||||
-rw-r--r-- | gamma/expat.scm (renamed from src/expat.sci) | 12 | ||||
-rw-r--r-- | gamma/gamma-expat.c (renamed from src/gamma-expat.c) | 0 | ||||
-rw-r--r-- | gamma/gamma-expat.h (renamed from src/gamma-expat.h) | 0 | ||||
-rw-r--r-- | gamma/gsql_conn.c (renamed from src/gsql_conn.c) | 0 | ||||
-rw-r--r-- | gamma/gsql_lib.c (renamed from src/gsql_lib.c) | 0 | ||||
-rw-r--r-- | gamma/guile-sql.h (renamed from src/guile-sql.h) | 0 | ||||
-rw-r--r-- | gamma/loader.sci | 38 | ||||
-rw-r--r-- | gamma/mysql.c (renamed from src/mysql.c) | 0 | ||||
-rw-r--r-- | gamma/pgsql.c (renamed from src/pgsql.c) | 0 | ||||
-rw-r--r-- | gamma/sql.scm (renamed from src/sql.sci) | 12 | ||||
-rw-r--r-- | gamma/syslog-port.c (renamed from src/syslog-port.c) | 11 | ||||
-rw-r--r-- | gamma/syslog.c (renamed from src/syslog.c) | 0 | ||||
-rw-r--r-- | gamma/syslog.scm (renamed from src/syslog.sci) | 11 | ||||
-rw-r--r-- | modules/expat | 3 | ||||
-rw-r--r-- | modules/sql | 4 | ||||
-rw-r--r-- | modules/syslog | 4 | ||||
-rwxr-xr-x | scripts/bootstrap | 6 |
25 files changed, 66 insertions, 55 deletions
@@ -4,6 +4,8 @@ *.o *.tar.* *~ +\#*# +.#* .deps .emacs* .gdbinit diff --git a/Makefile.am b/Makefile.am index da83ed3..bae94f7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ # This file is part of Gamma. -# Copyright (C) 2002, 2007, 2010 Sergey Poznyakoff +# Copyright (C) 2002-2018 Sergey Poznyakoff # # Gamma is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ ACLOCAL_AMFLAGS = -I m4 -I am -I gint -SUBDIRS = gint src scripts examples doc +SUBDIRS = gint gamma scripts examples doc # Define the following variables in order to use the ChangeLog rule below: # prev_change_log [optional] Name of the previous ChangeLog file. diff --git a/configure.ac b/configure.ac index 0695551..5ad8cf3 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ dnl This file is part of Gamma -dnl Copyright (C) 2002, 2004, 2007, 2010, 2015 Sergey Poznyakoff +dnl Copyright (C) 2002-2018 Sergey Poznyakoff dnl dnl Gamma is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ dnl along with Gamma. If not, see <http://www.gnu.org/licenses/>. AC_PREREQ(2.63) AC_INIT(gamma, [2.0], [gray+gamma@gnu.org.ua]) -AC_CONFIG_SRCDIR(src/guile-sql.h) +AC_CONFIG_SRCDIR(gamma/guile-sql.h) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_SYSTEM @@ -96,7 +96,7 @@ fi AC_CONFIG_FILES(Makefile gint/Makefile - src/Makefile + gamma/Makefile scripts/Makefile examples/Makefile doc/Makefile) diff --git a/src/.gitignore b/gamma/.gitignore index d819308..2c200e2 100644 --- a/src/.gitignore +++ b/gamma/.gitignore @@ -7,7 +7,5 @@ guile-procedures.txt guile-procedures.texi documentation.scm -sql.scm -syslog.scm +loader.scm modules.mk -expat.scm diff --git a/src/Makefile.am b/gamma/Makefile.am index c5caa7f..34df836 100644 --- a/src/Makefile.am +++ b/gamma/Makefile.am @@ -1,5 +1,5 @@ # This file is part of Gamma. -# Copyright (C) 2002, 2007, 2010, 2015 Sergey Poznyakoff +# Copyright (C) 2002-2018 Sergey Poznyakoff # # Gamma is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,6 +28,8 @@ install-data-hook: @GAMMA_INSTALL_HOOKS@ MAINTAINERCLEANFILES= include modules.mk +EXTRA_DIST += loader.sci +GAMMA_BUILT_DATA_FILES += loader.scm sitedir=$(GUILE_SITE)/$(PACKAGE) site_DATA=$(GAMMA_BUILT_DATA_FILES) documentation.scm diff --git a/src/documentation.sci b/gamma/documentation.sci index 809a6bf..809a6bf 100644 --- a/src/documentation.sci +++ b/gamma/documentation.sci diff --git a/src/eval.c b/gamma/eval.c index 1702ea0..1702ea0 100644 --- a/src/eval.c +++ b/gamma/eval.c diff --git a/src/expat.sci b/gamma/expat.scm index 19e48fe..af49002 100644 --- a/src/expat.sci +++ b/gamma/expat.scm @@ -1,5 +1,5 @@ ;;;; This file is part of Gamma. -*- scheme -*- -;;;; Copyright (C) 2010, 2015 Sergey Poznyakoff +;;;; Copyright (C) 2010-2018 Sergey Poznyakoff ;;;; ;;;; Gamma is free software; you can redistribute it and/or modify ;;;; it under the terms of the GNU General Public License as published by @@ -14,11 +14,10 @@ ;;;; You should have received a copy of the GNU General Public License ;;;; along with Gamma. If not, see <http://www.gnu.org/licenses/>. -changequote([,])dnl - (define-module (gamma expat) :use-module (ice-9 rdelim) :use-module (gamma documentation) + :use-module (gamma loader) :use-module (srfi srfi-1) :export (xml-make-parser xml-parse-more @@ -26,12 +25,7 @@ changequote([,])dnl xml-set-handler) :export-syntax (xml-error-descr)) -(if (= (string->number (major-version)) 1) - (use-syntax (ice-9 syncase))) - -(let ((lib-path "LIBDIR/")) - (load-extension (string-append - lib-path "libgamma-expat-v-VERSION") "gamma_expat_init")) +(gamma-module-load "expat" "gamma_expat_init") (define (xml-make-parser . rest) (if (null? rest) diff --git a/src/gamma-expat.c b/gamma/gamma-expat.c index cd3efaa..cd3efaa 100644 --- a/src/gamma-expat.c +++ b/gamma/gamma-expat.c diff --git a/src/gamma-expat.h b/gamma/gamma-expat.h index 2376e4a..2376e4a 100644 --- a/src/gamma-expat.h +++ b/gamma/gamma-expat.h diff --git a/src/gsql_conn.c b/gamma/gsql_conn.c index 64cec27..64cec27 100644 --- a/src/gsql_conn.c +++ b/gamma/gsql_conn.c diff --git a/src/gsql_lib.c b/gamma/gsql_lib.c index 7972595..7972595 100644 --- a/src/gsql_lib.c +++ b/gamma/gsql_lib.c diff --git a/src/guile-sql.h b/gamma/guile-sql.h index f656fd4..f656fd4 100644 --- a/src/guile-sql.h +++ b/gamma/guile-sql.h diff --git a/gamma/loader.sci b/gamma/loader.sci new file mode 100644 index 0000000..c165282 --- /dev/null +++ b/gamma/loader.sci @@ -0,0 +1,38 @@ +;;;; This file is part of Gamma. -*- scheme -*- +;;;; Copyright (C) 2018 Sergey Poznyakoff +;;;; +;;;; Gamma 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, or (at your option) +;;;; any later version. +;;;; +;;;; Gamma 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 Gamma. If not, see <http://www.gnu.org/licenses/>. + +changequote([,])dnl +(define-module (gamma loader)) + +(define-public (gamma-module-load name init) + (call/cc + (lambda (return) + (do ((lib-path (parse-path (getenv "LD_LIBRARY_PATH") (list "LIBDIR")) + (cdr lib-path))) + ((null? lib-path)) + (let ((dir (car lib-path))) + (do ((suffixes '("-v-VERSION" "") (cdr suffixes))) + ((null? suffixes)) + (let ((suf (car suffixes))) + (catch 'misc-error + (lambda () + (load-extension + (string-append dir "/" "libgamma-" name suf) init) + (return)) + (lambda (key . args) + #t)))))) + (error "cannot load extension " name)))) + diff --git a/src/mysql.c b/gamma/mysql.c index dcc1847..dcc1847 100644 --- a/src/mysql.c +++ b/gamma/mysql.c diff --git a/src/pgsql.c b/gamma/pgsql.c index 1421c40..1421c40 100644 --- a/src/pgsql.c +++ b/gamma/pgsql.c diff --git a/src/sql.sci b/gamma/sql.scm index ab91c00..0b00865 100644 --- a/src/sql.sci +++ b/gamma/sql.scm @@ -1,5 +1,5 @@ ;;;; This file is part of Gamma. -*- scheme -*- -;;;; Copyright (C) 2002, 2008, 2010, 2015 Sergey Poznyakoff +;;;; Copyright (C) 2002-2018 Sergey Poznyakoff ;;;; ;;;; Gamma is free software; you can redistribute it and/or modify ;;;; it under the terms of the GNU General Public License as published by @@ -14,18 +14,12 @@ ;;;; You should have received a copy of the GNU General Public License ;;;; along with Gamma. If not, see <http://www.gnu.org/licenses/>. -changequote([,])dnl - (define-module (gamma sql) :use-module (gamma documentation) + :use-module (gamma loader) :export-syntax (sql-catch-failure sql-ignore-failure)) -(if (= (string->number (major-version)) 1) - (use-syntax (ice-9 syncase))) - -(let ((lib-path "LIBDIR/")) - (load-extension (string-append - lib-path "libgamma-sql-v-VERSION") "sql_init")) +(gamma-module-load "sql" "sql_init") (define-syntax sql-catch-failure (syntax-rules () diff --git a/src/syslog-port.c b/gamma/syslog-port.c index 4388c10..83b7ac6 100644 --- a/src/syslog-port.c +++ b/gamma/syslog-port.c @@ -1,5 +1,5 @@ /* This file is part of Gamma. - Copyright (C) 2002, 2010 Sergey Poznyakoff + Copyright (C) 2002-2018 Sergey Poznyakoff Gamma is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -55,14 +55,6 @@ _syslog_port_close(SCM port) } static size_t -_syslog_port_free(SCM port) -/* FIXME: basically, a no-op */ -{ - _syslog_port_close(port); - return 0; -} - -static size_t _syslog_port_write(SCM port, SCM src, size_t start, size_t count) { struct _gamma_syslog_port *dp = SYSLOG_PORT(port); @@ -105,7 +97,6 @@ _gamma_init_syslog_port() scm_syslog_port_type = scm_make_port_type("syslog-port", NULL, _syslog_port_write); - scm_set_port_free(scm_syslog_port_type, _syslog_port_free); scm_set_port_print(scm_syslog_port_type, _syslog_port_print); scm_set_port_close(scm_syslog_port_type, _syslog_port_close); scm_set_port_seek(scm_syslog_port_type, _syslog_port_seek); diff --git a/src/syslog.c b/gamma/syslog.c index 82bc688..82bc688 100644 --- a/src/syslog.c +++ b/gamma/syslog.c diff --git a/src/syslog.sci b/gamma/syslog.scm index 317dd6f..5cc1ad6 100644 --- a/src/syslog.sci +++ b/gamma/syslog.scm @@ -1,5 +1,5 @@ ;;;; This file is part of Gamma. -*- scheme -*- -;;;; Copyright (C) 2010 Sergey Poznyakoff +;;;; Copyright (C) 2010-2018 Sergey Poznyakoff ;;;; ;;;; Gamma is free software; you can redistribute it and/or modify ;;;; it under the terms of the GNU General Public License as published by @@ -14,13 +14,10 @@ ;;;; You should have received a copy of the GNU General Public License ;;;; along with Gamma. If not, see <http://www.gnu.org/licenses/>. -changequote([,])dnl - (define-module (gamma syslog) - :use-module (gamma documentation)) + :use-module (gamma documentation) + :use-module (gamma loader)) -(let ((lib-path "LIBDIR/")) - (load-extension (string-append - lib-path "libgamma-syslog-v-VERSION") "syslog_init")) +(gamma-module-load "syslog" "syslog_init") ;;;; End of syslog.scm diff --git a/modules/expat b/modules/expat index 4017150..1cc1dc6 100644 --- a/modules/expat +++ b/modules/expat @@ -39,9 +39,8 @@ gamma-expat.h eval.c scm: -expat.sci +expat.scm makefile: -expat.scm: Makefile libgamma_expat_la_LIBADD = @LTLIBOBJS@ @GUILE_LIBS@ $(EXPAT_LIBS) libgamma_expat_la_CPPFLAGS = $(AM_CPPFLAGS) $(EXPAT_INCS) diff --git a/modules/sql b/modules/sql index 1931df6..bc6f473 100644 --- a/modules/sql +++ b/modules/sql @@ -54,11 +54,9 @@ guile-sql.h app.h makefile: -sql.scm: Makefile - EXTRA_DIST += mysql.c pgsql.c libgamma_sql_la_LIBADD = @SQLOBJS@ @LTLIBOBJS@ @GUILE_LIBS@ @SQLLIBS@ libgamma_sql_la_DEPENDENCIES = @SQLOBJS@ scm: -sql.sci +sql.scm diff --git a/modules/syslog b/modules/syslog index f6f92aa..9095478 100644 --- a/modules/syslog +++ b/modules/syslog @@ -10,7 +10,5 @@ syslog.c syslog-port.c scm: -syslog.sci +syslog.scm -makefile: -syslog.scm: Makefile diff --git a/scripts/bootstrap b/scripts/bootstrap index b1b990f..5d9d3eb 100755 --- a/scripts/bootstrap +++ b/scripts/bootstrap @@ -4,7 +4,7 @@ main='(module-ref (resolve-module '\''(scripts bootstrap)) '\'main')' exec ${GUILE-guile} -l $0 -c "(apply $main (cons \"$0\" (cdr (command-line))))" "$@" !# ;;;; This file is part of Gamma. -;;;; Copyright (C) 2010, 2015 Sergey Poznyakoff +;;;; Copyright (C) 2010-2018 Sergey Poznyakoff ;;;; ;;;; Gamma is free software; you can redistribute it and/or modify ;;;; it under the terms of the GNU General Public License as published by @@ -31,8 +31,8 @@ exec ${GUILE-guile} -l $0 -c "(apply $main (cons \"$0\" (cdr (command-line))))" (debug-enable 'backtrace) (define module-dir #f) -(define srcdir "src") -(define makefile "src/modules.mk") +(define srcdir "gamma") +(define makefile "gamma/modules.mk") (define modconfig-file "m4/modules.m4") (define modconfig-defun "gamma_MODCONFIG") (define autogenerated-file-header |