Use AM_V_GEN more a more quiet build
[gnome.gobject-introspection] / tests / scanner / Makefile.am
1 include $(top_srcdir)/common.mk
2 include $(top_srcdir)/Makefile.introspection
3
4 # We need to build a shared library, which can be dlopened
5 # it does not work with noinst_LTLIBRARIES
6 testlib_LTLIBRARIES = \
7         libannotation.la \
8         libdrawable.la \
9         libfoo.la \
10         libutility.la \
11         libgtkfrob.la
12 testlibdir = $(prefix)/unused
13 install-testlibLTLIBRARIES: # prevent it from being installed
14
15 AM_CPPFLAGS = -I$(top_srcdir)/girepository
16 AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS)
17 AM_LDFLAGS = -avoid-version
18 LIBS = $(GOBJECT_LIBS) $(GTHREAD_LIBS)
19
20 libannotation_la_SOURCES = $(srcdir)/annotation.c $(srcdir)/annotation.h
21 libdrawable_la_SOURCES = $(srcdir)/drawable.c $(srcdir)/drawable.h
22 libfoo_la_SOURCES = $(srcdir)/foo.c $(srcdir)/foo.h
23 libutility_la_SOURCES = $(srcdir)/utility.c $(srcdir)/utility.h
24 libgtkfrob_la_SOURCES = $(srcdir)/gtkfrob.c $(srcdir)/gtkfrob.h
25
26 if OS_WIN32
27 AM_LDFLAGS += -no-undefined
28 endif
29
30 # .gir --[scanner]-> .typelib --[generate]-> .tgir
31 GIRS =
32 TYPELIBS = $(GIRS:.gir=.typelib)
33 CHECKGIRS = $(GIRS:.gir=.gir.check)
34 EXPECTEDGIRS = $(GIRS:.gir=-expected.gir)
35 TGIRS = $(GIRS:.gir=.tgir)
36 CHECKTGIRS = $(GIRS:.gir=.tgir.check)
37 EXPECTEDTGIRS = $(GIRS:.gir=-expected.tgir)
38 INTROSPECTION_GIRS = $(GIRS)
39 CLEANFILES = $(TYPELIBS) $(GIRS)
40 BUILT_SOURCES = $(TYPELIBS) $(GIRS) $(TGIRS)
41 EXTRA_DIST = $(EXPECTEDGIRS) $(EXPECTEDTGIRS)
42
43 annotation-1.0.gir: utility-1.0.gir libannotation.la
44 annotation_1_0_gir_PACKAGES = gobject-2.0
45 annotation_1_0_gir_LIBS = libannotation.la
46 annotation_1_0_gir_INCLUDES = GObject-2.0 utility-1.0
47 annotation_1_0_gir_FILES = $(libannotation_la_SOURCES)
48 GIRS += annotation-1.0.gir
49
50 drawable-1.0.gir: utility-1.0.gir libdrawable.la
51 drawable_1_0_gir_PACKAGES = gobject-2.0
52 drawable_1_0_gir_LIBS = libdrawable.la
53 drawable_1_0_gir_INCLUDES = GObject-2.0 utility-1.0
54 drawable_1_0_gir_FILES = $(libdrawable_la_SOURCES)
55 GIRS += drawable-1.0.gir
56
57 foo-1.0.gir: utility-1.0.gir libfoo.la
58 foo_1_0_gir_PACKAGES = gobject-2.0
59 foo_1_0_gir_LIBS = libfoo.la
60 foo_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0 utility-1.0
61 foo_1_0_gir_FILES = $(srcdir)/foo.h $(srcdir)/foo.c
62 foo_1_0_gir_SCANNERFLAGS = --c-include="foo.h"
63 GIRS += foo-1.0.gir
64
65 utility-1.0.gir: libutility.la
66 utility_1_0_gir_PACKAGES = gobject-2.0
67 utility_1_0_gir_LIBS = libutility.la
68 utility_1_0_gir_INCLUDES = GObject-2.0
69 utility_1_0_gir_FILES = $(libutility_la_SOURCES)
70 GIRS += utility-1.0.gir
71
72 # This one tests different --namespace and --strip-prefix
73 GtkFrob-1.0.gir: libgtkfrob.la
74 GtkFrob_1_0_gir_PACKAGES = gobject-2.0
75 GtkFrob_1_0_gir_LIBS = libgtkfrob.la
76 GtkFrob_1_0_gir_INCLUDES = GObject-2.0
77 GtkFrob_1_0_gir_FILES = $(libgtkfrob_la_SOURCES)
78 GtkFrob_1_0_gir_SCANNERFLAGS = --strip-prefix=Gtk
79 GIRS += GtkFrob-1.0.gir
80
81 noinst_PROGRAMS = barapp
82
83 barapp_SOURCES = $(srcdir)/barapp.c $(srcdir)/barapp.h
84 barapp_LDADD = $(top_builddir)/girepository/libgirepository-1.0.la
85 barapp_LDFLAGS = -export-dynamic
86
87 BarApp-1.0.gir: barapp
88 BarApp_1_0_gir_PACKAGES = gobject-2.0
89 BarApp_1_0_gir_PROGRAM = ./barapp
90 BarApp_1_0_gir_INCLUDES = GObject-2.0
91 BarApp_1_0_gir_FILES = $(barapp_SOURCES)
92 BarApp_1_0_gir_SCANNERFLAGS = --strip-prefix=Bar
93 GIRS += BarApp-1.0.gir
94
95 pre-check:
96         @if test "$(top_builddir)" != "$(top_srcdir)"; then \
97            cp -f $(top_srcdir)/giscanner/*.py $(top_builddir)/giscanner; \
98         fi
99
100 post-check:
101         @echo "========================"
102         @echo "All scanner tests passed"
103         @echo "========================"
104         @if test "$(top_builddir)" != "$(top_srcdir)"; then \
105            rm -f $(top_builddir)/giscanner/*.py*; \
106         fi
107
108 %.gir.check: %.gir
109         @diff -u -U 10 $(srcdir)/$*-expected.gir $*.gir && echo "  TEST  $*.gir"
110
111 # stop %.typelib rule from building %-expected.tgir (via %-expected.typelib)
112 %-expected.typelib:
113         @true
114
115 %.tgir: %.typelib $(top_builddir)/tools/g-ir-generate$(EXEEXT) Makefile
116         $(AM_V_GEN) $(top_builddir)/tools/g-ir-generate --includedir=. --includedir=$(top_builddir)/gir $< -o $@
117
118 %.tgir.check: %.tgir
119         @diff -u -U 10 $(srcdir)/$*-expected.tgir $*.tgir; \
120         if test "$$?" = "0"; then \
121             echo "  TEST  $*.tgir"; \
122             rm -f $*.tgir; \
123         else \
124             exit 1; \
125         fi
126
127 distclean-local:
128         @if test "$(top_builddir)" != "$(top_srcdir)"; then \
129             rm -f $(top_builddir)/tests/scanner/*.tgir; \
130         fi
131
132 check-local: pre-check
133 check-local: $(CHECKGIRS) $(CHECKTGIRS) $(TYPELIBS)
134
135 check-local: post-check