First take on the low-level assuan interface.
[gpgme.git] / src / Makefile.am
1 # Copyright (C) 2000 Werner Koch (dd9jn)
2 # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007 g10 Code GmbH
3
4 # This file is part of GPGME.
5
6 # GPGME is free software; you can redistribute it and/or modify it
7 # under the terms of the GNU Lesser General Public License as
8 # published by the Free Software Foundation; either version 2.1 of the
9 # License, or (at your option) any later version.
10
11 # GPGME is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
14 # Public License for more details.
15
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19
20 ## Process this file with automake to produce Makefile.in
21
22 # Note: moc_kdpipeiodevice should actually be a dependcy below.
23 EXTRA_DIST = gpgme-config.in gpgme.m4 mkstatus libgpgme.vers \
24              gpgme.h.in versioninfo.rc.in gpgme.def moc_kdpipeiodevice.cpp
25 BUILT_SOURCES = status-table.h
26 MOSTLYCLEANFILES = status-table.h
27 bin_SCRIPTS = gpgme-config
28 m4datadir = $(datadir)/aclocal
29 m4data_DATA = gpgme.m4
30 include_HEADERS = gpgme.h
31
32 if HAVE_PTHREAD
33 ltlib_gpgme_pthread = libgpgme-pthread.la
34 else
35 ltlib_gpgme_pthread =
36 endif
37 if HAVE_PTH
38 ltlib_gpgme_pth = libgpgme-pth.la
39 else
40 ltlib_gpgme_pth =
41 endif
42
43 if BUILD_W32_GLIB
44 ltlib_gpgme_glib = libgpgme-glib.la
45 else
46 ltlib_gpgme_glib =
47 endif
48
49 if BUILD_W32_QT
50 ltlib_gpgme_qt = libgpgme-qt.la
51 else
52 ltlib_gpgme_qt =
53 endif
54
55 lib_LTLIBRARIES = libgpgme.la $(ltlib_gpgme_glib) $(ltlib_gpgme_qt) \
56         $(ltlib_gpgme_pthread) $(ltlib_gpgme_pth)
57
58 if HAVE_LD_VERSION_SCRIPT
59 libgpgme_version_script_cmd = -Wl,--version-script=$(srcdir)/libgpgme.vers
60 else
61 libgpgme_version_script_cmd =
62 endif
63
64 if BUILD_ASSUAN
65 assuan_cppflags = -I$(top_srcdir)/assuan
66 assuan_libobjs = ../assuan/libassuan.la
67 else
68 assuan_cppflags =
69 assuan_libobjs =
70 endif
71
72 if HAVE_DOSISH_SYSTEM
73 system_components = w32-util.c w32-sema.c
74 system_components_not_extra = w32-io.c
75 else
76 system_components = ath.h posix-util.c posix-sema.c posix-io.c
77 system_components_not_extra =
78 endif
79
80 if HAVE_GPGSM
81 gpgsm_components = engine-gpgsm.c engine-assuan.c
82 else
83 gpgsm_components =
84 endif
85
86 if HAVE_GPGCONF
87 gpgconf_components = engine-gpgconf.c
88 else
89 gpgconf_components =
90 endif
91
92 # These are the source files common to all library versions.  We used
93 # to build a non-installed library for that, but that does not work
94 # correctly on all platforms (in particular, one can not specify the
95 # right linking order with libtool, as the non-installed version has
96 # unresolved symbols to the thread module.
97 main_sources =                                                          \
98         gpgme.h util.h conversion.c get-env.c context.h ops.h           \
99         data.h data.c data-fd.c data-stream.c data-mem.c data-user.c    \
100         data-compat.c                                                   \
101         signers.c sig-notation.c                                        \
102         wait.c wait-global.c wait-private.c wait-user.c wait.h          \
103         op-support.c                                                    \
104         encrypt.c encrypt-sign.c decrypt.c decrypt-verify.c verify.c    \
105         sign.c passphrase.c progress.c                                  \
106         key.c keylist.c trust-item.c trustlist.c                        \
107         import.c export.c genkey.c delete.c edit.c getauditlog.c        \
108         opassuan.c                                                      \
109         engine.h engine-backend.h engine.c engine-gpg.c status-table.h  \
110         $(gpgsm_components) $(gpgconf_components) gpgconf.c             \
111         sema.h priv-io.h $(system_components) dirinfo.c                 \
112         debug.c debug.h gpgme.c version.c error.c
113
114 libgpgme_la_SOURCES = $(main_sources)                                   \
115         ath.h ath.c $(system_components_not_extra) 
116 libgpgme_pthread_la_SOURCES = $(main_sources)                           \
117         ath.h ath-pthread.c $(system_components_not_extra)
118 libgpgme_pth_la_SOURCES = $(main_sources)                               \
119         ath.h ath-pth.c $(system_components_not_extra)
120
121 if BUILD_W32_GLIB
122 libgpgme_glib_la_SOURCES = $(main_sources) ath.h ath.c w32-glib-io.c
123 endif
124
125 if BUILD_W32_QT
126 libgpgme_qt_la_SOURCES = $(main_sources) ath.h ath.c w32-qt-io.cpp \
127         kdpipeiodevice.h kdpipeiodevice.cpp kdpipeiodevice.moc
128 # FIXME: Add extra depedency: moc_kdpipeiodevice.cpp
129
130 # These are built sources (normally).
131 # moc_kdpipeiodevice.cpp: kdpipeiodevice.h
132 #       $(MOC4) -o $@ $<
133 #
134 # kdpipeiodevice.moc: kdpipeiodevice.cpp
135 #       $(MOC4) -o $@ $<
136 endif
137
138 # We use a global CFLAGS and CPPFLAGS setting for all library
139 # versions, because then every object file is only compiled once.
140 AM_CPPFLAGS = $(assuan_cppflags) @GPG_ERROR_CFLAGS@ @PTH_CPPFLAGS@ \
141         @QT4_CORE_CFLAGS@
142 AM_CFLAGS = @PTH_CFLAGS@ @GLIB_CFLAGS@ @QT4_CORE_CFLAGS@
143
144 if HAVE_W32_SYSTEM
145
146 # Windows provides us with an endless stream of Tough Love.  To spawn
147 # processes with a controlled set of inherited handles, we need a
148 # wrapper process.
149 libexec_PROGRAMS = gpgme-w32spawn
150
151
152 LTRCCOMPILE = $(LIBTOOL) --mode=compile $(RC) \
153      `echo $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) | \
154      sed -e 's/-I/--include-dir /g;s/-D/--define /g'`
155
156 SUFFIXES: .rc .lo
157
158 .rc.lo:
159         $(LTRCCOMPILE) -i $< -o $@
160
161 gpgme_res = versioninfo.lo
162 gpgme_res_ldflag = -Wl,.libs/versioninfo.o
163
164 no_undefined = -no-undefined
165 export_symbols = -export-symbols $(srcdir)/gpgme.def
166
167 install-def-file:
168         $(INSTALL) $(srcdir)/gpgme.def $(DESTDIR)$(libdir)/gpgme.def
169
170 uninstall-def-file:
171         -rm $(DESTDIR)$(libdir)/gpgme.def
172
173 gpgme_deps = $(gpgme_res) gpgme.def
174
175 else
176 gpgme_res =
177 gpgme_res_ldflag =
178 no_undefined =
179 export_symbols =
180 install-def-file:
181 uninstall-def-file:
182
183 gpgme_deps =
184 endif
185
186 libgpgme_la_LDFLAGS = $(gpgme_res_ldflag) $(no_undefined) $(export_symbols) \
187         $(libgpgme_version_script_cmd) -version-info \
188         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
189 libgpgme_la_DEPENDENCIES = $(assuan_libobjs) \
190         @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps)
191 libgpgme_la_LIBADD = $(assuan_libobjs) @LTLIBOBJS@ \
192         @GPG_ERROR_LIBS@ @NETLIBS@
193
194 libgpgme_pthread_la_LDFLAGS = $(libgpgme_version_script_cmd) -version-info \
195         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
196 libgpgme_pthread_la_DEPENDENCIES = $(assuan_libobjs) \
197         @LTLIBOBJS@ $(srcdir)/libgpgme.vers
198 libgpgme_pthread_la_LIBADD = $(assuan_libobjs) @LTLIBOBJS@ \
199         -lpthread @GPG_ERROR_LIBS@ @NETLIBS@
200
201 libgpgme_pth_la_LDFLAGS = @PTH_LDFLAGS@ \
202         $(libgpgme_version_script_cmd) -version-info \
203         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
204 libgpgme_pth_la_DEPENDENCIES = $(assuan_libobjs) \
205         @LTLIBOBJS@ $(srcdir)/libgpgme.vers
206 libgpgme_pth_la_LIBADD = $(assuan_libobjs) @LTLIBOBJS@ \
207         @PTH_LIBS@ @GPG_ERROR_LIBS@ @NETLIBS@
208
209 if BUILD_W32_GLIB
210 libgpgme_glib_la_LDFLAGS = $(gpgme_res_ldflag) $(no_undefined) \
211         $(export_symbols) $(libgpgme_version_script_cmd) -version-info \
212         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
213 libgpgme_glib_la_DEPENDENCIES = $(assuan_libobjs) \
214         @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps)
215 libgpgme_glib_la_LIBADD = $(assuan_libobjs) @LTLIBOBJS@ \
216         @GPG_ERROR_LIBS@ @GLIB_LIBS@ @NETLIBS@
217 endif
218
219 if BUILD_W32_QT
220 libgpgme_qt_la_LDFLAGS = $(gpgme_res_ldflag) $(no_undefined) \
221         $(export_symbols) $(libgpgme_version_script_cmd) -version-info \
222         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
223 libgpgme_qt_la_DEPENDENCIES = $(assuan_libobjs) \
224         @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps)
225 libgpgme_qt_la_LIBADD = $(assuan_libobjs) @LTLIBOBJS@ \
226         @GPG_ERROR_LIBS@ @QT4_CORE_LIBS@ @NETLIBS@
227 endif
228
229 status-table.h : gpgme.h
230         $(srcdir)/mkstatus < $(builddir)/gpgme.h > status-table.h
231
232 install-data-local: install-def-file
233
234 uninstall-local: uninstall-def-file