summaryrefslogtreecommitdiff
path: root/src/libtracker-sparql/Makefile.am
blob: d4f1c0b37857590806c9aef51d08bee6e5179fd9 (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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
noinst_LTLIBRARIES = libtracker-sparql.la

libtracker_sparql_la_VALAFLAGS =                       \
	--gir Tracker-$(TRACKER_API_VERSION).gir       \
	--library tracker-sparql-$(TRACKER_API_VERSION) \
	--includedir=libtracker-sparql                 \
	--header $(vala_header:.h=-no-checks.h)        \
	--vapi tracker-sparql.vapi                     \
	--pkg gio-2.0 --pkg posix                      \
	$(BUILD_VALAFLAGS)

AM_CPPFLAGS =                                          \
	$(BUILD_VALACFLAGS)                            \
	-I$(top_srcdir)/src                            \
	-I$(top_builddir)/src                          \
	$(LIBTRACKER_SPARQL_CFLAGS)

libtracker_sparqlincludedir = $(includedir)/tracker-$(TRACKER_API_VERSION)/libtracker-sparql

tracker-sparql-enum-types.h: tracker-sparql-enum-types.h.template tracker-notifier.h
	$(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template tracker-sparql-enum-types.h.template tracker-notifier.h) > $@

tracker-sparql-enum-types.c: tracker-sparql-enum-types.c.template tracker-sparql-enum-types.h
	$(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template tracker-sparql-enum-types.c.template tracker-notifier.h) > $@

ENUM_SOURCES =                                         \
	tracker-sparql-enum-types.c                    \
	tracker-sparql-enum-types.h

libtracker_sparql_la_SOURCES =   \
	$(ENUM_SOURCES)                                \
	tracker-namespace.vala                         \
	tracker-builder.vala                           \
	tracker-connection.vala                        \
	tracker-cursor.vala                            \
	tracker-namespace-manager.c                    \
	tracker-namespace-manager.h                    \
	tracker-notifier.c                             \
	tracker-notifier.h                             \
	tracker-resource.c                             \
	tracker-resource.h                             \
	tracker-utils.vala                             \
	tracker-uri.c                                  \
	tracker-uri.h                                  \
	tracker-ontologies.h \
	tracker-version.c \
	tracker-version.h

libtracker_sparql_la_LIBADD =    \
	$(BUILD_LIBS)                                  \
	$(LIBTRACKER_SPARQL_LIBS)

# Should only be one file
vala_header = tracker-generated.h

# We wrap the generated .h file with a check to make sure it's
# not included directly. All other .[ch] headers have this.
%-generated.h: %-generated-no-checks.h
	$(AM_V_GEN)(echo "#if !defined (__LIBTRACKER_SPARQL_INSIDE__) && !defined (TRACKER_COMPILATION)" ; \
	            echo "#error \"only <libtracker-sparql/tracker-sparql.h> must be included directly.\"" ; \
	            echo "#endif") > $@
	$(AM_V_GEN)(cat $< >> $@)

tracker-sparql-$(TRACKER_API_VERSION).vapi: tracker-sparql.vapi
	$(AM_V_GEN)(sed -e 's/tracker-generated-no-checks.h/tracker-sparql.h/' $< > $@)

libtracker_sparqlinclude_HEADERS =                     \
	$(vala_header)                                 \
	tracker-namespace-manager.h                    \
	tracker-notifier.h                             \
	tracker-ontologies.h                           \
	tracker-resource.h                             \
	tracker-sparql.h                               \
	tracker-version.h

tracker-sparql-$(TRACKER_API_VERSION).deps: tracker-sparql.deps
	$(AM_V_GEN)cp $^ $@

# PkgConfig
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = tracker-sparql-$(TRACKER_API_VERSION).pc

tracker-sparql-$(TRACKER_API_VERSION).pc: tracker-sparql.pc
	cp $< $@

CLEANFILES = \
	$(ENUM_SOURCES)                                 \
	tracker-sparql-$(TRACKER_API_VERSION).pc

# Vala bindings
vapidir = $(datadir)/vala/vapi
vapi_DATA =                                            \
	tracker-sparql-$(TRACKER_API_VERSION).vapi     \
	tracker-sparql-$(TRACKER_API_VERSION).deps

BUILT_SOURCES =                                        \
	libtracker_sparql_la_vala.stamp

MAINTAINERCLEANFILES =                                 \
	tracker-sparql-$(TRACKER_API_VERSION).vapi     \
	tracker-sparql-$(TRACKER_API_VERSION).deps     \
	$(vala_header:.h=-no-checks.h)

CLEANFILES += tracker-sparql-$(TRACKER_API_VERSION).vapi

EXTRA_DIST =                                           \
	tracker-sparql-enum-types.c.template           \
	tracker-sparql-enum-types.h.template           \
	tracker-sparql-$(TRACKER_API_VERSION).deps     \
	tracker-sparql.deps                            \
	$(vala_header:.h=-no-checks.h)                 \
	meson.build

# Introspection foo
-include $(INTROSPECTION_MAKEFILE)

if HAVE_INTROSPECTION
Tracker-@TRACKER_API_VERSION@.typelib: Tracker-$(TRACKER_API_VERSION).gir
	@INTROSPECTION_COMPILER@ --shared-library=libtracker-sparql-@TRACKER_API_VERSION@.so.0 -o $@ $^

girdir = $(datadir)/gir-1.0
gir_DATA = Tracker-$(TRACKER_API_VERSION).gir

typelibdir = $(libdir)/girepository-1.0
typelib_DATA = $(gir_DATA:.gir=.typelib)

# We don't clean the gir/typelib data for *Vala* generated g-ir files.
# However, we do for *C* generated g-ir files due to Vala not being
# required when building from a tarball.
DISTCLEANFILES = $(gir_DATA) $(typelib_DATA)
endif