73eeef20da7289d2a72f40be6330d9d3b564a3e3
[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, see <http://www.gnu.org/licenses/>.
18
19 ## Process this file with automake to produce Makefile.in
20
21 # Note: moc_kdpipeiodevice should actually be a dependcy below.
22 EXTRA_DIST = gpgme-config.in gpgme.m4 mkstatus libgpgme.vers \
23              gpgme.h.in versioninfo.rc.in gpgme.def moc_kdpipeiodevice.cpp
24 BUILT_SOURCES = status-table.h
25 MOSTLYCLEANFILES = status-table.h
26 bin_SCRIPTS = gpgme-config
27 m4datadir = $(datadir)/aclocal
28 m4data_DATA = gpgme.m4
29 nodist_include_HEADERS = gpgme.h
30
31 if HAVE_PTHREAD
32 ltlib_gpgme_pthread = libgpgme-pthread.la
33 else
34 ltlib_gpgme_pthread =
35 endif
36 if HAVE_PTH
37 ltlib_gpgme_pth = libgpgme-pth.la
38 else
39 ltlib_gpgme_pth =
40 endif
41
42 if BUILD_W32_GLIB
43 ltlib_gpgme_glib = libgpgme-glib.la
44 else
45 ltlib_gpgme_glib =
46 endif
47
48 if BUILD_W32_QT
49 ltlib_gpgme_qt = libgpgme-qt.la
50 else
51 ltlib_gpgme_qt =
52 endif
53
54 lib_LTLIBRARIES = libgpgme.la $(ltlib_gpgme_glib) $(ltlib_gpgme_qt) \
55         $(ltlib_gpgme_pthread) $(ltlib_gpgme_pth)
56
57 if HAVE_LD_VERSION_SCRIPT
58 libgpgme_version_script_cmd = -Wl,--version-script=$(srcdir)/libgpgme.vers
59 else
60 libgpgme_version_script_cmd =
61 endif
62
63 if HAVE_DOSISH_SYSTEM
64 system_components = w32-util.c w32-sema.c
65 system_components_not_extra = w32-io.c
66 else
67 system_components = ath.h posix-util.c posix-sema.c posix-io.c
68 system_components_not_extra =
69 endif
70
71 if HAVE_GPGSM
72 gpgsm_components = engine-gpgsm.c
73 else
74 gpgsm_components =
75 endif
76
77 if HAVE_ASSUAN
78 assuan_components = assuan-support.c engine-assuan.c
79 else
80 assuan_components =
81 endif
82
83 if HAVE_GPGCONF
84 gpgconf_components = engine-gpgconf.c
85 else
86 gpgconf_components =
87 endif
88
89 # These are the source files common to all library versions.  We used
90 # to build a non-installed library for that, but that does not work
91 # correctly on all platforms (in particular, one can not specify the
92 # right linking order with libtool, as the non-installed version has
93 # unresolved symbols to the thread module.
94 main_sources =                                                          \
95         util.h conversion.c get-env.c context.h ops.h                   \
96         data.h data.c data-fd.c data-stream.c data-mem.c data-user.c    \
97         data-compat.c                                                   \
98         signers.c sig-notation.c                                        \
99         wait.c wait-global.c wait-private.c wait-user.c wait.h          \
100         op-support.c                                                    \
101         encrypt.c encrypt-sign.c decrypt.c decrypt-verify.c verify.c    \
102         sign.c passphrase.c progress.c                                  \
103         key.c keylist.c trust-item.c trustlist.c                        \
104         import.c export.c genkey.c delete.c edit.c getauditlog.c        \
105         opassuan.c                                                      \
106         engine.h engine-backend.h engine.c engine-gpg.c status-table.h  \
107         $(gpgsm_components) $(assuan_components) $(gpgconf_components)  \
108         gpgconf.c                                                       \
109         sema.h priv-io.h $(system_components) dirinfo.c                 \
110         debug.c debug.h gpgme.c version.c error.c
111
112 libgpgme_la_SOURCES = $(main_sources)                                   \
113         ath.h ath.c $(system_components_not_extra) 
114 libgpgme_pthread_la_SOURCES = $(main_sources)                           \
115         ath.h ath-pthread.c $(system_components_not_extra)
116 libgpgme_pth_la_SOURCES = $(main_sources)                               \
117         ath.h ath-pth.c $(system_components_not_extra)
118
119 if BUILD_W32_GLIB
120 libgpgme_glib_la_SOURCES = $(main_sources) ath.h ath.c w32-glib-io.c
121 endif
122
123 if BUILD_W32_QT
124 libgpgme_qt_la_SOURCES = $(main_sources) ath.h ath.c w32-qt-io.cpp \
125         kdpipeiodevice.h kdpipeiodevice.cpp kdpipeiodevice.moc
126 # FIXME: Add extra depedency: moc_kdpipeiodevice.cpp
127
128 # These are built sources (normally).
129 # moc_kdpipeiodevice.cpp: kdpipeiodevice.h
130 #       $(MOC4) -o $@ $<
131 #
132 # kdpipeiodevice.moc: kdpipeiodevice.cpp
133 #       $(MOC4) -o $@ $<
134 endif
135
136 # We use a global CFLAGS and CPPFLAGS setting for all library
137 # versions, because then every object file is only compiled once.
138 AM_CPPFLAGS = @GPG_ERROR_CFLAGS@ @PTH_CPPFLAGS@ \
139         @QT4_CORE_CFLAGS@
140 AM_CFLAGS = @LIBASSUAN_CFLAGS@ @PTH_CFLAGS@ @GLIB_CFLAGS@ @QT4_CORE_CFLAGS@
141
142 if HAVE_W32_SYSTEM
143
144 # Windows provides us with an endless stream of Tough Love.  To spawn
145 # processes with a controlled set of inherited handles, we need a
146 # wrapper process.
147 libexec_PROGRAMS = gpgme-w32spawn
148
149
150 LTRCCOMPILE = $(LIBTOOL) --mode=compile $(RC) \
151      `echo $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) | \
152      sed -e 's/-I/--include-dir /g;s/-D/--define /g'`
153
154 SUFFIXES: .rc .lo
155
156 .rc.lo:
157         $(LTRCCOMPILE) -i $< -o $@
158
159 gpgme_res = versioninfo.lo
160 gpgme_res_ldflag = -Wl,.libs/versioninfo.o
161
162 no_undefined = -no-undefined
163 export_symbols = -export-symbols $(srcdir)/gpgme.def
164
165 install-def-file:
166         $(INSTALL) $(srcdir)/gpgme.def $(DESTDIR)$(libdir)/gpgme.def
167
168 uninstall-def-file:
169         -rm $(DESTDIR)$(libdir)/gpgme.def
170
171 gpgme_deps = $(gpgme_res) gpgme.def
172
173 else
174 gpgme_res =
175 gpgme_res_ldflag =
176 no_undefined =
177 export_symbols =
178 install-def-file:
179 uninstall-def-file:
180
181 gpgme_deps =
182 endif
183
184 libgpgme_la_LDFLAGS = $(gpgme_res_ldflag) $(no_undefined) $(export_symbols) \
185         $(libgpgme_version_script_cmd) -version-info \
186         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
187 libgpgme_la_DEPENDENCIES = @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps)
188 libgpgme_la_LIBADD = @LIBASSUAN_LIBS@ @LTLIBOBJS@ \
189         @GPG_ERROR_LIBS@ @NETLIBS@
190
191 libgpgme_pthread_la_LDFLAGS = $(libgpgme_version_script_cmd) -version-info \
192         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
193 libgpgme_pthread_la_DEPENDENCIES = @LTLIBOBJS@ $(srcdir)/libgpgme.vers
194 libgpgme_pthread_la_LIBADD = @LIBASSUAN_LIBS@ @LTLIBOBJS@ \
195         -lpthread @GPG_ERROR_LIBS@ @NETLIBS@
196
197 libgpgme_pth_la_LDFLAGS = @PTH_LDFLAGS@ \
198         $(libgpgme_version_script_cmd) -version-info \
199         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
200 libgpgme_pth_la_DEPENDENCIES = @LTLIBOBJS@ $(srcdir)/libgpgme.vers
201 libgpgme_pth_la_LIBADD = @LIBASSUAN_LIBS@ @LTLIBOBJS@ \
202         @PTH_LIBS@ @GPG_ERROR_LIBS@ @NETLIBS@
203
204 if BUILD_W32_GLIB
205 libgpgme_glib_la_LDFLAGS = $(gpgme_res_ldflag) $(no_undefined) \
206         $(export_symbols) $(libgpgme_version_script_cmd) -version-info \
207         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
208 libgpgme_glib_la_DEPENDENCIES = @LTLIBOBJS@ \
209         $(srcdir)/libgpgme.vers $(gpgme_deps)
210 libgpgme_glib_la_LIBADD = @LIBASSUAN_LIBS@ @LTLIBOBJS@ \
211         @GPG_ERROR_LIBS@ @GLIB_LIBS@ @NETLIBS@
212 endif
213
214 if BUILD_W32_QT
215 libgpgme_qt_la_LDFLAGS = $(gpgme_res_ldflag) $(no_undefined) \
216         $(export_symbols) $(libgpgme_version_script_cmd) -version-info \
217         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
218 libgpgme_qt_la_DEPENDENCIES = @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps)
219 libgpgme_qt_la_LIBADD = @LIBASSUAN_LIBS@ @LTLIBOBJS@ \
220         @GPG_ERROR_LIBS@ @QT4_CORE_LIBS@ @NETLIBS@
221 endif
222
223 status-table.h : gpgme.h
224         $(srcdir)/mkstatus < $(builddir)/gpgme.h > status-table.h
225
226 install-data-local: install-def-file
227
228 uninstall-local: uninstall-def-file