1QUIET_GEN = $(Q:@=@echo ' GEN '$@;)
2
3lib_LTLIBRARIES = libgda-5.0.la
4
5SUBDIRS = sqlite handlers binreloc sql-parser providers-support thread-wrapper
6
7DEF_FLAGS=
8if BDB
9GDA_BDB_H=gda-data-model-bdb.h
10GDA_BDB_S=gda-data-model-bdb.c
11DEF_FLAGS+=-DHAVE_BDB
12endif
13
14if LDAP
15GDA_LDAP_H=gda-data-model-ldap.h gda-tree-mgr-ldap.h
16GDA_LDAP_S=gda-data-model-ldap.c gda-tree-mgr-ldap.c
17DEF_FLAGS+=-DHAVE_LDAP
18endif
19
20GLOBAL_CFLAGS = \
21	-I$(top_srcdir) \
22	-I$(top_builddir) \
23	-I$(top_srcdir)/libgda/sqlite \
24	-I$(top_srcdir)/libgda \
25	-I$(top_builddir)/libgda/sqlite \
26	-DABI_VERSION=\""$(GDA_ABI_VERSION)"\" \
27	$(COREDEPS_CFLAGS) \
28	$(BDB_CFLAGS) \
29	-DBDB_LIB=\""$(BDB_LIB)"\" \
30	$(GIO_CFLAGS) $(LIBSECRET_CFLAGS) $(GNOME_KEYRING_CFLAGS)
31
32AM_CPPFLAGS = \
33	$(GLOBAL_CFLAGS) \
34	$(COREDEPS_WFLAGS)
35
36_gda_marshal_built_files = gda-marshal.h gda-marshal.c
37
38gda-marshal.h: gda-marshal.list $(GLIB_GENMARSHAL)
39	$(GLIB_GENMARSHAL) $< --header --prefix=_gda_marshal > $@
40gda-marshal.c: gda-marshal.list $(GLIB_GENMARSHAL)
41	$(GLIB_GENMARSHAL) $< --body --prefix=_gda_marshal > $@
42
43mkkeywordhash$(EXEEXT_FOR_BUILD): $(top_srcdir)/libgda/sqlite/mkkeywordhash.c
44	$(CC_FOR_BUILD) -g -o mkkeywordhash$(EXEEXT_FOR_BUILD) $(GDA_DEBUG_FLAGS) $<
45
46keywords_hash.c: mkkeywordhash$(EXEEXT_FOR_BUILD) $(top_srcdir)/libgda/keywords.list
47	./mkkeywordhash$(EXEEXT_FOR_BUILD) $(top_srcdir)/libgda/keywords.list > keywords_hash.c
48
49gda_headers = \
50	gda-attributes-manager.h \
51	gda-batch.h \
52	gda-blob-op.h \
53	gda-column.h \
54	gda-config.h \
55	gda-connection-event.h \
56	gda-connection.h \
57	gda-connection-private.h \
58	gda-data-comparator.h \
59	gda-data-handler.h \
60	gda-data-model-array.h \
61	gda-data-model.h \
62	$(GDA_BDB_H) \
63	$(GDA_LDAP_H) \
64	gda-data-model-dir.h \
65	gda-data-model-extra.h \
66	gda-data-model-import.h \
67	gda-data-model-iter.h \
68	gda-data-model-iter-extra.h \
69	gda-data-model-private.h \
70	gda-data-access-wrapper.h \
71	gda-data-proxy.h \
72	gda-data-select.h \
73	gda-decl.h \
74	gda-enums.h \
75	gda-holder.h \
76	gda-lockable.h \
77	gda-log.h \
78	gda-meta-store.h \
79	gda-meta-struct.h \
80	gda-mutex.h \
81	gda-quark-list.h \
82	gda-repetitive-statement.h \
83	gda-row.h \
84	gda-set.h \
85	gda-server-operation.h \
86	gda-server-provider.h \
87	gda-server-provider-extra.h \
88	gda-server-provider-private.h \
89	gda-statement.h \
90	gda-statement-extra.h \
91	gda-sql-builder.h \
92	gda-transaction-status.h \
93	gda-transaction-status-private.h \
94	gda-tree.h \
95	gda-tree-mgr-columns.h \
96	gda-tree-mgr-schemas.h \
97	gda-tree-mgr-tables.h \
98	gda-tree-node.h \
99	gda-tree-manager.h \
100	gda-tree-mgr-label.h \
101	gda-tree-mgr-select.h \
102	gda-util.h \
103	gda-value.h \
104	gda-xa-transaction.h \
105	libgda-global-variables.h \
106	gda-data-pivot.h
107
108gda_built_sources= \
109	$(builddir)/libgda.h
110
111gda_sources= \
112	gda-batch.c \
113	gda-blob-op.c \
114	gda-column.c \
115	gda-config.c \
116	gda-connection.c \
117	gda-connection-event.c \
118	gda-data-comparator.c \
119	gda-data-handler.c \
120	gda-data-model-array.c \
121	$(GDA_BDB_S) \
122	$(GDA_LDAP_S) \
123	gda-data-model.c \
124	gda-data-model-dir.c \
125	gda-data-model-import.c \
126	gda-data-model-iter.c \
127	gda-data-access-wrapper.c \
128	gda-data-proxy.c \
129	gda-data-select.c \
130	gda-holder.c \
131	gda-init.c \
132	gda-lockable.c \
133	gda-log.c \
134	gda-meta-store.c \
135	gda-meta-struct.c \
136	gda-meta-struct-io.c \
137	gda-quark-list.c \
138	gda-repetitive-statement.c \
139	gda-row.c \
140	gda-set.c \
141	gda-server-operation.c \
142	gda-server-provider.c \
143	gda-server-provider-extra.c \
144	gda-statement.c \
145	gda-sql-builder.c \
146	gda-transaction-status.c \
147	gda-tree.c \
148	gda-tree-mgr-columns.c \
149	gda-tree-mgr-schemas.c \
150	gda-tree-mgr-tables.c \
151	gda-tree-node.c \
152	gda-tree-manager.c \
153	gda-tree-mgr-label.c \
154	gda-tree-mgr-select.c \
155	gda-util.c \
156	gda-value.c \
157	gda-xa-transaction.c \
158	gda-data-pivot.c
159
160libgda_sources =  \
161	csv.h \
162	libcsv.c \
163	dir-blob-op.h \
164	dir-blob-op.c \
165	gda-attributes-manager.c \
166	$(gda_headers) \
167	gda-debug-macros.h \
168	gda-connection-internal.h \
169	gda-connection-sqlite.h \
170	gda-custom-marshal.c \
171	gda-custom-marshal.h \
172	gda-data-meta-wrapper.c \
173	gda-data-meta-wrapper.h \
174	gda-data-model-dsn-list.c \
175	gda-data-model-dsn-list.h \
176	gda-data-select-extra.h \
177	gda-meta-store-extra.h \
178	gda-meta-struct-private.h \
179	gda-marshal.c \
180	gda-mutex.c \
181	gda-server-operation-private.h \
182	gda-types.c \
183	gda-types.h \
184	gda-statement-priv.h \
185	global.h \
186	md5.h \
187	md5c.c \
188	$(gda_built_sources) \
189	$(gda_sources)
190
191gda-enum-types.h: s-enum-types-h
192	@true
193
194s-enum-types-h: @REBUILD@ $(gda_headers) Makefile
195	( cd $(srcdir) && glib-mkenums \
196	                --fhead "#ifndef __LIBGDA_ENUM_TYPES_H__\n#define __LIBGDA_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
197			--vhead "GType @enum_name@_get_type (void);\n#define GDA_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" 	\
198			--ftail "G_END_DECLS\n\n#endif /* __LIBGDA_ENUM_TYPES_H__ */" \
199		$(gda_headers)) > tmp-gda-enum-types.h \
200	&& (cmp -s tmp-gda-enum-types.h gda-enum-types.h || cp tmp-gda-enum-types.h gda-enum-types.h ) \
201	&& rm -f tmp-gda-enum-types.h	\
202	&& echo timestamp > $(@F)
203
204gda-enum-types.c: s-enum-types-c
205	@true
206
207s-enum-types-c: @REBUILD@ $(gda_headers) Makefile
208	( cd $(srcdir) && glib-mkenums \
209	                --fhead "#include <libgda/libgda.h>\n" \
210	                --fhead "#include <glib-object.h>" \
211			--vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {" 	\
212			--vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
213			--vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
214		$(gda_headers)) > tmp-gda-enum-types.c \
215	&& (cmp -s tmp-gda-enum-types.c gda-enum-types.c || cp tmp-gda-enum-types.c gda-enum-types.c ) \
216	&& rm -f tmp-gda-enum-types.c \
217	&& echo timestamp > $(@F)
218
219
220# Generate the enums source code, with glib-mkenums:
221# This is based on the same Makefile.am stuff in pango:
222libgda_built_headers = gda-marshal.h gda-enum-types.h
223libgda_built_cfiles = gda-enum-types.c
224
225# Don't build the library until we have built the headers that it needs:
226$(OBJECTS) $(libgda_5_0_la_OBJECTS): gda-marshal.c $(libgda_built_headers) $(libgda_built_cfiles) keywords_hash.c
227
228libgda_5_0_la_SOURCES = \
229	$(libgda_built_cfiles) \
230	$(libgda_sources)
231
232libgda_5_0_la_LDFLAGS = \
233	-version-info $(GDA_CURRENT):$(GDA_REVISION):$(GDA_AGE) \
234	-export-dynamic $(NO_UNDEFINED) $(LIBTOOL_EXPORT_OPTIONS) \
235	$(GDA_DEBUG_LDFLAGS)
236
237libgda_5_0_la_LIBADD = \
238	sql-parser/libgda_sql_parser-5.0.la \
239	providers-support/libgda-psupport.la \
240	handlers/libgda_handlers-5.0.la \
241	binreloc/libgda_binreloc-5.0.la \
242	sqlite/libgda-sqlite.la \
243	thread-wrapper/libgda_threadwrapper-5.0.la \
244	$(COREDEPS_LIBS) \
245	$(GIO_LIBS) $(LIBSECRET_LIBS) $(GNOME_KEYRING_LIBS)
246
247if PLATFORM_WIN32
248libgda_5_0_la_LDFLAGS += -export-symbols $(builddir)/libgda.def
249libgda_5_0_la_DEPENDENCIES = libgda.def
250
251libgda.def: libgda.symbols
252	(echo -e EXPORTS; $(CPP) -P $(DEF_FLAGS) - <$(srcdir)/libgda.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > libgda.def.tmp && mv libgda.def.tmp libgda.def
253
254libgda-$(GDA_ABI_VERSION).lib: libgda.def
255	$(DLLTOOL) --dllname libgda-$(GDA_ABI_VERSION)-$(GDA_ABI_MAJOR_VERSION).dll --def libgda.def --output-lib libgda-$(GDA_ABI_VERSION).lib
256
257install-data-local: install-def-files
258uninstall-local: uninstall-def-files
259
260install-def-files: libgda.def libgda-$(GDA_ABI_VERSION).lib
261	$(INSTALL) $(builddir)/libgda.def $(DESTDIR)$(libdir)/libgda-$(GDA_ABI_VERSION).def
262	$(INSTALL) $(builddir)/libgda-$(GDA_ABI_VERSION).lib $(DESTDIR)$(libdir)/
263
264uninstall-def-files:
265	-rm $(DESTDIR)$(libdir)/libgda-$(GDA_ABI_VERSION).def
266	-rm $(DESTDIR)$(libdir)/libgda-$(GDA_ABI_VERSION).lib
267endif
268
269gdaincludedir=$(includedir)/libgda-$(GDA_ABI_MAJOR_VERSION).$(GDA_ABI_MINOR_VERSION)/libgda
270gdainclude_HEADERS=$(libgda_built_headers) $(gda_headers) libgda.h
271
272CLEANFILES = $(libgda_built_headers) $(libgda_built_cfiles) \
273	gda-marshal.c \
274	gda-enum-types.h \
275	s-enum-types-h \
276	gda-enum-types.c \
277	s-enum-types-c \
278	libgda.def \
279	libgda-$(GDA_ABI_VERSION).lib \
280	mkkeywordhash$(EXEEXT_FOR_BUILD) keywords_hash.c
281
282dist-hook:
283	cd $(distdir); rm -f $(libgda_built_headers) $(libgda_built_cfiles)
284
285xmldir   = $(datadir)/libgda-5.0
286xml_DATA = information_schema.xml
287
288DTD_FILES = libgda-array.dtd libgda-paramlist.dtd  libgda-server-operation.dtd
289dtddir=$(LIBGDA_DTDDIR)
290dtd_DATA=$(DTD_FILES)
291EXTRA_DIST = \
292	$(DTD_FILES) \
293	$(xml_DATA) \
294	gda-marshal.list \
295	libgda.symbols \
296	keywords.list
297
298DISTCLEANFILES  = .deps/*.P
299if ENABLE_GDA_GI
300-include $(INTROSPECTION_MAKEFILE)
301INTROSPECTION_GIRS =
302INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) \
303			     --namespace Gda \
304			     --warn-all \
305			     --c-include=libgda/libgda.h
306INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
307
308psupport = \
309	providers-support/gda-pstmt.h \
310	providers-support/gda-pstmt.c
311
312threadwrapper = \
313	thread-wrapper/gda-thread-wrapper.h \
314	thread-wrapper/gda-thread-wrapper.c
315
316sqlparser = \
317	sql-parser/gda-sql-parser.h \
318	sql-parser/gda-sql-parser.c \
319	sql-parser/gda-statement-struct-decl.h \
320	sql-parser/gda-statement-struct-parts.h \
321	sql-parser/gda-statement-struct-compound.h
322
323handlers = \
324	handlers/gda-handler-bin.h \
325	handlers/gda-handler-boolean.h \
326	handlers/gda-handler-numerical.h \
327	handlers/gda-handler-string.h \
328	handlers/gda-handler-time.h \
329	handlers/gda-handler-type.h \
330	handlers/gda-handler-bin.c \
331	handlers/gda-handler-boolean.c \
332	handlers/gda-handler-numerical.c \
333	handlers/gda-handler-string.c \
334	handlers/gda-handler-time.c \
335	handlers/gda-handler-type.c
336
337introspection_sources = $(gda_sources) \
338	$(gda_headers) \
339	$(psupport) \
340	$(threadwrapper) \
341	$(sqlparser) \
342	$(handlers)
343Gda-5.0.gir: $(lib_LTLIBRARIES)
344Gda_5_0_gir_INCLUDES = GObject-2.0 libxml2-2.0
345Gda_5_0_gir_CFLAGS = $(GLOBAL_CFLAGS)
346
347Gda_5_0_gir_LIBS = $(lib_LTLIBRARIES)
348Gda_5_0_gir_FILES = $(addprefix $(srcdir)/,$(introspection_sources))
349Gda_5_0_gir_FILES += $(gda_built_sources)
350INTROSPECTION_GIRS += Gda-5.0.gir
351
352girdir = $(datadir)/gir-1.0
353typelibsdir = $(libdir)/girepository-1.0
354
355gir_DATA = $(INTROSPECTION_GIRS)
356typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
357
358CLEANFILES += $(typelibs_DATA) $(INTROSPECTION_GIRS)
359endif
360
361if ENABLE_VAPIGEN
362
363vapi: libgda-5.0.vapi
364
365libgda-5.0.vapi: Gda-5.0.gir
366	$(VAPIGEN) --metadatadir=$(top_srcdir)/libgda \
367		--library libgda-5.0 \
368		--pkg libxml-2.0 \
369		Gda-5.0.gir \
370		$(top_srcdir)/libgda/Gda-5.0-custom.vala
371
372vapidir = $(datadir)/vala/vapi
373vapi_DATA=libgda-5.0.vapi
374
375CLEANFILES += $(vapi_DATA)
376
377endif
378
379EXTRA_DIST += \
380	Gda-5.0.metadata \
381	Gda-5.0-custom.vala
382