blob: 7c7785e7ea14d5339b38724ed8e99ad4bc74bb83 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# guile-xapian --- Guile bindings for Xapian
# Copyright © 2020, 2021, 2022, 2023 Arun Isaac <arunisaac@systemreboot.net>
# Copyright © 2022 Bob131 <bob@bob131.so>
#
# This file is part of guile-xapian.
#
# guile-xapian 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 2 of the License, or
# (at your option) any later version.
#
# guile-xapian 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 guile-xapian. If not, see
# <https://www.gnu.org/licenses/>.
# Prefix variables for silencing various commands. See "(automake)
# Automake Silent Rules" for details.
EMACS_GEN = $(EMACS_GEN_$(V))
EMACS_GEN_ = $(EMACS_GEN_$(AM_DEFAULT_VERBOSITY))
EMACS_GEN_0 = @echo " EMACS" $@;
EMACS_GEN_1 =
GUILD_GEN = $(GUILD_GEN_$(V))
GUILD_GEN_ = $(GUILD_GEN_$(AM_DEFAULT_VERBOSITY))
GUILD_GEN_0 = @echo " GUILD " $@;
GUILD_GEN_1 =
SWIG_GEN = $(SWIG_GEN_$(V))
SWIG_GEN_ = $(SWIG_GEN_$(AM_DEFAULT_VERBOSITY))
SWIG_GEN_0 = @echo " SWIG " $@;
SWIG_GEN_1 =
# Xapian wrapper
lib_LTLIBRARIES = libguilexapian-@GUILE_EFFECTIVE_VERSION@.la
BUILT_SOURCES = xapian_wrap.cc xapian/wrap.scm
libguilexapian_@GUILE_EFFECTIVE_VERSION@_la_SOURCES = xapian_wrap.cc
libguilexapian_@GUILE_EFFECTIVE_VERSION@_la_CXXFLAGS = $(GUILE_CFLAGS) $(XAPIAN_CFLAGS)
libguilexapian_@GUILE_EFFECTIVE_VERSION@_la_LDFLAGS = $(GUILE_LIBS) $(XAPIAN_LIBS)
CLEANFILES = xapian.i xapian_wrap.cc xapian/wrap.scm
xapian.i: xapian.i.in Makefile
sed -e 's|@libdir[@]|$(libdir)|g' -e 's|@GUILE_EFFECTIVE_VERSION[@]|$(GUILE_EFFECTIVE_VERSION)|g' $< > $@
xapian_wrap.cc xapian/wrap.scm &: xapian.i xapian-head.i xapian-headers.i except.i
$(MKDIR_P) xapian
$(SWIG_GEN)$(SWIG) $(SWIG_FLAGS) -I$(srcdir) -scmstub -o xapian_wrap.cc -guile -package xapian -c++ $<
# Guile code
moddir = $(prefix)/share/guile/site/$(GUILE_EFFECTIVE_VERSION)
godir = $(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache
SOURCES = xapian/error.scm xapian/wrap.scm xapian/xapian.scm
GOBJECTS = $(SOURCES:%.scm=%.go)
nobase_mod_DATA = $(SOURCES)
nobase_go_DATA = $(GOBJECTS)
CLEANFILES += $(GOBJECTS)
GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
%.go: %.scm
$(GUILD_GEN)$(builddir)/pre-inst-env $(GUILD) compile $(GUILE_WARNINGS) -o "$@" "$<"
# Building xapian/xapian.scm additionally requires the libguilexapian
# shared library.
xapian/xapian.go: xapian/xapian.scm libguilexapian-@GUILE_EFFECTIVE_VERSION@.la
# Tests
TEST_EXTENSIONS = .scm
SCM_TESTS = tests/xapian.scm
TESTS = $(SCM_TESTS)
SCM_LOG_DRIVER = \
$(builddir)/pre-inst-env \
$(GUILE) --no-auto-compile -s \
$(builddir)/build-aux/test-driver.scm
# Distribution
EXTRA_DIST = $(TESTS) $(SOURCES) xapian.i.in xapian-head.i xapian-headers.i
# Build website
website: website/index.html
CLEANFILES += website/index.html
website/index.html: README.org
$(EMACS_GEN)$(EMACS) -Q --batch --load build-aux/build-home-page.el --funcall build-website
|