minimal build
[platform/upstream/gcr.git] / gck / Makefile.am
1 include $(top_srcdir)/Makefile.decl
2
3 SUBDIRS = . tests
4
5 incdir = $(includedir)/gck-@GCK_MAJOR@/gck
6
7 HEADER_FILES = \
8         gck.h \
9         gck-deprecated.h
10
11 inc_HEADERS = \
12         $(HEADER_FILES) \
13         gck-enum-types.h \
14         pkcs11.h \
15         pkcs11n.h \
16         pkcs11x.h
17
18 INCLUDES = \
19         -I$(top_builddir) \
20         -I$(top_srcdir)/gcr \
21         -I$(top_srcdir) \
22         $(P11_KIT_CFLAGS) \
23         $(GTHREAD_CFLAGS) \
24         $(GLIB_CFLAGS) \
25         -DG_LOG_DOMAIN=\"Gck\" \
26         -DGCK_API_SUBJECT_TO_CHANGE \
27         -DP11_KIT_API_SUBJECT_TO_CHANGE \
28         -DPKCS11_REGISTRY_DIR=\"$(libdir)/pkcs11\"
29
30 BUILT_SOURCES = \
31         gck-marshal.c gck-marshal.h \
32         gck-enum-types.c gck-enum-types.h
33
34 lib_LTLIBRARIES = libgck-@GCK_MAJOR@.la
35
36 PUBLIC_FILES = \
37         gck.h \
38         gck-enum-types.h \
39         gck-attributes.c \
40         gck-dump.c \
41         gck-enumerator.c \
42         gck-misc.c \
43         gck-module.c \
44         gck-modules.c \
45         gck-object.c \
46         gck-object-cache.c \
47         gck-password.c \
48         gck-session.c \
49         gck-slot.c \
50         gck-uri.c
51
52 INTERNAL_FILES = \
53         gck-call.c \
54         gck-debug.c gck-debug.h \
55         gck-deprecated.h \
56         gck-interaction.c \
57         gck-private.h \
58         pkcs11.h
59
60 libgck_@GCK_MAJOR@_la_SOURCES = \
61         $(PUBLIC_FILES) \
62         $(INTERNAL_FILES)
63
64 nodist_libgck_@GCK_MAJOR@_la_SOURCES = \
65         $(BUILT_SOURCES)
66
67 libgck_@GCK_MAJOR@_la_LDFLAGS = \
68         -version-info $(GCK_LT_RELEASE) \
69         -no-undefined \
70         -export-symbols-regex '^gck_.*|^SECMEM_.*'
71
72 libgck_@GCK_MAJOR@_la_LIBADD = \
73         $(top_builddir)/egg/libegg-hex.la \
74         $(top_builddir)/egg/libegg-secmem.la \
75         $(P11_KIT_LIBS) \
76         $(GTHREAD_LIBS) \
77         $(GIO_LIBS) \
78         $(GLIB_LIBS)
79
80 noinst_LTLIBRARIES = libgck-testable.la
81 libgck_testable_la_SOURCES = \
82         gck-mock.c \
83         gck-mock.h \
84         gck-test.c \
85         gck-test.h
86 libgck_testable_la_LIBADD = $(libgck_@GCK_MAJOR@_la_OBJECTS) \
87         $(libgck_@GCK_MAJOR@_la_LIBADD)
88 libgck_testable_la_DEPENDENCIES = $(libgck_@GCK_MAJOR@_la_OBJECTS)
89
90 gck-marshal.h: gck-marshal.list $(GLIB_GENMARSHAL)
91         $(GLIB_GENMARSHAL) $< --header --prefix=_gck_marshal > $@
92
93 gck-marshal.c: gck-marshal.list $(GLIB_GENMARSHAL)
94         echo "#include \"gck-marshal.h\"" > $@ && \
95         $(GLIB_GENMARSHAL) $< --body --prefix=_gck_marshal >> $@
96
97 gck-enum-types.h: $(ENUM_TEMPLATE_H) $(HEADER_FILES)
98         $(GLIB_MKENUMS) --template $^ > $@
99
100 gck-enum-types.c: $(ENUM_TEMPLATE_C) $(HEADER_FILES)
101         $(GLIB_MKENUMS) --template $^ > $@
102
103 # ------------------------------------------------------------------
104 # INTROSPECTION
105
106 if HAVE_INTROSPECTION
107
108 include $(INTROSPECTION_MAKEFILE)
109
110 INTROSPECTION_GIRS = Gck-@GCK_MAJOR@.gir
111 INTROSPECTION_SCANNER_ARGS = $(INTROSPECTION_FLAGS) --warn-all --add-include-path=$(srcdir) --add-include-path=.
112 INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) --includedir=.
113
114 Gck-@GCK_MAJOR@.gir: libgck-@GCK_MAJOR@.la
115
116 Gck_@GCK_MAJOR@_gir_PACKAGES = gobject-2.0 gio-2.0 p11-kit-1
117 Gck_@GCK_MAJOR@_gir_EXPORT_PACKAGES = gck-@GCK_MAJOR@
118 Gck_@GCK_MAJOR@_gir_INCLUDES = GObject-2.0 Gio-2.0
119 Gck_@GCK_MAJOR@_gir_LIBS = libgck-@GCK_MAJOR@.la
120 Gck_@GCK_MAJOR@_gir_CFLAGS = -I$(top_srcdir) -I$(top_builddir) -DGCK_COMPILATION -DGCK_API_SUBJECT_TO_CHANGE
121 Gck_@GCK_MAJOR@_gir_FILES = $(PUBLIC_FILES)
122 Gck_@GCK_MAJOR@_gir_SCANNERFLAGS = --c-include "gck.h"
123
124 girdir = $(datadir)/gir-1.0
125 gir_DATA = $(INTROSPECTION_GIRS)
126
127 typelibsdir = $(libdir)/girepository-1.0
128 typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
129
130 endif
131
132 # ----------------------------------------------------------------
133
134 pkgconfig_DATA = gck-$(GCK_MAJOR).pc
135
136 gck-$(GCK_MAJOR).pc: gck.pc
137         $(AM_V_GEN) cp gck.pc gck-$(GCK_MAJOR).pc
138
139 gck-expected.abi: gck.symbols
140         $(AM_V_GEN) cpp -P $< | sort > $@
141
142 gck-actual.abi: $(builddir)/.libs/libgck-@GCK_MAJOR@.so
143         $(AM_V_GEN)  $(NM) -D -g --defined-only $< | \
144                 cut -d ' ' -f 3 | grep -Ev '^(__bss_start|_edata|_end)' | sort > $@
145
146 check-symbols: gck-expected.abi gck-actual.abi
147         $(AM_V_GEN) diff -U0 --ignore-blank-lines gck-expected.abi gck-actual.abi || \
148                 (echo "check-symbols: Symbols have CHANGED. Fix gck.symbols"; exit 1)
149
150 check-local: check-symbols
151
152 check-memory:
153         make -C tests check-memory
154
155 EXTRA_DIST = \
156         gck.pc.in \
157         gck-marshal.list \
158         gck.symbols \
159         pkcs11-trust-assertions.h \
160         pkcs11i.h
161
162 CLEANFILES = \
163         gck-$(GCK_MAJOR).pc \
164         $(gir_DATA) \
165         $(typelibs_DATA) \
166         $(BUILT_SOURCES) \
167         gck-actual.abi \
168         gck-expected.abi