[gaim-migrate @ 4068]
[pidgin-git.git] / configure.ac
blobf69be60585921d642caf7297a0436b201ead23d5
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(src/aim.c)
3 AM_CONFIG_HEADER(config.h)
4 AM_INIT_AUTOMAKE([gaim], [0.60cvs])
6 AC_PREREQ([2.50])
8 AC_PATH_PROG(sedpath, sed)
10 dnl Checks for programs.
11 AC_PROG_CC
12 AC_DISABLE_STATIC
13 AM_PROG_LIBTOOL
14 LIBTOOL="$LIBTOOL --silent"
15 AC_PROG_INSTALL
18 ALL_LINGUAS="bg cs da de es fi fr hu it ja ko nl pl ro ru sk sv zh_CN zh_TW"
19 AM_GNU_GETTEXT_VERSION(0.10.40)
20 AM_GNU_GETTEXT
22 AC_CYGWIN
25 dnl Checks for header files.
26 AC_HEADER_STDC
27 AC_HEADER_SYS_WAIT
28 AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h locale.h signal.h)
30 dnl Checks for typedefs, structures, and compiler characteristics.
31 AC_C_CONST
32 AC_STRUCT_TM
34 dnl Checks for library functions.
35 AC_TYPE_SIGNAL
36 AC_FUNC_STRFTIME
37 AC_CHECK_FUNCS(socket strdup strstr atexit getaddrinfo)
38 dnl Checks for getopt in standard library
39 AC_CHECK_FUNCS(getopt_long , ,
40 AC_LIBOBJ(getopt)
41 AC_LIBOBJ(getopt1)) 
44 dnl Check for inet_aton
45 AC_CHECK_FUNC(inet_aton, , [AC_CHECK_LIB(resolv, inet_aton, , 
46                                          [AC_ERROR(inet_aton not found)])])
48 dnl Check for socklen_t (in Unix98)
49 AC_MSG_CHECKING(for socklen_t)
50 AC_TRY_COMPILE([
51         #include <sys/types.h>
52         #include <sys/socket.h>
53         socklen_t x;
54 ], [],
56         AC_MSG_RESULT(yes)
57 ], [
58         AC_TRY_COMPILE([
59                 #include <sys/types.h>
60                 #include <sys/socket.h>
61                 int accept(int, struct sockaddr *, size_t *);
62         ], [], [
63                 AC_MSG_RESULT(size_t)
64                 AC_DEFINE(socklen_t, size_t, [socklen_t size])
65         ], [
66                 AC_MSG_RESULT(int)
67                 AC_DEFINE(socklen_t, int, [socklen_t size])
68         ])
71 dnl This is a bad, bad hack.  I am a bad, bad man.
72 CFLAGS="$CFLAGS -I/usr/local/include -I/opt/include -I\$(top_srcdir)"
74 AC_ARG_ENABLE(distrib,,,enable_distrib=no)
75 AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes")
76 AC_ARG_ENABLE(multi,   [  --disable-multi         disable multiple connections],,enable_multi=yes)
77 AC_ARG_ENABLE(prpls,   [  --disable-prpls         don't build dynamic protocol plugins],,enable_prpls=yes)
78 AC_ARG_WITH(static-prpls,    [  --with-static-prpls     link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="")
79 if test "x$STATIC_PRPLS" = "xall" ; then
80         STATIC_PRPLS="gg irc jabber msn napster oscar toc yahoo zephyr"
82 AC_SUBST(STATIC_PRPLS)
83 STATIC_LINK_LIBS=
84 extern_init=
85 load_proto=
86 for i in $STATIC_PRPLS ; do
87         STATIC_LINK_LIBS="$STATIC_LINK_LIBS protocols/$i/lib$i.a"
88         extern_init="$extern_init extern void ${i}_init(struct prpl *);"
89         load_proto="$load_proto load_protocol(${i}_init);"
90         case $i in
91                 gg) static_gg=yes ;;
92                 irc) static_irc=yes ;;
93                 jabber) static_jabber=yes ;;
94                 msn) static_msn=yes ;;
95                 napster) static_napster=yes ;;
96                 oscar) static_oscar=yes ;;
97                 toc) static_toc=yes ;;
98                 yahoo) static_yahoo=yes ;;
99                 zephyr) static_zephyr=yes ;;
100                 *) echo "Invalid static protocol $i!!" ; exit ;;
101         esac
102 done
103 AM_CONDITIONAL(STATIC_GG, test "x$static_gg" = "xyes")
104 AM_CONDITIONAL(STATIC_IRC, test "x$static_irc" = "xyes")
105 AM_CONDITIONAL(STATIC_JABBER, test "x$static_jabber" = "xyes")
106 AM_CONDITIONAL(STATIC_MSN, test "x$static_msn" = "xyes")
107 AM_CONDITIONAL(STATIC_NAPSTER, test "x$static_napster" = "xyes")
108 AM_CONDITIONAL(STATIC_OSCAR, test "x$static_oscar" = "xyes")
109 AM_CONDITIONAL(STATIC_TOC, test "x$static_toc" = "xyes")
110 AM_CONDITIONAL(STATIC_YAHOO, test "x$static_yahoo" = "xyes")
111 AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes")
112 AC_SUBST(STATIC_LINK_LIBS)
113 AC_DEFINE_UNQUOTED(STATIC_PROTO_INIT, $extern_init void static_proto_init() { $load_proto },
114         [Loads static protocol plugin module initialization functions.])
116 AC_ARG_ENABLE(esd,     [  --disable-esd           Turn off ESD (default=auto)],,enable_esd=yes)
117 AC_ARG_ENABLE(nas,     [  --enable-nas            Enable NAS (Network Audio System) support],,enable_nas=no)
118 AC_ARG_ENABLE(artsc,   [  --disable-artsc         Turn off ArtsC (default=auto)],,enable_artsc=yes)
120 AC_ARG_ENABLE(plugins, [  --disable-plugins       compile without plugin support],,enable_plugins=yes)
121 AC_ARG_ENABLE(perl,    [  --disable-perl          compile without perl scripting],,enable_perl=yes)
122 AC_ARG_ENABLE(gtkspell, [  --disable-gtkspell      compile without GtkSpell automatic spell checking],,enable_gtkspell=yes)
123 AC_ARG_ENABLE(debug,   [  --enable-debug          compile with debugging support],,enable_debug=no)
124 AC_ARG_ENABLE(screensaver,   [  --disable-screensaver   compile without X screensaver extension],,enable_xss=yes)
125 AC_ARG_WITH(krb4,      [  --with-krb4=PREFIX      Compile Zephyr plugin with Kerberos 4 support],kerberos="$withval",kerberos="no")
127 if test "$enable_debug" = yes ; then
128         CFLAGS="$CFLAGS -Wall -g3"
129         AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])
132 AM_PATH_GLIB_2_0(2.0.0,,AC_MSG_ERROR([
133 *** GLib 2.0 is required to build Gaim; please make sure you have the GLib
134 *** development headers installed. The latest version of GLib is
135 *** always available at http://www.gtk.org/.]))
136 AM_PATH_GTK_2_0(2.0.0,,AC_MSG_ERROR([
137 *** GTK+ 2.0 is required to build Gaim; please make sure you have the GTK+
138 *** development headers installed. The latest version of GTK+ is
139 *** always available at http://www.gtk.org/.]))
141 AC_PATH_PROG(gaimpath, gaim)
142 CFLAGS="$CFLAGS $GTK_CFLAGS -DGTK_ENABLE_BROKEN"
144 dnl Check for XScreenSaver
145 if test "x$enable_xss" = "xyes" ; then
146         AC_PATH_X
147         old_LIBS="$LIBS"
148         LIBS="$LIBS $GTK_LIBS -L$x_libraries"
149         XSS_LIBS="no"
150         XSS_HEADERS="no"
151         AC_CHECK_LIB(Xext, XScreenSaverRegister,[XSS_LIBS="-L$x_libraries"],[],[-lX11 -lXext -lm])
152         AC_CHECK_LIB(Xss, XScreenSaverRegister,[XSS_LIBS="-L$x_libraries -lXss"],[],[-lX11 -lXext -lm])
153         if test \! "$XSS_LIBS" = "no"; then
154                 AC_TRY_COMPILE([
155 #include <X11/extensions/scrnsaver.h>
156                                 ],[],[enable_xss=no],[
157                                 AC_DEFINE(USE_SCREENSAVER, 1, [Define if we're using XScreenSaver.])
158                                 ])
159         else
160                XSS_LIBS=""
161                enable_xss=no
162         fi
163         LIBS="$old_LIBS"
164 else
165         XSS_LIBS=""
166         enable_xss=no
168 AC_SUBST(XSS_LIBS)
171 AC_DEFUN(GC_TM_GMTOFF,
172 [AC_REQUIRE([AC_STRUCT_TM])dnl
173 AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff,
174 [AC_TRY_COMPILE([#include <sys/types.h>
175 #include <$ac_cv_struct_tm>], [struct tm tm; tm.tm_gmtoff;],
176   ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)])
177 if test "$ac_cv_struct_tm_gmtoff" = yes; then
178   AC_DEFINE(HAVE_TM_GMTOFF, 1, [tm_gmtoff is available.])
182 GC_TM_GMTOFF
186 dnl This was taken straight from X-Chat.
187 dnl X-Chat is the greatest application ever, not only
188 dnl because it's a rocking IRC client but also because
189 dnl it's very easy to learn from.
190 if test "$enable_perl" = yes ; then
191         AC_PATH_PROG(perlpath, perl)
192         AC_MSG_CHECKING(for Perl compile flags)
193         PERL_CFLAGS=`$perlpath -MExtUtils::Embed -e ccopts 2>/dev/null`
194         if test "_$PERL_CFLAGS" = _ ; then
195                 AC_MSG_RESULT([not found, building without perl.])
196                 enable_perl = no
197         else
198                 PERL_LIBS=`$perlpath -MExtUtils::Embed -e ldopts 2>/dev/null |$sedpath 's/-lgdbm //'`
199                 PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-ldb //'`
200                 PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lndbm //'`
201                 if test "$system" = "Linux"; then
202                         PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lnsl //'`
203                         PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lposix //'`
204                 fi
205                 PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lc //'`
206                 AC_MSG_RESULT(ok)
207                 AC_SUBST(PERL_CFLAGS)
208                 AC_SUBST(PERL_LIBS)
209                 AC_DEFINE(USE_PERL, 1, [Define if Perl is enabled.])
210                 AC_CHECK_FUNCS(Perl_eval_pv)
211         fi
214 dnl Thanks, Evan.
215 if test "$enable_gtkspell" = yes ; then
216         PKG_CHECK_MODULES(GTKSPELL, gtkspell-2.0 >= 2.0.2, , enable_gtkspell=no)
217         if test "$enable_gtkspell" = "yes" ; then
218                 AC_SUBST(GTKSPELL_CFLAGS)
219                 AC_SUBST(GTKSPELL_LIBS)
220                 AC_DEFINE(USE_GTKSPELL,,[do we have gtkspell?])
221         fi
224 if test "$enable_nas" = yes ; then
225         AC_DEFINE(NAS_SOUND, 1, [Define if we have NAS sound support.])
226         SOUND_LIBS="-laudio -lXt"
228 if test "$enable_esd" = yes ; then
229         AM_PATH_GESD
230         if test "$no_esd" != yes ; then
231                 old_CFLAGS="$CFLAGS"
232                 CFLAGS="$CFLAGS $ESD_CFLAGS"
233                 AC_TRY_COMPILE(,[#include <esd.h>],
234                         [
235                                 AC_DEFINE(ESD_SOUND, 1, [Define if we have ESD sound support.])
236                                 SOUND_LIBS="$SOUND_LIBS $ESD_LIBS"
237                         ],[
238                                 enable_esd=no
239                                 CFLAGS="$old_CFLAGS"
240                         ])
241         else
242                 enable_esd=no
243         fi
245 if test "x$enable_artsc" = "xyes"; then
246         AM_PATH_ARTSC
247         if test "x$no_artsc" != "xyes" ; then
248                 old_CFLAGS="$CFLAGS"
249                 CFLAGS="$CFLAGS $ARTSC_CFLAGS"
250                 AC_TRY_COMPILE(,[#include <artsc.h>],
251                         [
252                                 AC_DEFINE(ARTSC_SOUND, 1, [Define if we have artsc sound support.])
253                                 SOUND_LIBS="$SOUND_LIBS $ARTSC_LIBS"
254                         ],[
255                                 enable_artsc=no
256                                 CFLAGS="$old_CFLAGS"
257                         ])
258         else
259                 enable_artsc=no
260         fi
262 AC_SUBST(SOUND_LIBS)
264 if test "$ac_cv_cygwin" = yes ; then
265         LDADD="$LDADD -static"
266         CFLAGS="$CFLAGS -Wall -g"
267         AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])
268 fi                           
270 AC_SUBST(CFLAGS)
271 AC_SUBST(LDADD)
272 AC_SUBST(LIBS)
274 if test "x$enable_multi" != "xyes" ; then
275         AC_DEFINE(NO_MULTI, 1, [Define if multiple connections is disabled.])
276         enable_multi=no
279 if test "x$enable_plugins" = "xyes" ; then
280         AC_DEFINE(GAIM_PLUGINS, 1, [Define if plugins are enabled.])
281         AM_CONDITIONAL(PLUGINS, test "x$enable_plugins" = "xyes")
282 else
283         AM_CONDITIONAL(PLUGINS, false)
284         enable_plugins=no
285         enable_prpls=no
288 if test "x$enable_prpls" = "xyes" ; then
289         AM_CONDITIONAL(PRPLS, test "x$enable_plugins" = "xyes")
290 else
291         AM_CONDITIONAL(PRPLS, false)
292         enable_prpls=no
295 dnl checks for icqlib
296 AC_CHECK_HEADERS(asm/byteorder.h byteswap.h endian.h machine/endian.h arpa/nameser_compat.h)
297 AC_CHECK_FUNCS(bswap_32 bswap_16)
298 AC_C_BIGENDIAN
300 dnl checks for jabber
301 dnl AC_CHECK_SIZEOF(short)
302 AC_CHECK_FUNCS(snprintf connect)
303 AC_CHECK_LIB(nsl, gethostent)
305 dnl checks for zephyr
306 AC_DEFINE(ZEPHYR_INT32, long, [Size of an int32.])
307 AC_SUBST(KRB4_CFLAGS)
308 AC_SUBST(KRB4_LDFLAGS)
309 AC_SUBST(KRB4_LIBS)
310 if test "$kerberos" != "no" ; then
311         if test "$kerberos" != "yes" ; then
312                 KRB4_CFLAGS="-I${kerberos}/include"
313                 if test -d "$kerberos/include/kerberosIV" ; then
314                         KRB4_CFLAGS="$KRB4_CFLAGS -I${kerberos}/include/kerberosIV"
315                 fi
316                 KRB4_LDFLAGS="-L${kerberos}/lib"
317         elif test -d /usr/local/include/kerberosIV ; then
318                 KRB4_CFLAGS="-I/usr/local/include/kerberosIV"
319         elif test -d /usr/include/kerberosIV ; then
320                 KRB4_CFLAGS="-I/usr/include/kerberosIV"
321         fi
322         AC_DEFINE(ZEPHYR_USES_KERBEROS, 1, [Define if kerberos should be used in Zephyr.])
324         orig_LDFLAGS="$LDFLAGS"
325         LDFLAGS="$LDFLAGS $KRB4_LDFLAGS"
326         AC_CHECK_LIB(krb4, krb_rd_req,
327                         [KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"],
328                         [AC_CHECK_LIB(krb, krb_rd_req,
329                                 [KRB4_LIBS="-lkrb -ldes"],
330                                 [AC_ERROR(Kerberos 4 libraries not found)],
331                                 -ldes)],
332                         -ldes425 -lkrb5 -lk5crypto -lcom_err)
333         orig_LIBS="$LIBS"
334         LIBS="$LIBS $KRB4_LIBS"
335         AC_CHECK_FUNCS(krb_set_key krb_rd_req krb_get_lrealm)
336         AC_CHECK_FUNCS(krb_get_err_text krb_log)
337         LIBS="$orig_LIBS"
338         LDFLAGS="$orig_LDFLAGS"
340 AC_CHECK_FUNCS(gethostid lrand48)
341 AC_CHECK_FUNCS(memcpy memmove random strchr strerror vprintf)
342 AC_CHECK_HEADERS(malloc.h paths.h sgtty.h stdarg.h sys/cdefs.h)
343 AC_CHECK_HEADERS(sys/file.h sys/filio.h sys/ioctl.h sys/msgbuf.h)
344 AC_CHECK_HEADERS(sys/select.h sys/uio.h sys/utsname.h sys/wait.h)
345 AC_CHECK_HEADERS(termios.h)
346 AC_VAR_TIMEZONE_EXTERNALS
348 AC_OUTPUT([Makefile
349            doc/Makefile
350            intl/Makefile
351            m4/Makefile
352            pixmaps/Makefile
353            pixmaps/protocols/Makefile
354            pixmaps/protocols/msn/Makefile
355            pixmaps/protocols/yahoo/Makefile
356            pixmaps/protocols/oscar/Makefile
357            pixmaps/protocols/napster/Makefile
358            pixmaps/protocols/jabber/Makefile
359            pixmaps/protocols/irc/Makefile
360            pixmaps/protocols/icq/Makefile
361            pixmaps/protocols/gg/Makefile
362            plugins/Makefile
363            plugins/docklet/Makefile
364            plugins/ticker/Makefile
365            po/Makefile.in 
366            sounds/Makefile
367            src/Makefile
368            src/protocols/Makefile
369            src/protocols/gg/Makefile
370            src/protocols/icq/Makefile
371            src/protocols/irc/Makefile
372            src/protocols/jabber/Makefile
373            src/protocols/msn/Makefile
374            src/protocols/napster/Makefile
375            src/protocols/oscar/Makefile
376            src/protocols/toc/Makefile
377            src/protocols/yahoo/Makefile
378            src/protocols/zephyr/Makefile
379            gaim.spec
380           ])
382 echo
383 echo $PACKAGE $VERSION
385 echo
386 echo Allow Multiple Connections.... : $enable_multi
387 echo Build Protocol Plugins........ : $enable_prpls
388 echo Protocols to link statically.. : $STATIC_PRPLS
389 echo
390 echo UI Library.................... : GTK 2.0
391 echo
392 echo Build with Plugin support..... : $enable_plugins
393 echo Build with Perl support....... : $enable_perl
394 echo
395 echo Build with GtkSpell............: $enable_gtkspell
396 echo
397 echo Use XScreenSaver Extension.... : $enable_xss
398 echo
399 echo Build with ESD................ : $enable_esd
400 echo Build with NAS................ : $enable_nas
401 echo Build with ArtsC.............. : $enable_artsc
402 echo
403 echo Print debugging messages...... : $enable_debug
404 echo
405 eval eval echo Gaim will be installed in $bindir.
406 if test "x$gaimpath" != "x" ; then
407         echo Warning: You have an old copy of gaim at $gaimpath.
409 echo
410 echo configure complete, now type \'make\'
411 echo