Mercurial > pidgin
view finch/libgnt/configure.ac @ 27799:da33da2e1a1e
Fix a bunch of memory leaks reported by Josh Mueller. Refs #9822.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 02 Aug 2009 05:04:41 +0000 |
parents | 01f1929d0936 |
children | a195ce8eb805 |
line wrap: on
line source
dnl Process this file with autoconf to produce a configure script. AC_PREREQ([2.50]) # UPDATING VERSION NUMBERS FOR RELEASES # # gnt_micro_version += 1 # # If any functions have been added to libgnt: # gnt_micro_version = 0 # gnt_minor_version += 1 # gnt_lt_current += 1 # # If backwards compatibility has been broken in libgnt: # gnt_micro_version = 0 # gnt_minor_version = 0 # gnt_major_version += 1; # gnt_lt_current += 1 # # gnt_version_suffix should be similar to one of the following: # For beta releases: [beta2] # For code under development: [devel] # For production releases: [] # # Make sure to update ../../configure.ac with libgnt version changes. # m4_define([gnt_lt_current], [5]) m4_define([gnt_major_version], [2]) m4_define([gnt_minor_version], [5]) m4_define([gnt_micro_version], [0]) m4_define([gnt_version_suffix], []) m4_define([gnt_version], [gnt_major_version.gnt_minor_version.gnt_micro_version]) m4_define([gnt_display_version], gnt_version[]m4_ifdef([gnt_version_suffix],[gnt_version_suffix])) AC_INIT([libgnt], [gnt_display_version], [devel@pidgin.im]) AC_CANONICAL_SYSTEM AM_CONFIG_HEADER(config.h) AC_CONFIG_AUX_DIR([.]) AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) GNT_MAJOR_VERSION=gnt_major_version GNT_MINOR_VERSION=gnt_minor_version GNT_MICRO_VERSION=gnt_micro_version GNT_VERSION=[gnt_display_version] AC_SUBST(GNT_MAJOR_VERSION) AC_SUBST(GNT_MINOR_VERSION) AC_SUBST(GNT_MICRO_VERSION) AC_SUBST(GNT_VERSION) GNT_LT_VERSION_INFO="gnt_lt_current:gnt_micro_version:gnt_minor_version" AC_SUBST(GNT_LT_VERSION_INFO) AC_PATH_PROG(sedpath, sed) dnl Storing configure arguments AC_DEFINE_UNQUOTED(CONFIG_ARGS, "$ac_configure_args", [configure arguments]) dnl Checks for programs. AC_PROG_CC AC_DISABLE_STATIC AM_PROG_LIBTOOL LIBTOOL="$LIBTOOL --silent" AC_PROG_INSTALL dnl we don't use autobreak on cygwin!! dnl AC_CYGWIN dnl Checks for header files. AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(arpa/nameser_compat.h fcntl.h sys/time.h unistd.h locale.h signal.h stdint.h regex.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_STRUCT_TM AC_C_BIGENDIAN dnl Checks for library functions. AC_TYPE_SIGNAL AC_FUNC_STRFTIME AC_CHECK_FUNCS(strdup strstr atexit setlocale) dnl to prevent the g_stat()/g_unlink() crash, dnl (09:50:07) Robot101: LSchiere2: it's easy. +LC_SYS_LARGEFILE somewhere in configure.ac AC_SYS_LARGEFILE dnl FreeBSD doesn't have libdl, dlopen is provided by libc AC_CHECK_FUNC(dlopen, LIBDL="", [AC_CHECK_LIB(dl, dlopen, LIBDL="-ldl")]) AC_MSG_CHECKING(for the %z format string in strftime()) AC_TRY_RUN([ #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #endif #include <time.h> #include <stdio.h> int main() { char buf[6]; time_t t = time(NULL); if (strftime(buf, sizeof(buf), "%z", localtime(&t)) != 5) return 1; fprintf(stderr, "strftime(\"%%z\") yields: \"%s\"\n", buf); return !((buf[0] == '-' || buf[0] == '+') && (buf[1] >= '0' && buf[1] <= '9') && (buf[2] >= '0' && buf[2] <= '9') && (buf[3] >= '0' && buf[3] <= '9') && (buf[4] >= '0' && buf[4] <= '9') ); } ], [ AC_MSG_RESULT(yes) AC_DEFINE([HAVE_STRFTIME_Z_FORMAT], [1], [Define to 1 if you have a strftime() that supports the %z format string.]) ], [ AC_MSG_RESULT(no) ], [ # Fallback for Cross Compiling... # This will enable the compatibility code. AC_MSG_RESULT(no) ] ) AC_CHECK_HEADER(sys/utsname.h) AC_CHECK_FUNC(uname) if test "x$enable_debug" = "xyes" ; then AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.]) enable_fatal_asserts="yes" fi if test "x$enable_fatal_asserts" = "xyes" ; then AC_DEFINE(GAIM_FATAL_ASSERTS, 1, [Define to make assertions fatal (useful for debugging).]) fi if test "x$enable_deprecated" = "xno"; then DEBUG_CFLAGS="$DEBUG_CFLAGS -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED" fi if test "x$GCC" = "xyes"; then dnl We enable -Wall later. dnl If it's set after the warning CFLAGS in the compiler invocation, it counteracts the -Wno... flags. dnl This leads to warnings we don't want. CFLAGS=`echo $CFLAGS |$sedpath 's/-Wall//'` dnl ENABLE WARNINGS SUPPORTED BY THE VERSION OF GCC IN USE dnl dnl Future Possibilities dnl dnl Consider adding -Wbad-function-cast. dnl This leads to spurious warnings using GPOINTER_TO_INT(), et al. directly on a function call. dnl We'd need an intermediate variable. dnl dnl Consider adding -Wfloat-equal. dnl This leads to warnings with Perl. dnl Perhaps we could write ugly configure magic and pass -Wno-float-equal down to that subdirectory. dnl On the other hand, it's probably actually broken, so maybe the Perl folks should fix that? dnl dnl Consider removing -Wno-sign-compare (from the -Wextra set) and fixing all those cases. dnl This is likely non-trivial. dnl for newflag in \ "-Waggregate-return" \ "-Wcast-align" \ "-Wdeclaration-after-statement" \ "-Werror-implicit-function-declaration" \ "-Wextra -Wno-sign-compare -Wno-unused-parameter" \ "-Winit-self" \ "-Wmissing-declarations" \ "-Wmissing-prototypes" \ "-Wnested-externs" \ "-Wpointer-arith" \ "-Wundef" \ ; do orig_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $newflag" AC_MSG_CHECKING(for $newflag option to gcc) AC_TRY_COMPILE([], [ int main() {return 0;} ], [ AC_MSG_RESULT(yes) CFLAGS="$orig_CFLAGS" DEBUG_CFLAGS="$DEBUG_CFLAGS $newflag" ], [ AC_MSG_RESULT(no) CFLAGS="$orig_CFLAGS" ]) done if test "x$enable_fortify" = "xyes"; then AC_MSG_CHECKING(for FORTIFY_SOURCE support) AC_TRY_COMPILE([#include <features.h>], [ int main() { #if !(__GNUC_PREREQ (4, 1) \ || (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (4, 0)) \ || (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (3, 4) \ && __GNUC_MINOR__ == 4 \ && (__GNUC_PATCHLEVEL__ > 2 \ || (__GNUC_PATCHLEVEL__ == 2 && __GNUC_RH_RELEASE__ >= 8)))) #error No FORTIFY_SOURCE support #endif return 0; } ], [ AC_MSG_RESULT(yes) DEBUG_CFLAGS="$DEBUG_CFLAGS -D_FORTIFY_SOURCE=2" ], [ AC_MSG_RESULT(no) ]) fi DEBUG_CFLAGS="-Wall $DEBUG_CFLAGS" CFLAGS="-g $CFLAGS" fi AC_SUBST(CFLAGS) PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.0.0 gobject-2.0 gmodule-2.0],, [ AC_MSG_ERROR([ *** GLib 2.0 is required to build LibGNT; please make sure you have the GLib *** development headers installed. The latest version of GLib is *** always available at http://www.gtk.org/.]) ]) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) AC_MSG_CHECKING(for me pot o' gold) AC_MSG_RESULT(no) AC_CHECK_FUNCS(gethostid lrand48) AC_CHECK_FUNCS(memcpy memmove random strchr strerror vprintf) AC_CHECK_HEADERS(malloc.h paths.h sgtty.h stdarg.h sys/cdefs.h) AC_CHECK_HEADERS(sys/file.h sys/filio.h sys/ioctl.h sys/msgbuf.h) AC_CHECK_HEADERS(sys/select.h sys/uio.h sys/utsname.h sys/wait.h) AC_CHECK_HEADERS(termios.h) #AC_CHECK_FUNC(wcwidth, [AC_DEFINE([HAVE_WCWIDTH], [1], [Define to 1 if you have wcwidth function.])]) #AC_VAR_TIMEZONE_EXTERNALS GNT_CFLAGS= GNT_LIBS= AC_ARG_WITH(ncurses-headers, [AC_HELP_STRING([--with-ncurses-headers=DIR], [compile finch against the ncurses includes in DIR])], [ac_ncurses_includes="$withval"], [ac_ncurses_includes=""]) AC_CHECK_LIB(ncursesw, initscr, [GNT_LIBS="-lncursesw"], [enable_gnt=no]) AC_CHECK_LIB(panelw, update_panels, [GNT_LIBS="$GNT_LIBS -lpanelw"], [enable_gnt=no]) # If ncursesw is not found, look for plain old ncurses if test "x$enable_gnt" = "xno"; then AC_CHECK_LIB(ncurses, initscr, [[GNT_LIBS="-lncurses"] [enable_gnt=yes]], [enable_gnt=no]) AC_CHECK_LIB(panel, update_panels, [[GNT_LIBS="$GNT_LIBS -lpanel"] [enable_gnt=yes]], [enable_gnt=no]) AC_DEFINE(NO_WIDECHAR, [1], [Define to 1 if you do not have ncursesw.]) else dnl # Some distros put the headers in ncursesw/, some don't found_ncurses_h=no for location in $ac_ncurses_includes /usr/include/ncursesw /usr/include do f="$location/ncurses.h" AC_CHECK_HEADER($f,[ AC_MSG_CHECKING([if $f supports wide characters]) AC_TRY_COMPILE([ #define _XOPEN_SOURCE_EXTENDED #include <$f> ], [ #ifndef get_wch # error get_wch not found! #endif ], [ dir=$location if test x"$dir" != x"." ; then GNT_CFLAGS="-I$dir/" else GNT_CFLAGS="" fi found_ncurses_h=yes AC_MSG_RESULT([yes]) break ], [ AC_MSG_RESULT([no]) ]) ]) done if test x"$found_ncurses_h" != "xyes"; then enable_gnt="no" fi fi AC_SUBST(GNT_CFLAGS) AC_SUBST(GNT_LIBS) if test "x$enable_gnt" = "xno"; then AC_MSG_ERROR([ *** You need ncursesw or ncurses and its header files.]) fi dnl Check for Python headers (currently useful only for libgnt) dnl (Thanks to XChat) AC_PATH_PROG(pythonpath, python) if test "_$pythonpath" != _ ; then AC_MSG_CHECKING(for Python compile flags) PY_PREFIX=`$pythonpath -c 'import sys ; print sys.prefix'` PY_EXEC_PREFIX=`$pythonpath -c 'import sys ; print sys.exec_prefix'` changequote(<<, >>)dnl PY_VERSION=`$pythonpath -c 'import sys ; print sys.version[0:3]'` PY_MAJOR=`$pythonpath -c 'import sys ; print sys.version[0:2]'` changequote([, ])dnl if test -f $PY_PREFIX/include/python$PY_VERSION/Python.h -a "$PY_MAJOR" = "2."; then AC_CHECK_LIB(pthread, pthread_create, ) AC_CHECK_LIB(util, openpty, ) AC_CHECK_LIB(db, dbopen, ) PY_LIBS="-lpython$PY_VERSION -L$PY_EXEC_PREFIX/lib/python$PY_VERSION/config" PY_CFLAGS="-I$PY_PREFIX/include/python$PY_VERSION" AC_DEFINE(USE_PYTHON, [1], [Define if python headers are available.]) AC_MSG_RESULT(ok) else AC_MSG_RESULT([Can't find Python.h]) PY_LIBS="" PY_CFLAGS="" fi fi AC_SUBST(PY_CFLAGS) AC_SUBST(PY_LIBS) dnl Check for libxml have_libxml=yes PKG_CHECK_MODULES(LIBXML, [libxml-2.0], , [ AC_MSG_RESULT(no) have_libxml=no ]) AC_SUBST(LIBXML_CFLAGS) AC_SUBST(LIBXML_LIBS) if test "x$have_libxml" = "xno"; then AC_DEFINE(NO_LIBXML, 1, [Do not have libxml2.]) fi AM_CONDITIONAL(PURPLE_AVAILABLE, false) AC_OUTPUT([Makefile gnt.pc wms/Makefile ])