aboutsummaryrefslogtreecommitdiff
path: root/Makefile.am
blob: 71f83daae8ad9a0047a32f1fdeb135c0f0a91f02 (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
# guile-xapian --- Guile bindings for Xapian
# Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
#
# 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/>.

# Xapian wrapper

lib_LTLIBRARIES = libguilexapian.la

BUILT_SOURCES = xapian_wrap.cc
libguilexapian_la_SOURCES = xapian_wrap.cc
libguilexapian_la_CXXFLAGS = $(GUILE_CFLAGS) $(XAPIAN_CFLAGS)
libguilexapian_la_LDFLAGS = $(GUILE_LIBS) $(XAPIAN_LIBS)

xapian.i: xapian.i.in Makefile
	sed 's|@libdir[@]|$(libdir)|g' $< > $@

xapian_wrap.cc: xapian.i xapian-head.i xapian-headers.i
	$(SWIG) $(SWIG_FLAGS) -scmstub -o $@ -guile -package xapian -c++ $<

xapian_wrap.scm: xapian_wrap.cc

# Guile code

moddir = $(prefix)/share/guile/site/$(GUILE_EFFECTIVE_VERSION)
godir  = $(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache

SOURCES = xapian/wrap.scm xapian/xapian.scm
GOBJECTS = $(SOURCES:%.scm=%.go)

nobase_mod_DATA = $(SOURCES)
nobase_go_DATA = $(GOBJECTS)

CLEANFILES = $(GOBJECTS)
EXTRA_DIST = $(SOURCES)
GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
SUFFIXES = .scm .go
.scm.go:
	$(AM_V_GEN)$(top_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.la