Nicer W32 installation support
[gpgme.git] / configure.in
1 # configure.in  for GPGME
2
3 dnl (Process this file with autoconf to produce a configure script.)
4 AC_REVISION($Revision$)dnl
5
6 AC_INIT(gpgme/gpgme.h)
7 AM_CONFIG_HEADER(config.h)
8 AM_MAINTAINER_MODE
9 #############################################
10 # Version numbers (Remember to change them just before a release)
11 # 1. No interfaces changed, only implementations (good): Increment REVISION.
12 # 2. Interfaces added, none removed (good): Increment CURRENT, increment
13 #    AGE, set REVISION to 0.
14 # 3. Interfaces removed (BAD, breaks upward compatibility): Increment
15 #    CURRENT, set AGE and REVISION to 0.
16 AM_INIT_AUTOMAKE(gpgme,0.1.4a)
17 LIBGPGME_LT_CURRENT=2
18 LIBGPGME_LT_AGE=2
19 LIBGPGME_LT_REVISION=0
20 ##############################################
21
22 AC_SUBST(LIBGPGME_LT_CURRENT)
23 AC_SUBST(LIBGPGME_LT_AGE)
24 AC_SUBST(LIBGPGME_LT_REVISION)
25
26
27 dnl
28 dnl Checks for programs
29 dnl
30 AC_ARG_PROGRAM
31
32 dnl Don't default to build static libs
33 AM_DISABLE_STATIC
34 AM_PROG_LIBTOOL
35
36 if test "$GCC" = yes; then
37     CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
38 fi
39
40 GPG=
41 component_system=None
42 case "${target}" in
43     *-*-mingw32* | i?86-emx-os2 | i?86-*-os2*emx | i?86-*-msdosdjgpp* )
44         # special stuff for Windoze NT
45         # OS/2 with the EMX environment
46         # DOS with the DJGPP environment
47         AC_DEFINE(HAVE_DRIVE_LETTERS)
48         AC_DEFINE(HAVE_DOSISH_SYSTEM)
49         GPG='c:\\gnupg\\gpg.exe'
50         #component_system='COM+'
51         ;;
52     *)
53        ;;
54 esac
55
56
57
58
59 dnl
60 dnl Checks for libraries
61 dnl
62
63 dnl
64 dnl Checks for header files
65 dnl
66
67
68
69 dnl
70 dnl Checks for typedefs and structures
71 dnl
72 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
73 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
74 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
75 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
76 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
77 # We should not use them in this software;
78 # However jnlib/types.h needs them - so we take the easy way.
79 AC_CHECK_SIZEOF(unsigned short, 2)
80 AC_CHECK_SIZEOF(unsigned int, 4)
81 AC_CHECK_SIZEOF(unsigned long, 4)
82 if test "$ac_cv_sizeof_unsigned_short" = "0" \
83    || test "$ac_cv_sizeof_unsigned_int" = "0" \
84    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
85     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
86 fi
87
88
89
90 dnl
91 dnl Checks for compiler features
92 dnl
93
94 dnl
95 dnl Checks for library functions
96 dnl
97 dnl These are needed by libjnlib
98 AC_CHECK_FUNCS(memicmp stpcpy strlwr strtoul memmove stricmp)
99
100
101 dnl
102 dnl Checks for system services
103 dnl
104
105 if test -z "$GPG"; then
106   AC_PATH_PROG(GPG, gpg)
107   if test -z "$GPG"; then
108        AC_MSG_ERROR([[
109 ***
110 *** GnuPG not found. Please install GnuPG first. 
111 *** See   http://www.gnupg.org/download.html
112 ***
113   ]])
114   fi
115 fi
116 AC_DEFINE_UNQUOTED(GPG_PATH, "$GPG")
117
118
119 dnl
120 dnl FIXME: check whether Bonobo is installed
121 dnl 
122
123
124 dnl
125 dnl Create config files 
126 dnl
127 dnl
128
129 AM_CONDITIONAL(BUILD_COMPLUS, test "$component_system" = "COM+")
130 AM_CONDITIONAL(BUILD_BONOBO,  test "$component_system" = "Bonobo")
131
132 dnl Make the version number in gpgme/gpgme.h the same as the one here.
133 dnl (this is easier than to have a *.in file just for one substitution)
134 GNUPG_FIX_HDR_VERSION(gpgme/gpgme.h, GPGME_VERSION)
135
136 dnl Substitution used for gpgme-config 
137 GPGME_LIBS="-L${libdir} -lgpgme"
138 GPGME_CFLAGS=""
139 AC_SUBST(GPGME_LIBS)
140 AC_SUBST(GPGME_CFLAGS)
141
142 AC_OUTPUT_COMMANDS([
143 chmod +x gpgme/gpgme-config
144 ])
145
146 AC_OUTPUT([
147 Makefile
148 jnlib/Makefile
149 gpgme/Makefile
150 gpgme/gpgme-config
151 tests/Makefile
152 bonobo/Makefile
153 complus/Makefile
154 ])
155
156 echo "
157         GPGME v${VERSION} has been configured as follows:
158
159         GPG path:   $GPG
160         Component:  $component_system
161 "
162
163
164
165
166
167
168