Remove gnutls and dependencies
[gpg4win.git] / configure.ac
1 # configure.ac for GPG4Win
2 # Copyright (C) 2005, 2006, 2007, 2008, 2010 g10 Code GmbH
3 #
4 # This file is part of GPG4Win
5 #
6 # GPG4Win is free software; you can redistribute it and/or modify it
7 # under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
10 #
11 # GPG4Win is distributed in the hope that it will be useful, but
12 # WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 # General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, see <http://www.gnu.org/licenses/>.
18
19 # (Process this file with autoconf to produce a configure script.)
20
21 AC_PREREQ(2.59)
22 min_automake_version="1.9.3"
23
24 # To build a release you need to create a tag with the version number
25 # (git tag -s gpg4win-2.x.y) and run "./autogen.sh --force".  Please
26 # bump the version number immediately after the release and do another
27 # commit and push so that the git magic is able to work.
28 #
29 # After a release the make target "copy-news" is to be called as well!
30 m4_define([my_version], [3.0.0])
31
32 # Below is m4 magic to extract and compute the git revision number,
33 # the decimalized short revision number, a beta version string and a
34 # flag indicating a development version (my_isgit). The latter works
35 # by requiring the final tag in the repository.
36 m4_define([git_revision],
37           m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r']))
38 m4_define([git_revision_dec],
39           m4_esyscmd_s([echo $((0x$(echo ]git_revision[|head -c 4)))]))
40 m4_define([git_betastring],
41           m4_esyscmd_s([git describe --tags --match 'gpg4win-[0-9].*.*[0-9]' \
42                        --long | awk -F- '$3!=0{print"-beta"$3}']))
43 m4_define([my_isgit],m4_if(git_betastring,[],[no],[yes]))
44 m4_define([my_full_version],[my_version[]git_betastring])
45
46 AC_INIT([gpg4win],[my_full_version],[gpg4win-devel@wald.intevation.org])
47
48 # Remember to update these version numbers also in the NEWS file.
49 MANUALVERSION_EINSTEIGER="2.0.2"
50 MANUALDATE_EINSTEIGER="30. Mai 2006"
51 MANUALVERSION_DURCHBLICKER="2.0.2"
52 MANUALDATE_DURCHBLICKER="30. Mai 2006"
53 MANUALVERSION_NOVICES="1.0.0"
54 MANUALDATE_NOVICES="Nov. 30, 2006"
55 MANUALVERSION_ADVANCED="0.0.0"
56 MANUALDATE_ADVANCED="Nov. 30, 2006"
57 COMPENDIUM_VERSION_DE="3.0.0"
58 COMPENDIUM_DATE_DE="3. August 2015"
59 COMPENDIUMINPROGRESS_DE="zuletzt geringfügig korrigiert am 3. August 2015"
60 COMPENDIUM_VERSION_EN="3.0.0"
61 COMPENDIUM_DATE_EN="3rd August 2015"
62 COMPENDIUMINPROGRESS_EN="last minor changes from 3rd August 2015"
63
64 MANUALINPROGRESS_DE=m4_if(my_isgit,[yes],["~und evtl. seitdem weiter bearbeitet"])
65 MANUALINPROGRESS_EN=m4_if(my_isgit,[yes],["~and may have been further edited"])
66 PACKAGE=$PACKAGE_NAME
67 VERSION=$PACKAGE_VERSION
68 GIT_REVISION=git_revision
69 GIT_REVISION_DEC=git_revision_dec
70
71
72 AC_CONFIG_SRCDIR(src/config.nsi.in)
73 AC_CONFIG_MACRO_DIR(m4)
74
75 AM_INIT_AUTOMAKE([tar-ustar])
76 AM_MAINTAINER_MODE
77 AC_CANONICAL_HOST
78 AM_CONFIG_HEADER(config.h)
79
80 # Language support
81 AM_PO_SUBDIRS
82
83
84 AC_SUBST(PACKAGE)
85 AC_SUBST(VERSION)
86 AC_SUBST(MANUALVERSION_EINSTEIGER)
87 AC_SUBST(MANUALDATE_EINSTEIGER)
88 AC_SUBST(MANUALVERSION_DURCHBLICKER)
89 AC_SUBST(MANUALDATE_DURCHBLICKER)
90 AC_SUBST(MANUALINPROGRESS_DE)
91 AC_SUBST(MANUALVERSION_NOVICES)
92 AC_SUBST(MANUALDATE_NOVICES)
93 AC_SUBST(MANUALVERSION_ADVANCED)
94 AC_SUBST(MANUALDATE_ADVANCED)
95 AC_SUBST(MANUALINPROGRESS_EN)
96 AC_SUBST(COMPENDIUM_VERSION_DE)
97 AC_SUBST(COMPENDIUM_DATE_DE)
98 AC_SUBST(COMPENDIUMINPROGRESS_DE)
99 AC_SUBST(COMPENDIUM_VERSION_EN)
100 AC_SUBST(COMPENDIUM_DATE_EN)
101 AC_SUBST(COMPENDIUMINPROGRESS_EN)
102
103 if echo "${PACKAGE_VERSION}" | egrep 'svn|rc|beta|git' >/dev/null ; then
104   IS_BETA_BUILD=yes
105 else
106   IS_BETA_BUILD=no
107 fi
108 AC_SUBST(IS_BETA_BUILD)
109
110 # Generate extended version information.  Note, that for NSIS use we
111 # must not translate the dots to commas in the BUILD_FILEVERSION.
112 BUILD_TIMESTAMP=`date --iso-8601=minutes`
113 BUILD_ISODATE=`date --iso-8601`
114 changequote(,)dnl
115 BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./'`
116 changequote([,])dnl
117 BUILD_FILEVERSION="${BUILD_FILEVERSION}${GIT_REVISION_DEC}"
118 AC_SUBST(BUILD_TIMESTAMP)
119 AC_SUBST(BUILD_ISODATE)
120 AC_SUBST(BUILD_FILEVERSION)
121
122 # To test the manuals using an actual web server, the preview target
123 # may be used in doc/manuals.  The default is my (wk) test environment
124 # but may be overriden using another preview variable.  PREVIEWHOST is
125 # expected to be the target for an rsync command.
126 if test -z "$PREVIEWHOST" ; then
127    PREVIEWHOST="vigenere:/var/www/all/preview.gpg4win.org/htdocs/"
128 fi
129 AC_SUBST(PREVIEWHOST)
130
131 # The final release is copied to an archive server.  The default
132 # location may be changed by setting the RELEASEHOST envvar.
133 if test -z "$RELEASEHOST" ; then
134    RELEASEHOST="vigenere:tarballs/gpg4win"
135    if test "${IS_BETA_BUILD}" = yes ; then
136       RELEASEHOST="${RELEASEHOST}/Beta"
137    fi
138 fi
139 AC_SUBST(RELEASEHOST)
140
141 # Substitutions to set generated files in a Emacs buffer to read-only.
142 AC_SUBST(emacs_local_vars_begin, ['Local Variables:'])
143 AC_SUBST(emacs_local_vars_read_only, ['buffer-read-only: t'])
144 AC_SUBST(emacs_local_vars_end, ['End:'])
145
146 # For development of this package it is useful to build without
147 # creating the source installer (takes a long time).  This option may
148 # be used to suppress creation of the source installer.
149 AC_ARG_ENABLE(source-installer,
150     AC_HELP_STRING([--disable-source-installer],
151                    [Do not create the Source installer]),
152                     build_source_installer=$enableval,
153                     build_source_installer=yes)
154 AM_CONDITIONAL(BUILD_SOURCE_INSTALLER, test "$build_source_installer" = yes)
155
156
157 # You can build a light version of the installer in addition to the
158 # regular version.  This one does not contain the manuals.
159 AC_ARG_ENABLE(light-installer,
160     AC_HELP_STRING([--disable-light-installer],
161                    [Do not create the light version of the installer]),
162                     build_light_installer=$enableval,
163                     build_light_installer=yes)
164 AM_CONDITIONAL(BUILD_LIGHT_INSTALLER, test "$build_light_installer" = yes)
165
166 # You can build a vanilla version of the installer, featuring only
167 # GnuPG, a pinentry and GPGME, in addition to the regular version.
168 # This one does not contain the manuals.
169 AC_ARG_ENABLE(vanilla-installer,
170     AC_HELP_STRING([--disable-vanilla-installer],
171                    [Do not create the vanilla version of the installer]),
172                     build_vanilla_installer=$enableval,
173                     build_vanilla_installer=yes)
174 AM_CONDITIONAL(BUILD_VANILLA_INSTALLER, test "$build_vanilla_installer" = yes)
175
176 # If you want to build only the light or vanilla installer, you may
177 # disable building of the full installer.
178 AC_ARG_ENABLE(full-installer,
179     AC_HELP_STRING([--disable-full-installer],
180                    [Do not create the full version of the installer]),
181                     build_full_installer=$enableval,
182                     build_full_installer=yes)
183 AM_CONDITIONAL(BUILD_FULL_INSTALLER, test "$build_full_installer" = yes)
184
185 # For development it is often faster to build without manuals.
186 AC_ARG_ENABLE(manuals,
187     AC_HELP_STRING([--disable-manuals],
188                    [Do not build the manuals (for debugging)]),
189                     build_manuals=$enableval,
190                     build_manuals=yes)
191 AM_CONDITIONAL(BUILD_MANUALS, test "$build_manuals" = yes)
192
193 # Additionaly enable building gpgex for another host
194 AC_ARG_WITH([additional-gpgex-host],
195     AC_HELP_STRING([--with-additional-gpgex-host=HOST],
196                    [Additionaly build gpgex for this host]),
197                    [if test "$withval" = yes; then
198                       AC_MSG_FAILURE(
199                           [--with-additional-gpgex-host was given,
200                            but no host specified])
201                     else
202                       gpgex_host=$withval
203                     fi
204                    ],
205                     gpgex_host=no)
206
207 if test "$gpgex_host" != no; then
208     GPGEX_ADD_HOST="$gpgex_host"
209 fi
210 AC_SUBST(GPGEX_ADD_HOST)
211
212 AC_ARG_ENABLE(fast-makensis,
213     AC_HELP_STRING([--enable-fast-makensis],
214                    [Use a less efficient compressor to speed up building]),
215                     use_fast_makensis=$enableval,
216                     use_fast_makensis=no)
217 if test "$use_fast_makensis" = yes; then
218   EXTRA_MAKENSIS_FLAGS="${EXTRA_MAKENSIS_FLAGS} -DDISABLE_LZMA=1"
219 fi
220 AC_SUBST(EXTRA_MAKENSIS_FLAGS)
221
222
223 # Required tools.
224 AC_PROG_CC
225 AC_PROG_CPP
226 AC_PROG_RANLIB
227 AC_CHECK_TOOL(AR, ar, :)
228 AC_CHECK_TOOLS(STRIP, strip)
229 AC_CHECK_TOOLS(DLLTOOL, dlltool)
230 AC_CHECK_PROGS(MAKE, make)
231 AC_CHECK_PROGS(UNZIP, unzip)
232 AC_CHECK_PROGS(TAR, tar)
233 AC_CHECK_PROGS(MKDIR, mkdir)
234 AC_CHECK_PROGS(CP, cp)
235 AC_CHECK_PROGS(RM, rm)
236 AC_CHECK_PROGS(STOW, stow)
237 AC_CHECK_PROGS(MAKENSIS, makensis)
238 AC_CHECK_PROGS(ZCAT, zcat)
239 AC_CHECK_PROGS(TEXI2DVI, texi2dvi)
240 AC_CHECK_PROGS(DVIPDF, dvipdf)
241 AC_CHECK_PROGS(CONVERT, convert)
242 AC_CHECK_PROGS(SHA1SUM, sha1sum)
243 AC_CHECK_PROGS(MSGFMT, msgfmt)
244 AC_CHECK_PROGS(GITLOG_TO_CHANGELOG, gitlog-to-changelog,
245                [build-aux/gitlog-to-changelog])
246 AC_CHECK_PROGS(BUILD_CC, gcc cc)
247 AC_PROG_INSTALL
248
249 if test -n "$GPGEX_ADD_HOST"; then
250     AC_CHECK_TOOLS(STRIP_EX, ${GPGEX_ADD_HOST}-strip)
251 fi
252
253 missing_tools=
254 for i in DLLTOOL MAKE UNZIP TAR MKDIR CP RM STOW MAKENSIS ZCAT TEXI2DVI \
255          DVIPDF CONVERT SHA1SUM MSGFMT BUILD_CC; do
256    eval tmp='$'$i
257    if test -z "$tmp"; then
258       missing_tools="$missing_tools `echo $i | tr 'A-Z' 'a-z'`"
259    fi
260 done
261
262 # GpgOL and GpgEx need the runtime libaries
263 # The default path should probably be more generic
264 changequote(,)dnl
265 gcc_major_minor=$($CC --version \
266                   | awk 'NR==1 {split($NF,a,"."); print a[1] "." a[2]}')
267 changequote([,])dnl
268
269 libgcc_dll=no
270 AC_ARG_WITH([libgcc_s_sjlj-1-dll],
271            AC_HELP_STRING([--with-libgcc_s_sjlj-1-dll=FILE],
272                           [use the libgcc_s_sjlj-1 DLL]),
273            [libgcc_dll=$withval])
274
275 if test "$libgcc_dll" = "no"; then
276   file="/usr/lib/gcc/$host/$gcc_major_minor/libgcc_s_sjlj-1.dll"
277   if test -r "$file"; then
278     libgcc_dll="$file"
279   fi
280 fi
281 if test "$libgcc_dll" = "no"; then
282   missing_opt_tools="libgcc_s_sjlj-1.dll $missing_opt_tools"
283 else
284   if test -r "$libgcc_dll"; then
285     cp $libgcc_dll src/libgcc_s_sjlj-1.dll-x
286   else
287     missing_opt_tools="libgcc_s_sjlj-1.dll $missing_opt_tools"
288   fi
289 fi
290
291 libstdcpp_dll=no
292 AC_ARG_WITH([libstdc++-6-dll],
293            AC_HELP_STRING([--with-libstdc++-6-dll=FILE],
294                           [use the libstd++-6 DLL]),
295            [libstdcpp_dll=$withval])
296 if test "$libstdcpp_dll" = "no"; then
297   file="/usr/lib/gcc/$host/$gcc_major_minor/libstdc++-6.dll"
298   if test -r "$file"; then
299     libstdcpp_dll="$file"
300   fi
301 fi
302 if test "$libstdcpp_dll" = "no"; then
303   missing_opt_tools="libstdc++-6.dll $missing_opt_tools"
304 else
305   if test -r "$libstdcpp_dll"; then
306     cp $libstdcpp_dll src/libstdc++-6.dll-x
307   else
308     missing_opt_tools="libstdc++-6.dll $missing_opt_tools"
309  fi
310 fi
311
312 AC_CHECK_PROGS(GLIB_GENMARSHAL, glib-genmarshal)
313 AC_CHECK_PROGS(GLIB_COMPILE_SCHEMAS, glib-compile-schemas)
314 AC_CHECK_PROGS(GLIB_COMPILE_RESOURCES, glib-compile-resources)
315 AC_CHECK_PROGS(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource)
316
317
318 missing_opt_tools=
319 for i in GLIB_GENMARSHAL GLIB_COMPILE_SCHEMAS GLIB_COMPILE_RESOURCES \
320          GDK_PIXBUF_CSOURCE; do
321    eval tmp='$'$i
322    if test -z "$tmp"; then
323       missing_opt_tools="$missing_opt_tools `echo $i | tr 'A-Z' 'a-z'`"
324    fi
325 done
326
327
328
329 # Optional tools.
330
331 AC_CHECK_PROGS(WGET, wget)
332
333
334 # Packages.
335 gpg4win_dup_sources=""
336
337
338 GPG4WIN_SPKG([zlib])
339
340 GPG4WIN_BPKG_GTK([pkgconfig])
341
342 GPG4WIN_SPKG([libffi], [pkgconfig])
343 GPG4WIN_SPKG([glib], [libiconv gettext pkgconfig libffi zlib])
344 GPG4WIN_BPKG_GTK_DEV([atk], [glib pkgconfig])
345 GPG4WIN_BPKG_GTK_DEV([pango], [glib pkgconfig])
346 GPG4WIN_BPKG_GTK_DEV([cairo], [glib pkgconfig])
347 GPG4WIN_BPKG_GTK_DEV([expat])
348 GPG4WIN_BPKG_GTK_DEV([freetype], [pkgconfig zlib])
349 GPG4WIN_BPKG_GTK_DEV([fontconfig], [pkgconfig zlib expat])
350 GPG4WIN_SPKG([gdk-pixbuf], [glib])
351 GPG4WIN_SPKG([gtk+], [libiconv gettext pkgconfig atk pango dnl
352                       glib gdk-pixbuf cairo])
353 GPG4WIN_SPKG([libpng], [pkgconfig])
354
355 GPG4WIN_SPKG([bzip2])
356 GPG4WIN_SPKG([adns])
357 GPG4WIN_SPKG([libgpg-error], [libiconv gettext])
358 GPG4WIN_SPKG([libgcrypt], [libgpg-error])
359 GPG4WIN_SPKG([libksba], [libgpg-error])
360 GPG4WIN_SPKG([libassuan], [libgpg-error w32pth])
361 GPG4WIN_SPKG([dirmngr], [libgpg-error libgcrypt libassuan libksba w32pth])
362 GPG4WIN_SPKG([pinentry], [libiconv gtk+])
363 GPG4WIN_SPKG([gpgme], [libgpg-error glib])
364 GPG4WIN_SPKG([gpgol], [gpgme libassuan])
365 GPG4WIN_SPKG([gpgex], [libassuan])
366 GPG4WIN_SPKG([scute], [libgpg-error libassuan])
367 GPG4WIN_SPKG([paperkey])
368 GPG4WIN_SPKG([gpa], [libiconv gettext zlib gtk+ libpng glib gpgme])
369 GPG4WIN_SPKG([w32pth])
370 GPG4WIN_SPKG([libiconv])
371 GPG4WIN_SPKG([gettext], [libiconv])
372
373
374 # Packages needed for gpgex
375 GPG4WIN_SPKGEX([libgpg-error])
376 GPG4WIN_SPKGEX([libassuan], [libgpg-error])
377 GPG4WIN_SPKGEX([gpgex], [libassuan])
378
379 GPG4WIN_IPKG([compendium])
380
381 # The GnuPG Package.
382 GPG4WIN_BPKG_BINSRC([gnupg-w32])
383
384 # Qt related stuff.
385 GPG4WIN_BPKG_GNUWIN32([dbus])
386 GPG4WIN_BPKG_BINSRC([oxygen-icons])
387 GPG4WIN_BPKG_GNUWIN32([qt], [dbus])
388 GPG4WIN_BPKG_BINSRC([kleopatra], [gpgme qt oxygen-icons])
389
390 GPG4WIN_FINALIZE
391
392 # Throw an error if required tools are missing
393 if test -n "$missing_tools"; then
394     for i in $missing_tools; do
395       AC_MSG_NOTICE([$i is missing])
396     done
397     AC_MSG_ERROR([[
398 ***
399 *** Required tools not found. Please consult the above messages
400 *** and install them before running configure again.
401 ***]])
402 fi
403
404 # Throw an error if any duplicate source packages have been found
405 if test -n "$gpg4win_dup_sources"; then
406     tmp=
407     for i in $gpg4win_dup_sources; do
408       tmp="$tmp
409 $i"
410     done
411     AC_MSG_ERROR([Packages with more that one source version:$tmp])
412 fi
413
414
415 # Finalize.
416
417 AC_CONFIG_FILES(Makefile)
418 AC_CONFIG_FILES(packages/Makefile src/Makefile po/Makefile.in)
419 AC_CONFIG_FILES(po/build-cc)
420 AC_CONFIG_FILES(src/config.nsi src/gpg4win.mk)
421 AC_CONFIG_FILES(doc/Makefile)
422 AC_CONFIG_FILES(doc/logo/Makefile)
423 AC_CONFIG_FILES(doc/manual/Makefile doc/manual/version.tex)
424 AC_CONFIG_FILES(src/dictionaries/Makefile)
425 AC_OUTPUT
426
427 # Throw a warning if optional tools are missing
428 if test -n "$missing_opt_tools"; then
429     AC_MSG_WARN([[
430 ***
431 *** Some tools not found.  They may or may not be needed depending on
432 *** the packages you want to include.  For example GLIB and GTK+
433 *** require certain tools; you may need to install a recent version of
434 *** GLIB and GTK+ on the build machine to allow for cross-compiling.
435 ***]])
436     for i in $missing_opt_tools; do
437       AC_MSG_NOTICE([$i is missing])
438     done
439 fi
440
441 echo "
442         $PACKAGE_NAME-$PACKAGE_VERSION prepared for make
443
444         Revision: ${GIT_REVISION}  (${GIT_REVISION_DEC})
445         Platform: $host
446         Additional gpgEx platform: ${GPGEX_ADD_HOST}
447 "