[gaim-migrate @ 3029]
[pidgin-git.git] / configure.ac
blob4acffebe54377e7eb214ffef270aab349feecc83
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.54])
6 AC_PATH_PROG(sedpath, sed)
8 dnl Checks for programs.
9 AC_PROG_CC
10 AC_DISABLE_STATIC
11 AM_PROG_LIBTOOL
12 LIBTOOL="$LIBTOOL --silent"
13 AC_PROG_INSTALL
16 ALL_LINGUAS="de es fr ko ru zh_CN pl nl sv fi sk"
17 AM_GNU_GETTEXT
19 AC_CYGWIN
22 dnl Checks for header files.
23 AC_HEADER_STDC
24 AC_HEADER_SYS_WAIT
25 AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h locale.h signal.h)
27 dnl Checks for typedefs, structures, and compiler characteristics.
28 AC_C_CONST
29 AC_STRUCT_TM
31 dnl Checks for library functions.
32 AC_TYPE_SIGNAL
33 AC_FUNC_STRFTIME
34 AC_CHECK_FUNCS(socket strdup strstr atexit getaddrinfo)
36 dnl Checks for getopt in standard library
37 AC_CHECK_FUNCS(getopt_long , , [LIBOBJS="$LIBOBJS getopt.o getopt1.o"] ) 
38 AC_SUBST(LIBOBJS)
40 dnl Check for inet_aton
41 AC_CHECK_FUNC(inet_aton, , [AC_CHECK_LIB(resolv, inet_aton, , 
42                                          [AC_ERROR(inet_aton not found)])])
44 dnl This is a bad, bad hack.  I am a bad, bad man.
45 CFLAGS="$CFLAGS -I/usr/local/include -I/opt/include -I\$(top_srcdir)"
47 AC_ARG_ENABLE(distrib,,,enable_distrib=no)
48 AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes")
49 AC_ARG_ENABLE(multi,   [  --disable-multi         disable multiple connections],,enable_multi=yes)
50 AC_ARG_ENABLE(prpls,   [  --disable-prpls         don't build dynamic protocol plugins],,enable_prpls=yes)
51 AC_ARG_WITH(static-prpls,    [  --with-static-prpls     link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="oscar toc")
52 if test "x$STATIC_PRPLS" = "xall" ; then
53         STATIC_PRPLS="gg icq irc jabber msn napster oscar toc yahoo zephyr"
55 AC_SUBST(STATIC_PRPLS)
56 STATIC_LINK_LIBS=
57 extern_init=
58 load_proto=
59 for i in $STATIC_PRPLS ; do
60         STATIC_LINK_LIBS="$STATIC_LINK_LIBS protocols/$i/lib$i.a"
61         extern_init="$extern_init extern void ${i}_init(struct prpl *);"
62         load_proto="$load_proto load_protocol(${i}_init, sizeof(struct prpl));"
63         case $i in
64                 gg) static_gg=yes ;;
65                 icq) static_icq=yes ;;
66                 irc) static_irc=yes ;;
67                 jabber) static_jabber=yes ;;
68                 msn) static_msn=yes ;;
69                 napster) static_napster=yes ;;
70                 oscar) static_oscar=yes ;;
71                 toc) static_toc=yes ;;
72                 yahoo) static_yahoo=yes ;;
73                 zephyr) static_zephyr=yes ;;
74                 *) echo "Invalid static protocol $i!!" ; exit ;;
75         esac
76 done
77 AM_CONDITIONAL(STATIC_GG, test "x$static_gg" = "xyes")
78 AM_CONDITIONAL(STATIC_ICQ, test "x$static_icq" = "xyes")
79 AM_CONDITIONAL(STATIC_IRC, test "x$static_irc" = "xyes")
80 AM_CONDITIONAL(STATIC_JABBER, test "x$static_jabber" = "xyes")
81 AM_CONDITIONAL(STATIC_MSN, test "x$static_msn" = "xyes")
82 AM_CONDITIONAL(STATIC_NAPSTER, test "x$static_napster" = "xyes")
83 AM_CONDITIONAL(STATIC_OSCAR, test "x$static_oscar" = "xyes")
84 AM_CONDITIONAL(STATIC_TOC, test "x$static_toc" = "xyes")
85 AM_CONDITIONAL(STATIC_YAHOO, test "x$static_yahoo" = "xyes")
86 AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes")
87 AC_SUBST(STATIC_LINK_LIBS)
88 AC_DEFINE_UNQUOTED(STATIC_PROTO_INIT, $extern_init void static_proto_init() { $load_proto })
90 AC_ARG_ENABLE(gtk2,    [  --enable-gtk2           compile using GTK 2 (BROKEN)],,enable_gtk2=no)
91 AC_ARG_ENABLE(gnome,   [  --disable-gnome         compile without Gnome bits],,enable_gnome=yes)
92 AC_ARG_ENABLE(pixbuf,  [  --disable-pixbuf        compile without GdkPixbuf],,enable_pixbuf=yes)
93 AC_ARG_ENABLE(panel,   [  --enable-panel          compile as a GNOME applet],,enable_panel=$enable_distrib)
95 AM_CONDITIONAL(GNOMEAPPLET, test "x$enable_panel" = "xyes")
96 AC_ARG_ENABLE(esd,     [  --disable-esd           Turn off ESD (default=auto)],,enable_esd=yes)
97 AC_ARG_ENABLE(nas,     [  --enable-nas            Enable NAS (Network Audio System) support],,enable_nas=no)
98 AC_ARG_ENABLE(artsc,   [  --disable-artsc         Turn off ArtsC (default=auto)],,enable_artsc=yes)
100 AC_ARG_ENABLE(plugins, [  --disable-plugins       compile without plugin support],,enable_plugins=yes)
101 AC_ARG_ENABLE(perl,    [  --disable-perl          compile without perl scripting],,enable_perl=yes)
103 AC_ARG_ENABLE(debug,   [  --enable-debug          compile with debugging support],,enable_debug=no)
104 AC_ARG_ENABLE(screensaver,   [  --disable-screensaver   compile without X screensaver extension],,enable_xss=yes)
105 AC_ARG_WITH(krb4,      [  --with-krb4=PREFIX      Compile Zephyr plugin with Kerberos 4 support],kerberos="$withval",kerberos="no")
107 if test "$enable_debug" = yes ; then
108         CFLAGS="$CFLAGS -Wall -g3"
109         AC_DEFINE(DEBUG)
112 if test "x$enable_gtk2" = "xyes" ; then
113         dnl AM_PATH_GTK_2_0(1.3.10,[
114         dnl             enable_gnome=no
115         dnl             enable_pixbuf=no
116         dnl             CFLAGS="$CFLAGS -DGTK_ENABLE_BROKEN"
117         dnl             UI_LIBS="$UI_LIBS $GTK_LIBS"
118         dnl             ],enable_gtk2=no)
120         AC_PATH_PROG(pkgcfg, pkg-config)
121         if test "x$pkgcfg" = "x" ; then
122                 enable_gtk2=no
123         else
124                 GTK_VER=`$pkgcfg gtk+-2.0 --modversion 2>/dev/null`
125                 if test "x$GTK_VER" = "x" ; then
126                         enable_gtk2=no
127                 else
128                         GTK_CFLAGS=`$pkgcfg gtk+-2.0 --cflags`
129                         CFLAGS="$CFLAGS -DGTK_ENABLE_BROKEN"
130                         GTK_LIBS=`$pkgcfg gtk+-2.0 --libs`
131                         UI_LIBS="$UI_LIBS $GTK_LIBS"
132                         enable_gnome=no
133                         enable_pixbuf=no
134                 fi
135         fi
138 if test "x$enable_gnome" = "xyes" ; then
139         if test "x$enable_panel" = "xyes" ; then
140                 GNOME_INIT(applets)
141                 GNOME_X_CHECKS
142                 CFLAGS="$CFLAGS $GNOME_INCLUDEDIR"
143                 AC_DEFINE(USE_APPLET)
144                 AC_DEFINE(USE_GNOME)
145                 UI_LIBS="$UI_LIBS $GTK_LIBS $GNOME_LIBDIR $GNOME_APPLETS_LIBS $GNOMEUI_LIBS"
146                 AC_PATH_PROG(gaimpath, gaim_applet)
147         else
148                 AC_PATH_PROG(gnomepath, gnome-config)
149                 AC_MSG_CHECKING(for Gnome compile flags)
150                 GNOME_CFLAGS=`$gnomepath gnomeui --cflags 2>/dev/null`
151                 if test "x$GNOME_CFLAGS" = "x" ; then
152                         enable_gnome=no
153                         AC_MSG_RESULT([Gnome not found, building without it.])
154                 else
155                         GNOME_VER=`$gnomepath --version |$sedpath 's/gnome-libs //' 2>/dev/null`
156                         GNOME_MAJOR=`echo $GNOME_VER |$sedpath 's/\([[0-9]*]*\).\([[0-9]*]*\).\([[0-9]*]*\)/\1/' 2>/dev/null`
157                         if test "x$GNOME_MAJOR" = "x0" ; then
158                                 enable_gnome = no
159                                 AC_MSG_RESULT([old Gnome found, building without it.])
160                         else
161                                 AC_MSG_RESULT(ok)
162                                 CFLAGS="$CFLAGS $GNOME_CFLAGS"
163                                 UI_LIBS="$UI_LIBS `$gnomepath gnomeui --libs 2>/dev/null`"
164                                 AC_DEFINE(USE_GNOME)
165                                 GNOME_CONFIG="$gnomepath"
166                                 AC_SUBST(GNOME_CONFIG)
167                                 AC_PATH_PROG(gaimpath, gaim)
168                         fi
169                 fi
170         fi
173 if test "x$enable_gnome" != "xyes" -a "x$enable_gtk2" != "xyes" ; then
174         AM_PATH_GLIB(1.2.5,,AC_MSG_ERROR([
175 *** GLib is required to build Gaim; please make sure you have the GLib
176 *** development headers installed. The latest version of GLib is
177 *** always available at http://www.gtk.org/.]))
178         AM_PATH_GTK(1.2.5,,AC_MSG_ERROR([
179 *** GTK+ is required to build Gaim; please make sure you have the GTK+
180 *** development headers installed. The latest version of GTK+ is
181 *** always available at http://www.gtk.org/.]))
182         UI_LIBS="$UI_LIBS $GTK_LIBS"
183         AC_PATH_PROG(gaimpath, gaim)
185 CFLAGS="$CFLAGS $GTK_CFLAGS"
187 dnl if test "x$enable_panel" = "xyes" ; then
188         dnl Things moved with the new versoin of Orbit. Thanks for
189         dnl telling me, Dan.  This should fix them.
190         dnl
191         dnl The gnome-config script should pick this up and affect GNOME_ variables
192         dnl correctly. Thus, this check is not needed; if it fails, it is because of
193         dnl a broken installation or that your appletsConf.sh file is not updated
194         dnl for the new orbit installation. Gaim shouldn't need to do this.
195         dnl
196         dnl CFLAGS="$CFLAGS $ORBIT_CFLAGS"
197 dnl fi
199 use_pixbuf=no
200 if test "x$enable_pixbuf" = "xyes" ; then
201         AC_PATH_PROG(pixbufcfg, gdk-pixbuf-config)
202         if test "x$pixbufcfg" != "x" ; then
203                 GDK_PIXBUF_CFLAGS=`$pixbufcfg --cflags`
204                 GDK_PIXBUF_LIBS=`$pixbufcfg --libs`
205                 GDK_PIXBUF_CONFIG="$pixbufcfg"
206                 AC_SUBST(GDK_PIXBUF_CONFIG)
207                 AC_SUBST(GDK_PIXBUF_CFLAGS)
208                 AC_SUBST(GDK_PIXBUF_LIBS)
209                 CFLAGS="$CFLAGS $GDK_PIXBUF_CFLAGS"
210                 UI_LIBS="$UI_LIBS $GDK_PIXBUF_LIBS"
211                 dnl We should be doing checks to see that the header files and functions exist. eh.
212                 AC_DEFINE(USE_PIXBUF)
213                 use_pixbuf=yes
214         fi
216 AC_SUBST(UI_LIBS)
218 dnl Check for XScreenSaver
219 if test "x$enable_xss" = "xyes" ; then
220         old_LIBS="$LIBS"
221         LIBS="$LIBS $UI_LIBS"
222         XSS_LIBS="no"
223         XSS_HEADERS="no"
224         AC_CHECK_LIB(Xext, XScreenSaverRegister,[XSS_LIBS=""],[],[-lX11 -lXext -lm])
225         AC_CHECK_LIB(Xss, XScreenSaverRegister,[XSS_LIBS="-lXss"],[],[-lX11 -lXext -lm])
226         if test \! "$XSS_LIBS" = "no"; then
227                 AC_TRY_COMPILE([
228 #include <X11/extensions/scrnsaver.h>
229                                 ],[],[enable_xss=no],[
230                                 AC_DEFINE(USE_SCREENSAVER)
231                                 ])
232         else
233                XSS_LIBS=""
234                enable_xss=no
235         fi
236         LIBS="$old_LIBS"
237 else
238         XSS_LIBS=""
239         enable_xss=no
241 AC_SUBST(XSS_LIBS)
245 dnl This was taken straight from X-Chat.
246 dnl X-Chat is the greatest application ever, not only
247 dnl because it's a rocking IRC client but also because
248 dnl it's very easy to learn from.
249 if test "$enable_perl" = yes ; then
250         AC_PATH_PROG(perlpath, perl)
251         AC_MSG_CHECKING(for Perl compile flags)
252         PERL_CFLAGS=`$perlpath -MExtUtils::Embed -e ccopts 2>/dev/null`
253         if test "_$PERL_CFLAGS" = _ ; then
254                 AC_MSG_RESULT([not found, building without perl.])
255                 enable_perl = no
256         else
257                 PERL_LIBS=`$perlpath -MExtUtils::Embed -e ldopts 2>/dev/null |$sedpath 's/-lgdbm //'`
258                 PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-ldb //'`
259                 PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lndbm //'`
260                 if test "$system" = "Linux"; then
261                         PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lnsl //'`
262                         PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lposix //'`
263                 fi
264                 PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lc //'`
265                 AC_MSG_RESULT(ok)
266                 AC_SUBST(PERL_CFLAGS)
267                 AC_SUBST(PERL_LIBS)
268                 AC_DEFINE(USE_PERL)
269                 AC_CHECK_FUNCS(Perl_eval_pv)
270         fi
273 if test "$enable_nas" = yes ; then
274         AC_DEFINE(NAS_SOUND)
275         SOUND_LIBS="-laudio -lXt"
277 if test "$enable_esd" = yes ; then
278         AM_PATH_GESD
279         if test "$no_esd" != yes ; then
280                 old_CFLAGS="$CFLAGS"
281                 CFLAGS="$CFLAGS $ESD_CFLAGS"
282                 AC_TRY_COMPILE(,[#include <esd.h>],
283                         [
284                                 AC_DEFINE(ESD_SOUND)
285                                 SOUND_LIBS="$SOUND_LIBS $ESD_LIBS"
286                         ],[
287                                 enable_esd=no
288                                 CFLAGS="$old_CFLAGS"
289                         ])
290         else
291                 enable_esd=no
292         fi
294 if test "x$enable_artsc" = "xyes"; then
295         AM_PATH_ARTSC
296         if test "x$no_artsc" != "xyes" ; then
297                 old_CFLAGS="$CFLAGS"
298                 CFLAGS="$CFLAGS $ARTSC_CFLAGS"
299                 AC_TRY_COMPILE(,[#include <artsc.h>],
300                         [
301                                 AC_DEFINE(ARTSC_SOUND)
302                                 SOUND_LIBS="$SOUND_LIBS $ARTSC_LIBS"
303                         ],[
304                                 enable_artsc=no
305                                 CFLAGS="$old_CFLAGS"
306                         ])
307         else
308                 enable_artsc=no
309         fi
311 AC_SUBST(SOUND_LIBS)
313 if test "$ac_cv_cygwin" = yes ; then
314         LDADD="$LDADD -static"
315         CFLAGS="$CFLAGS -Wall -g"
316         AC_DEFINE(DEBUG)
317 fi                           
319 AC_SUBST(CFLAGS)
320 AC_SUBST(LDADD)
321 AC_SUBST(LIBS)
323 if test "x$enable_multi" != "xyes" ; then
324         AC_DEFINE(NO_MULTI)
325         enable_multi=no
328 if test "x$enable_plugins" = "xyes" ; then
329         AC_DEFINE(GAIM_PLUGINS)
330         AM_CONDITIONAL(PLUGINS, test "x$enable_plugins" = "xyes")
331 else
332         enable_plugins=no
333         enable_prpls=no
336 if test "x$enable_prpls" = "xyes" ; then
337         AM_CONDITIONAL(PRPLS, test "x$enable_plugins" = "xyes")
338 else
339         enable_prpls=no
342 dnl checks for icqlib
343 AC_CHECK_HEADERS(asm/byteorder.h byteswap.h endian.h machine/endian.h arpa/nameser_compat.h)
344 AC_CHECK_FUNCS(bswap_32 bswap_16)
345 AC_C_BIGENDIAN
347 dnl checks for jabber
348 dnl AC_CHECK_SIZEOF(short)
349 AC_CHECK_FUNCS(snprintf connect)
350 AC_CHECK_LIB(nsl, gethostent)
352 dnl checks for zephyr
353 AC_DEFINE(ZEPHYR_INT32, long)
354 AC_SUBST(KRB4_CFLAGS)
355 AC_SUBST(KRB4_LDFLAGS)
356 AC_SUBST(KRB4_LIBS)
357 if test "$kerberos" != "no" ; then
358         if test "$kerberos" != "yes" ; then
359                 KRB4_CFLAGS="-I${kerberos}/include"
360                 if test -d "$kerberos/include/kerberosIV" ; then
361                         KRB4_CFLAGS="$KRB4_CFLAGS -I${kerberos}/include/kerberosIV"
362                 fi
363                 KRB4_LDFLAGS="-L${kerberos}/lib"
364         elif test -d /usr/local/include/kerberosIV ; then
365                 KRB4_CFLAGS="-I/usr/local/include/kerberosIV"
366         elif test -d /usr/include/kerberosIV ; then
367                 KRB4_CFLAGS="-I/usr/include/kerberosIV"
368         fi
369         AC_DEFINE(ZEPHYR_USES_KERBEROS)
371         orig_LDFLAGS="$LDFLAGS"
372         LDFLAGS="$LDFLAGS $KRB4_LDFLAGS"
373         AC_CHECK_LIB(krb4, krb_rd_req,
374                         [KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"],
375                         [AC_CHECK_LIB(krb, krb_rd_req,
376                                 [KRB4_LIBS="-lkrb -ldes"],
377                                 [AC_ERROR(Kerberos 4 libraries not found)],
378                                 -ldes)],
379                         -ldes425 -lkrb5 -lk5crypto -lcom_err)
380         orig_LIBS="$LIBS"
381         LIBS="$LIBS $KRB4_LIBS"
382         AC_CHECK_FUNCS(krb_set_key krb_rd_req krb_get_lrealm)
383         AC_CHECK_FUNCS(krb_get_err_text krb_log)
384         LIBS="$orig_LIBS"
385         LDFLAGS="$orig_LDFLAGS"
387 AC_CHECK_FUNCS(gethostid lrand48)
388 AC_CHECK_FUNCS(memcpy memmove random strchr strerror vprintf)
389 AC_CHECK_HEADERS(malloc.h paths.h sgtty.h stdarg.h sys/cdefs.h)
390 AC_CHECK_HEADERS(sys/file.h sys/filio.h sys/ioctl.h sys/msgbuf.h)
391 AC_CHECK_HEADERS(sys/select.h sys/uio.h sys/utsname.h sys/wait.h)
392 AC_CHECK_HEADERS(termios.h)
394 AC_OUTPUT([Makefile
395            doc/Makefile
396            intl/Makefile
397            m4/Makefile
398            pixmaps/Makefile
399            plugins/Makefile
400            po/Makefile.in 
401            sounds/Makefile
402            src/Makefile
403            src/protocols/Makefile
404            src/protocols/gg/Makefile
405            src/protocols/icq/Makefile
406            src/protocols/irc/Makefile
407            src/protocols/jabber/Makefile
408            src/protocols/msn/Makefile
409            src/protocols/napster/Makefile
410            src/protocols/oscar/Makefile
411            src/protocols/toc/Makefile
412            src/protocols/yahoo/Makefile
413            src/protocols/zephyr/Makefile
414            gaim.spec
415           ])
417 echo
418 echo $PACKAGE $VERSION
420 echo
421 echo Allow Multiple Connections.... : $enable_multi
422 echo Build Protocol Plugins........ : $enable_prpls
423 echo Protocols to link statically.. : $STATIC_PRPLS
424 echo
425 if test "x$enable_panel" = "xyes" ; then
426         echo UI Library.................... : GNOME Panel
427 elif test "x$enable_gnome" = "xyes" ; then
428         echo UI Library.................... : GNOME App
429 elif test "x$enable_gtk2" = "xyes" ; then
430         echo UI Library.................... : GTK+ 2.0
431 else
432         echo UI Library.................... : GTK+ 1.2
434 if test "x$enable_gtk2" = "xyes" ; then
435         echo Use GdkPixbuf................. : yes
436 else
437         echo Use GdkPixbuf................. : $use_pixbuf
439 echo
440 echo Build with Plugin support..... : $enable_plugins
441 echo Build with Perl support....... : $enable_perl
442 echo
443 echo Use XScreenSaver Extension.... : $enable_xss
444 echo
445 echo Build with ESD................ : $enable_esd
446 echo Build with NAS................ : $enable_nas
447 echo Build with ArtsC.............. : $enable_artsc
448 echo
449 echo Print debugging messages...... : $enable_debug
450 echo
451 eval eval echo Gaim will be installed in $bindir.
452 if test "x$gaimpath" != "x" ; then
453         echo Warning: You have an old copy of gaim at $gaimpath.
455 echo
456 echo configure complete, now type \'make\'
457 echo