Remove (8sync agenda) as an import from actors.scm and add wrap-apply.
[8sync.git] / Makefile.am
1 ## Copyright © 2015, 2016, 2017 Christopher Allan Webber <cwebber@dustycloud.org>
2
3 ## parts of this automake recipe borrowed from:
4
5 ## GNU Guix --- Functional package management for GNU
6 ## Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
7 ## Copyright © 2013 Andreas Enge <andreas@enge.fr>
8 ## Copyright © 2015 Alex Kost <alezost@gmail.com>
9
10 ## Sly
11 ## Copyright (C) 2013, 2014 David Thompson <dthompson2@worcester.edu>
12
13 ## This program is free software: you can redistribute it and/or
14 ## modify it under the terms of the GNU General Public License as
15 ## published by the Free Software Foundation, either version 3 of the
16 ## License, or (at your option) any later version.
17 ##
18 ## This program is distributed in the hope that it will be useful, but
19 ## WITHOUT ANY WARRANTY; without even the implied warranty of
20 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 ## General Public License for more details.
22 ##
23 ## You should have received a copy of the GNU General Public License
24 ## along with this program.  If not, see
25 ## <http://www.gnu.org/licenses/>.
26
27 GOBJECTS = $(SOURCES:%.scm=%.go)
28 nobase_mod_DATA = $(SOURCES)
29 nobase_go_DATA = $(GOBJECTS)
30
31 # Make sure source files are installed first, so that the mtime of
32 # installed compiled files is greater than that of installed source
33 # files.  See
34 # <http://lists.gnu.org/archive/html/guile-devel/2010-07/msg00125.html>
35 # for details.
36 guile_install_go_files = install-nobase_goDATA
37 $(guile_install_go_files): install-nobase_modDATA
38
39 GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
40 SUFFIXES = .scm .go
41 .scm.go:
42         $(AM_V_GEN)$(top_builddir)/pre-inst-env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<"
43
44 moddir=$(prefix)/share/guile/site/2.2
45 godir=$(libdir)/guile/2.2/ccache
46
47 SOURCES =  \
48         8sync.scm                                       \
49         8sync/actors.scm                                \
50         8sync/daydream.scm                              \
51         8sync/inbox.scm                                 \
52         8sync/repl.scm                                  \
53         8sync/rmeta-slot.scm                            \
54         8sync/systems/irc.scm
55 #       8sync/agenda.scm                                \
56 #       8sync/debug.scm                                 \
57 #       8sync/ports.scm                                 \
58 #       8sync/contrib/base64.scm                        \
59 #       8sync/contrib/sha-1.scm                         \
60 #       8sync/systems/web.scm                           \
61 #       8sync/systems/websocket.scm                     \
62 #       8sync/systems/websocket/client.scm              \
63 #       8sync/systems/websocket/frame.scm               \
64 #       8sync/systems/websocket/server.scm              \
65 #       8sync/systems/websocket/utils.scm
66
67 TESTS =                                                 \
68         tests/test-agenda.scm                           \
69         tests/test-actors.scm                           \
70         tests/test-rmeta-slot.scm
71
72 TEST_EXTENSIONS = .scm
73
74 SCM_LOG_COMPILER = $(GUILE)
75 AM_SCM_LOG_FLAGS = --no-auto-compile -L $(top_srcdir)
76
77 CLEANFILES =                                            \
78         $(GOBJECTS)                                     \
79         $(TESTS:tests/%.scm=%.log)                      \
80         *.log *.tar.gz
81
82
83 EXTRA_DIST =                                            \
84         $(SOURCES)                                      \
85         $(TESTS)                                        \
86         $(NOCOMP_SOURCES)                               \
87         COPYING-gplv3.txt                               \
88         pre-inst-env.in                                 \
89         bootstrap.sh                                    \
90         guix.scm                                        \
91         tests/utils.scm                                 \
92         demos/run-demo.sh                               \
93         demos/ircbot.scm                                \
94         demos/actors/botherbotherbother.scm             \
95         demos/actors/simplest-possible.scm              \
96         demos/actors/robotscanner.scm
97
98
99 ## Make changelog on demand
100
101 dist-hook: gen-ChangeLog
102 # gen-AUTHORS might be useful to borrow from Guix
103
104 gen-ChangeLog:
105         if test -d .git; then                           \
106           $(top_srcdir)/build-aux/gitlog-to-changelog --since 2015-11-28        \
107             > $(distdir)/cl-t;                          \
108           rm -f $(distdir)/ChangeLog;                   \
109           mv $(distdir)/cl-t $(distdir)/ChangeLog;      \
110         fi
111
112 ## Texinfo stuff
113
114 info_TEXINFOS = doc/8sync.texi
115
116 8sync_TEXINFOS =                                \
117   doc/fdl.texi
118
119 dvi-local: # Skip dvi docs