Imported Upstream version 1.43.92
[platform/upstream/gobject-introspection.git] / tests / scanner / Makefile.am
1 NULL ?=
2
3 include $(top_srcdir)/common.mk
4 include $(top_srcdir)/Makefile.introspection
5
6 SUBDIRS = . annotationparser
7
8 INTROSPECTION_SCANNER_ARGS += --warn-all --reparse-validate
9
10 CLEANFILES =
11
12 EXTRA_LTLIBRARIES = \
13         libsletter.la \
14         libutility.la \
15         libgtkfrob.la \
16         libgettype.la \
17         libregress.la \
18         libwarnlib.la \
19         libtypedefs.la \
20         $(NULL)
21 CLEANFILES += $(EXTRA_LTLIBRARIES)
22
23 GI_SCANNER_CFLAGS = -I$(top_srcdir)/tests
24 AM_CPPFLAGS = -I$(top_srcdir)/girepository
25 AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS) $(GI_SCANNER_CFLAGS)
26 # -rpath needed to force libtool to build a shared library for a check_LTLIBRARIES
27 # target. See http://lists.gnu.org/archive/html/automake/2005-10/msg00107.html
28 AM_LDFLAGS = -rpath /unused -avoid-version
29 LIBS = $(GOBJECT_LIBS) $(GTHREAD_LIBS)
30
31 libsletter_la_SOURCES = $(srcdir)/sletter.c $(srcdir)/sletter.h
32 libsletter_la_LIBADD = $(GIO_LIBS)
33 libsletter_la_CFLAGS = $(AM_CFLAGS)
34 libsletter_la_LDFLAGS = $(AM_LDFLAGS)
35
36 libutility_la_SOURCES = $(srcdir)/utility.c $(srcdir)/utility.h
37 libgtkfrob_la_SOURCES = $(srcdir)/gtkfrob.c $(srcdir)/gtkfrob.h
38 libregress_la_SOURCES = \
39         $(srcdir)/regress.c $(srcdir)/regress.h \
40         $(srcdir)/annotation.c $(srcdir)/annotation.h \
41         $(srcdir)/foo.c $(srcdir)/foo.h \
42         $(srcdir)/drawable.c $(srcdir)/drawable.h \
43         $(NULL)
44 REGRESS_PRINT_PREVIEW_COMMAND="evince --unlink-tempfile --preview --print-settings %s %f"
45 libregress_la_CPPFLAGS = -DREGRESS_PRINT_PREVIEW_COMMAND=\"$(REGRESS_PRINT_PREVIEW_COMMAND)\" \
46                          -DREGRESS_SOME_CHAR=\'c\'
47 libregress_la_LIBADD = $(GIO_LIBS)
48 if HAVE_CAIRO
49 libregress_la_LIBADD += $(CAIRO_LIBS)
50 endif
51 libwarnlib_la_CFLAGS = $(AM_CFLAGS)
52 libwarnlib_la_SOURCES = $(srcdir)/warnlib.c $(srcdir)/warnlib.h
53 libwarnlib_la_LIBADD = $(GIO_LIBS)
54 libwarnlib_la_LDFLAGS = -export-symbols-regex '^warnlib_' -no-undefined
55 libgettype_la_SOURCES = $(srcdir)/gettype.c $(srcdir)/gettype.h
56 libtypedefs_la_SOURCES = $(srcdir)/typedefs.c $(srcdir)/typedefs.h
57
58 testsdir = $(datadir)/gobject-introspection-1.0/tests
59 tests_DATA = $(libregress_la_SOURCES) $(libwarnlib_la_SOURCES) $(libutility_la_SOURCES)
60
61 if !HAVE_CAIRO
62 libregress_la_CPPFLAGS += -D_GI_DISABLE_CAIRO
63 endif
64 libregress_la_CFLAGS = $(AM_CFLAGS)
65 if HAVE_CAIRO
66 libregress_la_CFLAGS += $(CAIRO_CFLAGS)
67 endif
68 libregress_la_LDFLAGS = $(AM_LDFLAGS)
69
70
71 if OS_WIN32
72 AM_LDFLAGS += -no-undefined
73 endif
74
75 # .gir --[scanner]-> .typelib
76 GIRS =
77 TYPELIBS = $(GIRS:.gir=.typelib)
78 CHECKGIRS = $(GIRS)
79 EXPECTEDGIRS = $(GIRS:.gir=-expected.gir)
80 INTROSPECTION_GIRS = $(GIRS)
81 CLEANFILES += $(TYPELIBS) $(GIRS)
82 EXTRA_DIST = $(EXPECTEDGIRS)
83
84 SLetter-1.0.gir: $(top_builddir)/Gio-2.0.gir libsletter.la
85 SLetter_1_0_gir_LIBS = libsletter.la
86 SLetter_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
87 SLetter_1_0_gir_INCLUDES = Gio-2.0
88 SLetter_1_0_gir_FILES = $(libsletter_la_SOURCES)
89 SLetter_1_0_gir_SCANNERFLAGS = --identifier-prefix=S --c-include="sletter.h" --warn-error
90 GIRS += SLetter-1.0.gir
91
92 Regress-1.0.gir: $(top_builddir)/Gio-2.0.gir Utility-1.0.gir libregress.la
93 Regress_1_0_gir_LIBS = libregress.la
94 Regress_1_0_gir_CFLAGS = $(libregress_la_CPPFLAGS) $(libregress_la_CFLAGS) -include "glib.h"
95 Regress_1_0_gir_INCLUDES = Gio-2.0 Utility-1.0
96 if HAVE_CAIRO
97 Regress_1_0_gir_INCLUDES += cairo-1.0 
98 endif
99 Regress_1_0_gir_FILES = $(libregress_la_SOURCES)
100 Regress_1_0_gir_SCANNERFLAGS = --c-include="regress.h" --warn-error
101 GIRS += Regress-1.0.gir
102
103 WarnLib-1.0.gir: $(top_builddir)/Gio-2.0.gir libwarnlib.la
104 WarnLib_1_0_gir_LIBS = libwarnlib.la
105 WarnLib_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
106 WarnLib_1_0_gir_INCLUDES = Gio-2.0
107 WarnLib_1_0_gir_FILES = $(libwarnlib_la_SOURCES)
108 WarnLib_1_0_gir_SCANNERFLAGS = --c-include="warnlib.h" --symbol-prefix=warnlib_
109 GIRS += WarnLib-1.0.gir
110
111 Utility-1.0.gir: libutility.la
112 Utility_1_0_gir_PACKAGES = gobject-2.0
113 Utility_1_0_gir_LIBS = libutility.la
114 Utility_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
115 Utility_1_0_gir_INCLUDES = GObject-2.0
116 Utility_1_0_gir_FILES = $(libutility_la_SOURCES)
117 Utility_1_0_gir_SCANNERFLAGS = --c-include="utility.h" --warn-error
118 GIRS += Utility-1.0.gir
119
120 # This one tests different --namespace and --strip-prefix
121 GtkFrob-1.0.gir: libgtkfrob.la
122 GtkFrob_1_0_gir_PACKAGES = gobject-2.0
123 GtkFrob_1_0_gir_LIBS = libgtkfrob.la
124 GtkFrob_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
125 GtkFrob_1_0_gir_INCLUDES = GObject-2.0
126 GtkFrob_1_0_gir_FILES = $(libgtkfrob_la_SOURCES)
127 GtkFrob_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gtk --symbol-prefix=gtk_frob --warn-error
128 GIRS += GtkFrob-1.0.gir
129
130 # This tests that functions called _get_type are only matched if they have no
131 # arguments and return GType
132 GetType-1.0.gir: libgettype.la
133 GetType_1_0_gir_PACKAGES = gobject-2.0
134 GetType_1_0_gir_LIBS = libgettype.la
135 GetType_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
136 GetType_1_0_gir_INCLUDES = GObject-2.0
137 GetType_1_0_gir_FILES = $(libgettype_la_SOURCES)
138 GetType_1_0_gir_SCANNERFLAGS = --c-include="gettype.h" --identifier-prefix=GetType --symbol-prefix=gettype
139 GIRS += GetType-1.0.gir
140
141 Typedefs-1.0.gir: libtypedefs.la
142 Typedefs_1_0_gir_PACKAGES = gobject-2.0
143 Typedefs_1_0_gir_LIBS = libtypedefs.la
144 Typedefs_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
145 Typedefs_1_0_gir_INCLUDES = GObject-2.0
146 Typedefs_1_0_gir_FILES = $(libtypedefs_la_SOURCES)
147 Typedefs_1_0_gir_SCANNERFLAGS = --c-include="typedefs.h" --identifier-prefix=Typedefs --symbol-prefix=typedefs
148 GIRS += Typedefs-1.0.gir
149
150 if !OS_WIN32
151 EXTRA_PROGRAMS = barapp
152 CLEANFILES += $(EXTRA_PROGRAMS)
153
154 barapp_SOURCES = $(srcdir)/barapp.c $(srcdir)/barapp.h
155 barapp_LDADD = $(top_builddir)/libgirepository-1.0.la
156 barapp_LDFLAGS = -export-dynamic
157
158 Bar-1.0.gir: barapp
159 Bar_1_0_gir_PACKAGES = gobject-2.0
160 Bar_1_0_gir_PROGRAM = ./barapp
161 Bar_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
162 Bar_1_0_gir_INCLUDES = GObject-2.0
163 Bar_1_0_gir_FILES = $(barapp_SOURCES)
164 Bar_1_0_gir_SCANNERFLAGS = --accept-unprefixed
165 GIRS += Bar-1.0.gir
166 endif
167
168 EXTRA_DIST += \
169         headeronly.h \
170         Headeronly-1.0-expected.gir
171 CLEANFILES += Headeronly-1.0.gir
172 CHECKGIRS += Headeronly-1.0.gir
173
174 Headeronly-1.0.gir: headeronly.h
175         $(AM_V_GEN) $(INTROSPECTION_SCANNER) $(INTROSPECTION_SCANNER_ARGS) --warn-all --warn-error --reparse-validate --namespace=Headeronly --nsversion=1.0 --header-only --output=$@ $<
176
177 EXTRA_DIST += \
178         identfilter.py \
179         identfilter.h \
180         Identfilter-1.0-expected.gir
181 CLEANFILES += Identfilter-1.0.gir
182 CHECKGIRS += Identfilter-1.0.gir
183
184 Identfilter-1.0.gir: identfilter.h
185         $(AM_V_GEN) $(INTROSPECTION_SCANNER) $(INTROSPECTION_SCANNER_ARGS) \
186                 --warn-all --reparse-validate \
187                 --namespace=Identfilter --accept-unprefixed --nsversion=1.0 --header-only \
188                 --identifier-filter-cmd="$(PYTHON) $(srcdir)/identfilter.py" \
189                 --output=$@ $<
190
191 if BUILD_DOCTOOL
192 DOCGIRS = Regress-1.0.gir
193 CHECKDOCS = $(DOCGIRS:.gir=-C) $(DOCGIRS:.gir=-Python) $(DOCGIRS:.gir=-Gjs) $(DOCGIRS:.gir=-sections.txt)
194 MALLARD_DIRS = $(DOCGIRS:.gir=-C) $(DOCGIRS:.gir=-Python) $(DOCGIRS:.gir=-Gjs)
195 MALLARD_CLEAN = $(DOCGIRS:.gir=-C)/* $(DOCGIRS:.gir=-Python)/* $(DOCGIRS:.gir=-Gjs)/* $(DOCGIRS:.gir=-sections.txt)
196 EXPECTED_MALLARD_DIRS = $(MALLARD_DIRS:=-expected)
197 CLEANFILES += $(MALLARD_CLEAN)
198
199 %-C: %.gir
200         $(AM_V_GEN)rm -rf $(builddir)/$*-C
201         $(AM_V_at)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --language C $*.gir -o $(builddir)/$*-C/
202
203 %-Python: %.gir
204         $(AM_V_GEN)rm -rf $(builddir)/$*-Python
205         $(AM_V_at)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --language Python $*.gir -o $(builddir)/$*-Python/
206
207 %-Gjs: %.gir
208         $(AM_V_GEN)rm -rf $(builddir)/$*-Gjs
209         $(AM_V_at)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --language Gjs $*.gir -o $(builddir)/$*-Gjs/
210
211 %-sections.txt: %.gir
212         $(AM_V_GEN)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --write-sections-file $*.gir -o $@
213
214 else
215 CHECKDOCS =
216 endif
217
218 PYTESTS = \
219         test_sourcescanner.py \
220         test_transformer.py
221
222 TESTS = $(CHECKGIRS) $(CHECKDOCS) $(TYPELIBS) $(PYTESTS)
223 TESTS_ENVIRONMENT = srcdir=$(srcdir) top_srcdir=$(top_srcdir) builddir=$(builddir) top_builddir=$(top_builddir) \
224         PYTHON=$(PYTHON) UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir)
225 LOG_COMPILER = $(top_srcdir)/tests/gi-tester
226
227 EXTRA_DIST += \
228         $(PYTESTS) \
229         Regress-1.0-C-expected                                  \
230         Regress-1.0-Gjs-expected                                \
231         Regress-1.0-Python-expected                             \
232         Regress-1.0-sections-expected.txt                       \
233         $(NULL)