diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2020-01-01 00:00:00 +0100 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-06-05 16:09:16 +0200 |
commit | 461c61e1797006510493f7a6684d316369d145cb (patch) | |
tree | 389ba7a40ce931b0f27e27415c71832b31c7ea39 /src | |
parent | 94df4b065fe63dbcc69e9a8b170160d4ea409fe7 (diff) |
Set up the guile project
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 33 | ||||
-rw-r--r-- | src/inst/webid-oidc/Makefile.am | 3 | ||||
-rw-r--r-- | src/pre-inst/Makefile.am | 2 | ||||
-rw-r--r-- | src/pre-inst/webid-oidc/Makefile.am | 6 | ||||
-rw-r--r-- | src/scm/Makefile.am | 4 | ||||
-rw-r--r-- | src/scm/webid-oidc.scm | 2 | ||||
-rw-r--r-- | src/scm/webid-oidc/Makefile.am | 7 | ||||
-rw-r--r-- | src/scm/webid-oidc/errors.scm | 30 |
8 files changed, 86 insertions, 1 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 8cf7635..a508f40 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -2,14 +2,45 @@ lib_LTLIBRARIES += %reldir%/libwebidoidc.la AM_CPPFLAGS += -I %reldir% -I $(srcdir)/%reldir% +GUILD_OPTIONS = + +CLEANFILES = + +moddir = $(prefix)/share/guile/site/$(GUILE_EFFECTIVE_VERSION) +godir = $(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache + +webidoidcmoddir = $(moddir)/webid-oidc +webidoidcgodir = $(godir)/webid-oidc + +dist_mod_DATA = +mod_DATA = +go_DATA = + +dist_webidoidcmod_DATA = +webidoidcmod_DATA = +webidoidcgo_DATA = + +install_go_targets = install-webidoidcgoDATA +install_mod_targets = install-webidoidcmodDATA install-dist_webidoidcmodDATA + include %reldir%/pre-inst/Makefile.am include %reldir%/inst/Makefile.am +include %reldir%/scm/Makefile.am + +CLEANFILES += $(go_DATA) $(webidoidcgo_DATA) $(mod_DATA) $(webidoidcmod_DATA) %canon_reldir%_libwebidoidc_la_SOURCES = %reldir%/gettext.h %reldir%/libwebidoidc.c %canon_reldir%_libwebidoidc_la_LIBADD = $(noinst_LTLIBRARIES) $(GUILE_LIBS) $(NETTLE_LIBS) INDENTED += $(%canon_reldir%_libwebidoidc_la_SOURCES) -SUFFIXES += .c .x +$(go_DATA) $(webidoidcgo_DATA): %reldir%/libwebidoidc.la + +SUFFIXES += .c .x .scm .go .c.x: $(AM_V_GEN) $(SNARF) -o $@ $< $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AM_CPPFLAGS) $(AM_CFLAGS) $(GUILE_CFLAGS) $(NETTLE_CFLAGS) +.scm.go: + $(AM_V_GEN) $(top_builddir)/pre-inst-env $(GUILD) compile $(GUILE_WARNINGS) $(GUILD_OPTIONS) -o "$@-t" "$<" + @mv "$@-t" "$@" + +$(install_go_targets): $(install_mod_targets) diff --git a/src/inst/webid-oidc/Makefile.am b/src/inst/webid-oidc/Makefile.am index b76249e..ac2778b 100644 --- a/src/inst/webid-oidc/Makefile.am +++ b/src/inst/webid-oidc/Makefile.am @@ -1,3 +1,6 @@ +webidoidcmod_DATA += %reldir%/config.scm +webidoidcgo_DATA += %reldir%/config.go + %reldir%/config.scm: $(top_builddir)/config.status $(AM_V_GEN) mkdir -p %reldir% && (echo "(define-module (webid-oidc config))" ; \ echo "(define-public libdir \"$(libdir)\")") \ diff --git a/src/pre-inst/Makefile.am b/src/pre-inst/Makefile.am index 08c3f1c..035a7bb 100644 --- a/src/pre-inst/Makefile.am +++ b/src/pre-inst/Makefile.am @@ -1 +1,3 @@ include %reldir%/webid-oidc/Makefile.am + +GUILD_OPTIONS += -L %reldir% -L $(srcdir)/%reldir% diff --git a/src/pre-inst/webid-oidc/Makefile.am b/src/pre-inst/webid-oidc/Makefile.am index 7fd7fb9..fa8c4e1 100644 --- a/src/pre-inst/webid-oidc/Makefile.am +++ b/src/pre-inst/webid-oidc/Makefile.am @@ -1,3 +1,9 @@ +$(go_DATA) $(webidoidcgo_DATA): %reldir%/config.go + +CLEANFILES += %reldir%/config.go %reldir%/config.scm + +BUILT_SOURCES += %reldir%/config.scm + %reldir%/config.scm: $(top_builddir)/config.status $(AM_V_GEN) mkdir -p %reldir% && (echo "(define-module (webid-oidc config))" ; \ echo "(define-public libdir \"$(abs_top_builddir)/src/.libs\")") \ diff --git a/src/scm/Makefile.am b/src/scm/Makefile.am new file mode 100644 index 0000000..33855e1 --- /dev/null +++ b/src/scm/Makefile.am @@ -0,0 +1,4 @@ +dist_mod_DATA += %reldir%/webid-oidc.scm +go_DATA += %reldir%/webid-oidc.go + +include %reldir%/webid-oidc/Makefile.am diff --git a/src/scm/webid-oidc.scm b/src/scm/webid-oidc.scm new file mode 100644 index 0000000..a9a4699 --- /dev/null +++ b/src/scm/webid-oidc.scm @@ -0,0 +1,2 @@ +(define-module (webid-oidc) + #:use-module (webid-oidc config)) diff --git a/src/scm/webid-oidc/Makefile.am b/src/scm/webid-oidc/Makefile.am new file mode 100644 index 0000000..48a41f7 --- /dev/null +++ b/src/scm/webid-oidc/Makefile.am @@ -0,0 +1,7 @@ +dist_webidoidcmod_DATA += \ + %reldir%/errors.scm + +webidoidcgo_DATA += \ + %reldir%/errors.go + +EXTRA_DIST += %reldir%/ChangeLog diff --git a/src/scm/webid-oidc/errors.scm b/src/scm/webid-oidc/errors.scm new file mode 100644 index 0000000..b8d7382 --- /dev/null +++ b/src/scm/webid-oidc/errors.scm @@ -0,0 +1,30 @@ +(define-module (webid-oidc errors) + #:use-module (ice-9 exceptions) + #:use-module (ice-9 optargs) + #:use-module (ice-9 i18n)) + +(define (G_ text) + (let ((out (gettext text))) + (if (string=? out text) + ;; No translation, disambiguate + (car (reverse (string-split text #\|))) + out))) + +;; This is a collection of all errors that can happen, and a function +;; to log them. + +(define*-public (error->str error #:key (max-depth #f)) + (if (record? error) + (let* ((type (record-type-descriptor error)) + (get + (lambda (slot) + ((record-accessor type slot) error))) + (recurse + (if (eqv? max-depth 0) + (lambda (err) (G_ "that’s how it is")) + (lambda (err) + (error->str err #:max-depth (and max-depth (- max-depth 1))))))) + (case (record-type-name type) + (else + (error (format #f "Unhandled exception type ~a." (record-type-name type)))))) + (format #f "~a" error))) |