1394c02835c14511bb6a9db604ba09b8cc6ace4d
[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 <https://www.gnu.org/licenses/>.
18
19 ## Process this file with automake to produce Makefile.in
20
21 EXTRA_DIST = gpgme-config.in gpgme.m4 libgpgme.vers ChangeLog-2011 \
22              gpgme.h.in versioninfo.rc.in gpgme.def
23
24 bin_SCRIPTS = gpgme-config
25 m4datadir = $(datadir)/aclocal
26 m4data_DATA = gpgme.m4
27 nodist_include_HEADERS = gpgme.h
28
29 bin_PROGRAMS = gpgme-tool gpgme-json
30
31 if BUILD_W32_GLIB
32 ltlib_gpgme_glib = libgpgme-glib.la
33 else
34 ltlib_gpgme_glib =
35 endif
36
37 lib_LTLIBRARIES = libgpgme.la $(ltlib_gpgme_glib)
38
39 if HAVE_LD_VERSION_SCRIPT
40 libgpgme_version_script_cmd = -Wl,--version-script=$(srcdir)/libgpgme.vers
41 else
42 libgpgme_version_script_cmd =
43 endif
44
45 if HAVE_DOSISH_SYSTEM
46 system_components = w32-util.c
47 system_components_not_extra = w32-io.c
48 else
49 system_components = ath.h posix-util.c posix-io.c
50 system_components_not_extra =
51 endif
52
53 if HAVE_W32CE_SYSTEM
54 system_components += w32-ce.h w32-ce.c
55 endif
56
57 if HAVE_UISERVER
58 uiserver_components = engine-uiserver.c
59 else
60 uiserver_components =
61 endif
62
63 # These are the source files common to all library versions.  We used
64 # to build a non-installed library for that, but that does not work
65 # correctly on all platforms (in particular, one can not specify the
66 # right linking order with libtool, as the non-installed version has
67 # unresolved symbols to the thread module.
68 main_sources =                                                          \
69         util.h conversion.c b64dec.c get-env.c context.h ops.h          \
70         parsetlv.c parsetlv.h                                           \
71         mbox-util.c mbox-util.h                                         \
72         data.h data.c data-fd.c data-stream.c data-mem.c data-user.c    \
73         data-estream.c                                                  \
74         data-compat.c data-identify.c                                   \
75         signers.c sig-notation.c                                        \
76         wait.c wait-global.c wait-private.c wait-user.c wait.h          \
77         op-support.c                                                    \
78         encrypt.c encrypt-sign.c decrypt.c decrypt-verify.c verify.c    \
79         sign.c passphrase.c progress.c                                  \
80         key.c keylist.c keysign.c trust-item.c trustlist.c tofupolicy.c \
81         import.c export.c genkey.c delete.c edit.c getauditlog.c        \
82         opassuan.c passwd.c spawn.c assuan-support.c                    \
83         engine.h engine-backend.h engine.c engine-gpg.c status-table.c  \
84         engine-gpgsm.c engine-assuan.c engine-gpgconf.c                 \
85         $(uiserver_components)                                          \
86         engine-g13.c vfs-mount.c vfs-create.c                           \
87         engine-spawn.c                                                  \
88         gpgconf.c queryswdb.c                                           \
89         sema.h priv-io.h $(system_components) sys-util.h dirinfo.c      \
90         debug.c debug.h gpgme.c version.c error.c \
91         ath.h ath.c
92
93 libgpgme_la_SOURCES = $(main_sources) $(system_components_not_extra)
94
95 if BUILD_W32_GLIB
96 libgpgme_glib_la_SOURCES = $(main_sources) w32-glib-io.c
97 endif
98
99 # We use a global CFLAGS setting for all libraries
100 # versions, because then every object file is only compiled once.
101 AM_CFLAGS = @LIBASSUAN_CFLAGS@ @GLIB_CFLAGS@
102
103 gpgme_tool_SOURCES = gpgme-tool.c argparse.c argparse.h
104 gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@
105
106 gpgme_json_SOURCES = gpgme-json.c cJSON.c cJSON.h
107 gpgme_json_LDADD = -lm libgpgme.la $(GPG_ERROR_LIBS)
108
109
110 if HAVE_W32_SYSTEM
111 # Windows provides us with an endless stream of Tough Love.  To spawn
112 # processes with a controlled set of inherited handles, we need a
113 # wrapper process.
114 # Except on Windows CE.  There nothing is inheritable anyway.
115 if HAVE_W32CE_SYSTEM
116 libexec_PROGRAMS =
117 else
118 libexec_PROGRAMS = gpgme-w32spawn
119 endif
120
121 RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
122 LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
123
124 SUFFIXES = .rc .lo
125
126 .rc.lo:
127         $(LTRCCOMPILE) -i "$<" -o "$@"
128
129 gpgme_res = versioninfo.lo
130 no_undefined = -no-undefined
131 export_symbols = -export-symbols $(srcdir)/gpgme.def
132 extra_ltoptions = -XCClinker -static-libgcc
133
134 install-def-file:
135         -$(INSTALL) -d $(DESTDIR)$(libdir)
136         $(INSTALL) $(srcdir)/gpgme.def $(DESTDIR)$(libdir)/gpgme.def
137
138 uninstall-def-file:
139         -rm $(DESTDIR)$(libdir)/gpgme.def
140
141 gpgme_deps = $(gpgme_res) gpgme.def
142
143 else
144 gpgme_res =
145 no_undefined =
146 export_symbols =
147 extra_ltoptions =
148 install-def-file:
149 uninstall-def-file:
150
151 gpgme_deps =
152 endif
153
154 libgpgme_la_LDFLAGS = $(no_undefined) $(export_symbols) $(extra_ltoptions) \
155         $(libgpgme_version_script_cmd) -version-info \
156         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
157 libgpgme_la_DEPENDENCIES = @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps)
158 libgpgme_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \
159                      @GPG_ERROR_LIBS@
160
161 if BUILD_W32_GLIB
162 libgpgme_glib_la_LDFLAGS = \
163         $(no_undefined) $(export_symbols) $(extra_ltoptions) \
164         $(libgpgme_version_script_cmd) -version-info \
165         @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
166 libgpgme_glib_la_DEPENDENCIES = @LTLIBOBJS@ \
167         $(srcdir)/libgpgme.vers $(gpgme_deps)
168 libgpgme_glib_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \
169         @GPG_ERROR_LIBS@ @GLIB_LIBS@
170 endif
171
172 install-data-local: install-def-file
173
174 uninstall-local: uninstall-def-file