## Process this file with automake to produce Makefile.in
# Copyright (C) 2000-2012 Free Software Foundation, Inc.
# Copyright (C) 2020, 2021 GNUnet e.V.
#
# Author (GnuTLS): Nikos Mavrogiannopoulos
# Author (scheme-GNUnet): Maxime Devos
#
# This file was part of scheme-GNUnet.
#
# scheme-GNUnet 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.
#
# scheme-GNUnet 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 scheme-GNUnet. If not, see .
# This file is partially based upon guile/Makefile.am in GnuTLS.
# Not all scheme-GNUnet code is licensed as GPL, some is licensed as AGPL.
ACLOCAL_AMFLAGS = -I m4
AM_CPPFLAGS = -I$(top_srcdir)/include
SUFFIXES = .scm .go
# Scheme code that works
modules = \
gnu/extractor/enum.scm \
\
gnu/gnunet/scripts/download-store.scm \
gnu/gnunet/scripts/publish-store.scm \
gnu/gnunet/scripts/guix-stuff.scm \
\
gnu/gnunet/message/protocols.scm \
\
gnu/gnunet/concurrency/update.scm \
gnu/gnunet/concurrency/repeated-condition.scm \
\
gnu/gnunet/mq/envelope.scm \
gnu/gnunet/mq/error-reporting.scm \
gnu/gnunet/mq/handler.scm \
gnu/gnunet/mq/prio-prefs.scm \
gnu/gnunet/mq/prio-prefs2.scm \
gnu/gnunet/mq.scm \
\
gnu/gnunet/mq-impl/stream.scm \
\
gnu/gnunet/utils/bv-slice.scm \
gnu/gnunet/utils/hat-let.scm \
gnu/gnunet/utils/netstruct.scm \
gnu/gnunet/utils/platform-enum.scm \
gnu/gnunet/utils/tokeniser.scm \
\
gnu/gnunet/config/parser.scm \
gnu/gnunet/config/value-parser.scm \
gnu/gnunet/config/expand.scm \
gnu/gnunet/config/db.scm \
gnu/gnunet/config/fs.scm \
\
gnu/gnunet/util/cmsg.scm \
gnu/gnunet/util/time.scm \
gnu/gnunet/icmp/struct.scm \
\
gnu/gnunet/util/struct.scm \
gnu/gnunet/crypto/struct.scm \
gnu/gnunet/hashcode/struct.scm \
\
gnu/gnunet/nse/client.scm \
gnu/gnunet/nse/struct.scm \
\
gnu/gnunet/netstruct/procedural.scm \
gnu/gnunet/netstruct/syntactic.scm
GOBJECTS = $(modules:%.scm=%.go)
nobase_dist_guilesite_DATA = $(modules) gnu/gnunet/config/default.conf
E = gnu/gnunet/message/enum-
nobase_dist_guilesite_DATA += \
gnu/gnunet/message/protocols.scmgen \
$(E)agpl.scmfrag \
$(E)arm.scmfrag \
$(E)ats.scmfrag \
$(E)chat.scmfrag \
$(E)consensus.scmfrag \
$(E)conversation.scmfrag \
$(E)core.scmfrag \
$(E)datastore.scmfrag \
$(E)dht.scmfrag \
$(E)fragment.scmfrag \
$(E)fs-publish.scmfrag \
$(E)fs.scmfrag \
$(E)gns.scmfrag \
$(E)hello.scmfrag \
$(E)identity.scmfrag \
$(E)lockmanager.scmfrag \
$(E)multicast.scmfrag \
$(E)namecache.scmfrag \
$(E)namestore.scmfrag \
$(E)nse.scmfrag \
$(E)peerinfo.scmfrag \
$(E)psyc.scmfrag \
$(E)psycstore.scmfrag \
$(E)regex.scmfrag \
$(E)resolver.scmfrag \
$(E)revocation.scmfrag \
$(E)scalarproduct.scmfrag \
$(E)set.scmfrag \
$(E)statistics.scmfrag \
$(E)testbed.scmfrag \
$(E)transport-dv.scmfrag \
$(E)transport.scmfrag \
$(E)util.scmfrag \
$(E)vpn-dns.scmfrag \
$(E)vpn.scmfrag \
$(E)wlan.scmfrag
# Scheme code compilation
if HAVE_GUILD
nobase_nodist_guilesiteccache_DATA = $(GOBJECTS)
# Do not unset 'GUILE_LOAD_COMPILED_PATH', as guile-pfds as installed
# in Guix does not have .scm files (but it does in Guile).
# XXX: Use the C locale for when Guile lacks
# .
%.go: %.scm
$(AM_V_GUILEC)$(MKDIR_P) "`dirname "$@"`" ; \
$(AM_V_P) && out=1 || out=- ; \
LC_ALL=C \
builddir="$(top_builddir)" \
GUILE_AUTO_COMPILE=0 \
$(GUILD) compile -O3 --target="$(host)" \
-L "$(top_srcdir)" \
-Wformat -Wunbound-variable -Warity-mismatch \
-o "$@" "$<" >&$$out
endif
TEST_EXTENSIONS = .scm
TESTS =
# Scheme tests
# FIXME ./pre-inst-env & ./test-env
#
# Set --auto-compile, because ‘tests/envelope.scm - references dropped after
# sent’ requires optimisation to avoid keeping references. Set XDG_CACHE_HOME
# because $HOME may be unwritable and to reduce clutter.
SCM_LOG_DRIVER = \
env XDG_CACHE_HOME="$(abs_builddir)" $(GUILE) --auto-compile -L \
$(top_srcdir) -C $(top_builddir) -e main \
$(top_srcdir)/build-aux/test-driver.scm
SCM_TESTS = \
tests/envelope.scm \
tests/error-reporting.scm \
tests/message-handler.scm \
tests/mq.scm \
tests/mq-stream.scm \
tests/network-size.scm \
tests/update.scm \
tests/repeated-condition.scm \
tests/bv-slice.scm \
tests/cmsg.scm \
tests/config-parser.scm \
tests/config-value-parser.scm \
tests/config-expand.scm \
tests/config-db.scm \
tests/config-fs.scm \
tests/netstruct.scm \
tests/time.scm \
tests/tokeniser.scm
SCM_TESTS_ENVIRONMENT = \
GUILE_AUTO_COMPILE=0 \
GUILE_WARN_DEPRECATED=detailed
TESTS += $(SCM_TESTS)
EXTRA_DIST = $(SCM_TESTS) tests/utils.scm build-aux/test-driver.scm
# For documentation (TODO regenerate indices).
# Set HOME to avoid interfering with the user's TeXmacs
# configuration and because HOME can be unwritable.
#
# --auto-servernum is required to let multiple xvfb-run
# run concurrently.
TEXMACS_CONVERT = env "HOME=$(abs_builddir)" xvfb-run --auto-servernum -- texmacs
# Use MathML for formulae instead of PNG images.
# While the images are prettier than the rendering by the browser,
# they aren't accessible and it is somewhat difficult to tell Automake
# to install the PNG images.
TEXMACS_HTML_SETTINGS = \
'(set-boolean-preference "texmacs->html:images" \#f)\
(set-boolean-preference "texmacs->html:mathjax" \#f)\
(set-boolean-preference "texmacs->html:mathml" \#t)'
doc/scheme-gnunet.pdf: doc/scheme-gnunet.tm
$(TEXMACS_CONVERT) -c "$<" "$@" -q
doc/scheme-gnunet.html: doc/scheme-gnunet.tm
$(TEXMACS_CONVERT) -x $(TEXMACS_HTML_SETTINGS) -c "$<" "$@" -q
dist_doc_DATA = doc/scheme-gnunet.tm doc/fdl.tm
nobase_dist_doc_DATA = examples/nse-web.scm
nodist_html_DATA = doc/scheme-gnunet.html
nodist_pdf_DATA = doc/scheme-gnunet.pdf
clean-local:
rm -f $(GOBJECTS)