Fix last change.
[gpgme.git] / gpgme / Makefile.am
1 # Copyright (C) 2000 Werner Koch (dd9jn)
2 # Copyright (C) 2001, 2002, 2003, 2004, 2005 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 EXTRA_DIST = gpgme-config.in gpgme.m4 mkstatus libgpgme.vers \
23              versioninfo.rc.in gpgme.def
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 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_extra = libgpgme-glib.la
44 else
45 ltlib_gpgme_extra =
46 endif
47
48 lib_LTLIBRARIES = libgpgme.la $(ltlib_gpgme_extra) \
49         $(ltlib_gpgme_pthread) $(ltlib_gpgme_pth)
50
51 if HAVE_LD_VERSION_SCRIPT
52 libgpgme_version_script_cmd = -Wl,--version-script=$(srcdir)/libgpgme.vers
53 else
54 libgpgme_version_script_cmd =
55 endif
56
57 if BUILD_ASSUAN
58 assuan_cppflags = -I$(top_srcdir)/assuan
59 assuan_libobjs = ../assuan/libassuan.la
60 else
61 assuan_cppflags =
62 assuan_libobjs =
63 endif
64
65 if HAVE_DOSISH_SYSTEM
66 system_components = w32-util.c w32-sema.c
67 system_components_not_extra = w32-io.c
68 else
69 system_components = ath.h posix-util.c posix-sema.c posix-io.c
70 system_components_not_extra =
71 endif
72
73 if HAVE_GPGSM
74 gpgsm_components = engine-gpgsm.c
75 else
76 gpgsm_components =
77 endif
78
79 # These are the source files common to all library versions.  We used
80 # to build a non-installed library for that, but that does not work
81 # correctly on all platforms (in particular, one can not specify the
82 # right linking order with libtool, as the non-installed version has
83 # unresolved symbols to the thread module.
84 main_sources =                                                          \
85         gpgme.h util.h conversion.c get-env.c context.h ops.h           \
86         data.h data.c data-fd.c data-stream.c data-mem.c data-user.c    \
87         data-compat.c                                                   \
88         signers.c sig-notation.c                                        \
89         wait.c wait-global.c wait-private.c wait-user.c wait.h          \
90         op-support.c                                                    \
91         encrypt.c encrypt-sign.c decrypt.c decrypt-verify.c verify.c    \
92         sign.c passphrase.c progress.c                                  \
93         key.c keylist.c trust-item.c trustlist.c                        \
94         import.c export.c genkey.c delete.c edit.c                      \
95         engine.h engine-backend.h engine.c rungpg.c status-table.h      \
96         $(gpgsm_components) sema.h priv-io.h $(system_components)       \
97         debug.c debug.h gpgme.c version.c error.c
98
99 libgpgme_la_SOURCES = $(main_sources)                                   \
100         ath.h ath.c $(system_components_not_extra) 
101 libgpgme_pthread_la_SOURCES = $(main_sources)                           \
102         ath.h ath-pthread.c $(system_components_not_extra)
103 libgpgme_pth_la_SOURCES = $(main_sources)                               \
104         ath.h ath-pth.c $(system_components_not_extra)
105
106 if BUILD_W32_GLIB
107 libgpgme_glib_la_SOURCES = $(main_sources) ath.h ath.c w32-glib-io.c
108 endif
109
110 # We use a global CFLAGS and CPPFLAGS setting for all library
111 # versions, because then every object file is only compiled once.
112 AM_CPPFLAGS = $(assuan_cppflags) @GPG_ERROR_CFLAGS@ @PTH_CPPFLAGS@
113 AM_CFLAGS = @PTH_CFLAGS@ @GLIB_CFLAGS@
114
115 if HAVE_W32_SYSTEM
116
117 LTRCCOMPILE = $(LIBTOOL) --mode=compile $(RC) \
118      `echo $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) | \
119      sed -e 's/-I/--include-dir /g;s/-D/--define /g'`
120
121 SUFFIXES: .rc .lo
122
123 .rc.lo:
124         $(LTRCCOMPILE) -i $< -o $@
125
126 gpgme_res = versioninfo.lo
127 gpgme_res_ldflag = -Wl,.libs/versioninfo.o
128
129 no_undefined = -no-undefined
130 export_symbols = -export-symbols $(srcdir)/gpgme.def
131
132 install-def-file:
133         $(INSTALL) $(srcdir)/gpgme.def $(DESTDIR)$(libdir)/gpgme.def
134
135 uninstall-def-file:
136         -rm $(DESTDIR)$(libdir)/gpgme.def
137
138 gpgme_deps = $(gpgme_res) gpgme.def
139
140 else
141 gpgme_res =
142 gpgme_res_ldflag =
143 no_undefined =
144 export_symbols =
145 install-def-file:
146 uninstall-def-file:
147
148 gpgme_deps =
149 endif
150
151 libgpgme_la_LDFLAGS = $(gpgme_res_ldflag) $(no_undefined) $(export_symbols) \
152         $(libgpgme_version_script_cmd) -version-info \
153         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
154 libgpgme_la_DEPENDENCIES = $(assuan_libobjs) \
155         @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps)
156 libgpgme_la_LIBADD = $(assuan_libobjs) @LTLIBOBJS@ \
157         @GPG_ERROR_LIBS@ @NETLIBS@
158
159 libgpgme_pthread_la_LDFLAGS = $(libgpgme_version_script_cmd) -version-info \
160         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
161 libgpgme_pthread_la_DEPENDENCIES = $(assuan_libobjs) \
162         @LTLIBOBJS@ $(srcdir)/libgpgme.vers
163 libgpgme_pthread_la_LIBADD = $(assuan_libobjs) @LTLIBOBJS@ \
164         -lpthread @GPG_ERROR_LIBS@ @NETLIBS@
165
166 libgpgme_pth_la_LDFLAGS = @PTH_LDFLAGS@ \
167         $(libgpgme_version_script_cmd) -version-info \
168         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
169 libgpgme_pth_la_DEPENDENCIES = $(assuan_libobjs) \
170         @LTLIBOBJS@ $(srcdir)/libgpgme.vers
171 libgpgme_pth_la_LIBADD = $(assuan_libobjs) @LTLIBOBJS@ \
172         @PTH_LIBS@ @GPG_ERROR_LIBS@ @NETLIBS@
173
174 if BUILD_W32_GLIB
175 libgpgme_glib_la_LDFLAGS = $(gpgme_res_ldflag) $(no_undefined) \
176         $(export_symbols) $(libgpgme_version_script_cmd) -version-info \
177         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
178 libgpgme_glib_la_DEPENDENCIES = $(assuan_libobjs) \
179         @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps)
180 libgpgme_glib_la_LIBADD = $(assuan_libobjs) @LTLIBOBJS@ \
181         @GPG_ERROR_LIBS@ @GLIB_LIBS@ @NETLIBS@
182 endif
183
184 status-table.h : gpgme.h
185         $(srcdir)/mkstatus < $(srcdir)/gpgme.h > status-table.h
186
187 install-data-local: install-def-file
188
189 uninstall-local: uninstall-def-file