# Process this file with autoconf to produce a configure script. AC_INIT(glist.c) # Save this value here, since automake will set cflags later cflags_set=${CFLAGS+set} # The following version number definitions apply to GLib and GModule # as a whole, so if changes occoured in either of them, they are both # treated with the same interface and binary age. # # Making releases: # GLIB_MICRO_VERSION += 1; # GLIB_INTERFACE_AGE += 1; # GLIB_BINARY_AGE += 1; # if any functions have been added, set GLIB_INTERFACE_AGE to 0. # if backwards compatibility has been broken, # set GLIB_BINARY_AGE and GLIB_INTERFACE_AGE to 0. # GLIB_MAJOR_VERSION=1 GLIB_MINOR_VERSION=1 GLIB_MICRO_VERSION=4 GLIB_INTERFACE_AGE=0 GLIB_BINARY_AGE=0 GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION AC_SUBST(GLIB_VERSION) # libtool versioning LT_RELEASE=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION LT_CURRENT=`expr $GLIB_MICRO_VERSION - $GLIB_INTERFACE_AGE` LT_REVISION=$GLIB_INTERFACE_AGE LT_AGE=`expr $GLIB_BINARY_AGE - $GLIB_INTERFACE_AGE` AC_SUBST(LT_RELEASE) AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) VERSION=$GLIB_VERSION PACKAGE=glib AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) # Specify a configuration file AM_CONFIG_HEADER(config.h) AC_DEFINE_UNQUOTED(GLIB_MAJOR_VERSION, $GLIB_MAJOR_VERSION) AC_DEFINE_UNQUOTED(GLIB_MINOR_VERSION, $GLIB_MINOR_VERSION) AC_DEFINE_UNQUOTED(GLIB_MICRO_VERSION, $GLIB_MICRO_VERSION) AC_DEFINE_UNQUOTED(GLIB_INTERFACE_AGE, $GLIB_INTERFACE_AGE) AC_DEFINE_UNQUOTED(GLIB_BINARY_AGE, $GLIB_BINARY_AGE) dnl Initialize libtool AM_PROG_LIBTOOL dnl Initialize maintainer mode AM_MAINTAINER_MODE AC_CANONICAL_HOST AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=minimum]],,enable_debug=minimum) AC_ARG_ENABLE(mem_check, [ --enable-mem-check=[no/yes] turn on malloc/free sanity checking [default=no]],,enable_mem_check=no) AC_ARG_ENABLE(mem_profile, [ --enable-mem-profile=[no/yes] turn on malloc profiling atexit [default=no]],,enable_mem_profile=no) AC_ARG_ENABLE(ansi, [ --enable-ansi turn on strict ansi [default=no]], , enable_ansi=no) AC_MSG_CHECKING(whether to enable memory checking) if test "x$enable_mem_check" = "xyes"; then AC_DEFINE(ENABLE_MEM_CHECK, 1) AC_SUBST(ENABLE_MEM_CHECK) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi AC_MSG_CHECKING(whether to enable memory profiling) if test "x$enable_mem_profile" = "xyes"; then AC_DEFINE(ENABLE_MEM_PROFILE, 1) AC_SUBST(ENABLE_MEM_PROFILE) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi if test "x$enable_debug" = "xyes"; then test "$cflags_set" = set || CFLAGS="$CFLAGS -g" CFLAGS="$CFLAGS -DG_ENABLE_DEBUG" else if test "x$enable_debug" = "xno"; then CFLAGS="$CFLAGS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS" fi fi AC_DEFINE_UNQUOTED(G_COMPILED_WITH_DEBUGGING, "${enable_debug}") # Checks for programs. AC_PROG_CC AM_PROG_CC_STDC AC_PROG_INSTALL changequote(,)dnl if test "x$GCC" = "xyes"; then case " $CFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wall" ;; esac if test "x$enable_ansi" = "xyes"; then case " $CFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) CFLAGS="$CFLAGS -ansi" ;; esac case " $CFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) CFLAGS="$CFLAGS -pedantic" ;; esac fi fi changequote([,])dnl dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R) AC_MSG_CHECKING([for extra flags to get ANSI library prototypes]) glib_save_LIBS=$LIBS LIBS="$LIBS -lm" AC_TRY_RUN([#include int main (void) { return (log(1) != log(1.)); }], AC_MSG_RESULT(none needed), glib_save_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -std1" AC_TRY_RUN([#include int main (void) { return (log(1) != log(1.)); }], AC_MSG_RESULT(-std1), AC_MSG_RESULT() CFLAGS=$glib_save_CFLAGS AC_MSG_WARN( [No ANSI prototypes found in library. (-std1 didn't work.)]) ) ) LIBS=$glib_save_LIBS dnl NeXTStep cc seems to need this AC_MSG_CHECKING([for extra flags for POSIX compliance]) AC_TRY_COMPILE([#include ], [DIR *dir;], AC_MSG_RESULT(none needed), glib_save_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -posix" AC_TRY_COMPILE([#include ], [DIR *dir;], AC_MSG_RESULT(-posix), AC_MSG_RESULT() CFLAGS=$glib_save_CFLAGS AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)]))) # Checks for header files. AC_HEADER_STDC # Checks for library functions. AC_FUNC_VPRINTF AC_CHECK_FUNCS(atexit on_exit) AC_CHECK_SIZEOF(char) AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(void *) AC_CHECK_SIZEOF(long long) dnl long doubles were not used, and a portability problem dnl AC_C_LONG_DOUBLE AC_C_CONST dnl AC_C_INLINE is useless to us since it bails out too early, we need to dnl truely know which ones of `inline', `__inline' and `__inline__' are dnl actually supported. AC_MSG_CHECKING(for __inline) AC_CACHE_VAL(glib_cv_has__inline,[ AC_TRY_RUN([ __inline int foo () { return 0; } int main () { return foo (); } ], glib_cv_has__inline=yes , glib_cv_has__inline=no ,) ]) AC_MSG_RESULT($glib_cv_has__inline) case x$glib_cv_has__inline in xyes) AC_DEFINE(G_HAVE___INLINE) esac AC_MSG_CHECKING(for __inline__) AC_CACHE_VAL(glib_cv_has__inline__,[ AC_TRY_RUN([ __inline__ int foo () { return 0; } int main () { return foo (); } ], glib_cv_has__inline__=yes , glib_cv_has__inline__=no ,) ]) AC_MSG_RESULT($glib_cv_has__inline__) case x$glib_cv_has__inline__ in xyes) AC_DEFINE(G_HAVE___INLINE__) esac AC_MSG_CHECKING(for inline) AC_CACHE_VAL(glib_cv_hasinline,[ AC_TRY_RUN([ inline int foo () { return 0; } int main () { return foo (); } ], glib_cv_hasinline=yes , glib_cv_hasinline=no ,) ]) AC_MSG_RESULT($glib_cv_hasinline) case x$glib_cv_hasinline in xyes) AC_DEFINE(G_HAVE_INLINE) esac dnl for bytesex stuff AC_C_BIGENDIAN dnl header file checks AC_CHECK_HEADERS(float.h, AC_DEFINE(HAVE_FLOAT_H)) AC_CHECK_HEADERS(limits.h, AC_DEFINE(HAVE_LIMITS_H)) AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H)) AC_CHECK_HEADERS(sys/param.h, AC_DEFINE(HAVE_SYS_PARAM_H)) AC_CHECK_HEADERS(sys/select.h, AC_DEFINE(HAVE_SYS_SELECT_H)) AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H)) AC_CHECK_HEADERS(sys/times.h, AC_DEFINE(HAVE_SYS_TIMES_H)) AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H)) AC_CHECK_HEADERS(values.h, AC_DEFINE(HAVE_VALUES_H)) # Check for some functions AC_CHECK_FUNCS(lstat strerror strsignal memmove vsnprintf strcasecmp) # Check for sys_errlist AC_MSG_CHECKING(for sys_errlist) AC_TRY_LINK(, [ extern char *sys_errlist[]; extern int sys_nerr; sys_errlist[sys_nerr-1][0] = 0; ], glib_ok=yes, glib_ok=no) AC_MSG_RESULT($glib_ok) if test $glib_ok = no; then AC_DEFINE(NO_SYS_ERRLIST) fi # Check for sys_siglist AC_MSG_CHECKING(for sys_siglist) AC_TRY_LINK(, [ extern char *sys_siglist[]; sys_siglist[1][0] = 0; ], glib_ok=yes, glib_ok=no) AC_MSG_RESULT($glib_ok) if test $glib_ok = no; then AC_DEFINE(NO_SYS_SIGLIST) fi # Check if needs to be included for fd_set AC_MSG_CHECKING([for fd_set]) AC_TRY_COMPILE([#include ], [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no) if test $gtk_ok = yes; then AC_MSG_RESULT([yes, found in sys/types.h]) else AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes) if test $gtk_ok = yes; then AC_DEFINE(HAVE_SYS_SELECT_H) AC_MSG_RESULT([yes, found in sys/select.h]) else AC_DEFINE(NO_FD_SET) AC_MSG_RESULT(no) fi fi # These are used only in GDK (gdki18n.h) # This stuff is here only so that we can define these # things in glibconfig.h. If gtk+ started using an installed # gdkconfig.h file, then the definitions would belong there. # Check for wchar.h AC_MSG_CHECKING(for wchar.h) AC_TRY_CPP([#include ], glib_wchar_h=yes, glib_wchar_h=no) if test $glib_wchar_h = yes; then AC_DEFINE(HAVE_WCHAR_H) fi AC_MSG_RESULT($glib_wchar_h) # Check for wctype.h (for iswalnum) AC_MSG_CHECKING(for wctype.h) AC_TRY_CPP([#include ], glib_wctype_h=yes, glib_wctype_h=no) if test $glib_wctype_h = yes; then AC_DEFINE(HAVE_WCTYPE_H) fi AC_MSG_RESULT($glib_wctype_h) oLIBS="$LIBS" # in Solaris 2.5, `iswalnum' is in -lw AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum)]) # The following is necessary for Linux libc-5.4.38 AC_MSG_CHECKING(if iswalnum() and friends are properly defined) AC_TRY_LINK([#include ],[ #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H)) # ifdef HAVE_WCTYPE_H # include # else # ifdef HAVE_WCHAR_H # include # endif # endif #else # define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c)) #endif iswalnum((wchar_t) 0); ], glib_working_wctype=yes, glib_working_wctype=no) LIBS="$oLIBS" if test $glib_working_wctype = no; then AC_DEFINE(HAVE_BROKEN_WCTYPE) fi AC_MSG_RESULT($glib_working_wctype) dnl ********************** dnl *** va_copy checks *** dnl ********************** dnl we currently check for all three va_copy possibilities, so we get dnl all results in config.log for bug reports. AC_MSG_CHECKING(for an implementation of va_copy()) AC_CACHE_VAL(glib_cv_va_copy,[ AC_TRY_RUN([ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); va_copy (args2, args1); if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; }], glib_cv_va_copy=yes , glib_cv_va_copy=no ,) ]) AC_MSG_RESULT($glib_cv_va_copy) AC_MSG_CHECKING(for an implementation of __va_copy()) AC_CACHE_VAL(glib_cv___va_copy,[ AC_TRY_RUN([ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); __va_copy (args2, args1); if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; }], glib_cv___va_copy=yes , glib_cv___va_copy=no ,) ]) AC_MSG_RESULT($glib_cv___va_copy) AC_MSG_CHECKING(whether va_lists can be copied by value) AC_CACHE_VAL(glib_cv_va_val_copy,[ AC_TRY_RUN([ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); args2 = args1; if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; }], glib_cv_va_val_copy=yes , glib_cv_va_val_copy=no ,) ]) if test "x$glib_cv_va_copy" = "xyes"; then AC_DEFINE(G_VA_COPY, va_copy) else if test "x$glib_cv___va_copy" = "xyes"; then AC_DEFINE(G_VA_COPY, __va_copy) fi fi if test "x$glib_cv_va_val_copy" = "xno"; then AC_DEFINE(G_VA_COPY_AS_ARRAY) fi AC_MSG_RESULT($glib_cv_va_val_copy) dnl *********************** dnl *** g_module checks *** dnl *********************** G_MODULE_LIBS= G_MODULE_LDFLAGS= G_MODULE_IMPL= G_MODULE_NEED_USCORE=0 G_MODULE_HAVE_DLERROR=0 dnl *** dlopen() in system libraries if test -z "$G_MODULE_IMPL"; then AC_CHECK_FUNC(dlopen, G_MODULE_IMPL=G_MODULE_IMPL_DL ,) fi dnl *** dlopen() in libdl if test -z "$G_MODULE_IMPL"; then AC_CHECK_LIB(dl, dlopen, G_MODULE_LIBS=-ldl G_MODULE_IMPL=G_MODULE_IMPL_DL ,) fi dnl *** shl_load() in libdld (HP-UX) if test -z "$G_MODULE_IMPL"; then AC_MSG_CHECKING(how to export all symbols) SAVED_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-E" AC_TRY_LINK(,[ return 0; ], [ G_MODULE_LDFLAGS="-Wl,-E" ],[ LDFLAGS="$SAVED_LDFLAGS -bexpall" AC_TRY_LINK(,[ return 0; ], G_MODULE_LDFLAGS="-bexpall", G_MODULE_LDFLAGS="none" ) ]) LDFLAGS=$SAVED_LDFLAGS AC_MSG_RESULT($G_MODULE_LDFLAGS) if test "x$G_MODULE_LDFLAGS" = "xnone"; then G_MODULE_LDFLAGS= fi AC_CHECK_LIB(dld, shl_load, G_MODULE_LIBS=-ldld G_MODULE_IMPL=G_MODULE_IMPL_DLD ,) fi dnl *** additional checks for G_MODULE_IMPL_DL if test "$G_MODULE_IMPL" = "G_MODULE_IMPL_DL"; then case "$host_os" in linux*) G_MODULE_LDFLAGS='-rdynamic' ;; esac LIBS_orig="$LIBS" LDFLAGS_orig="$LDFLAGS" LIBS="$LIBS $G_MODULE_LIBS" LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS" dnl *** check whether we need preceeding underscores AC_MSG_CHECKING(for preceeding underscore in symbols) AC_CACHE_VAL(glib_cv_uscore,[ AC_TRY_RUN([ #include int glib_underscore_test (void) { return 42; } int main() { void *f1 = (void*)0, *f2 = (void*)0, *handle; handle = dlopen ((void*)0, 0); if (handle) { f1 = dlsym (handle, "glib_underscore_test"); f2 = dlsym (handle, "_glib_underscore_test"); } return (!f2 || f1); }], glib_cv_uscore=yes, glib_cv_uscore=no, ) rm -f plugin.c plugin.o plugin.lo ]) AC_MSG_RESULT($glib_cv_uscore) if test "x$glib_cv_uscore" = "xyes"; then G_MODULE_NEED_USCORE=1 else G_MODULE_NEED_USCORE=0 fi LDFLAGS="$LDFLAGS_orig" dnl *** check for having dlerror() AC_CHECK_FUNC(dlerror, G_MODULE_HAVE_DLERROR=1, G_MODULE_HAVE_DLERROR=0) LIBS="$LIBS_orig" fi dnl *** done, have e got an implementation? if test -z "$G_MODULE_IMPL"; then G_MODULE_IMPL=0 fi AC_SUBST(G_MODULE_IMPL) AC_SUBST(G_MODULE_LIBS) AC_SUBST(G_MODULE_LDFLAGS) AC_SUBST(G_MODULE_HAVE_DLERROR) AC_SUBST(G_MODULE_NEED_USCORE) AC_OUTPUT_COMMANDS([ ## Generate `glibconfig.h' in two cases ## 1. `config.status' is run either explicitly, or via configure. ## Esp. not when it is run in `Makefile' to generate makefiles and ## config.h ## 2. CONFIG_OTHER is set explicitly ## ## Case 1 is difficult. We know that `automake' sets one of ## CONFIG_FILES or CONFIG_HEADERS to empty. This heuristic works ## only when AM_CONFIG_HEADER is set, however. if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1 CONFIG_OTHER=${CONFIG_OTHER:-glibconfig.h} fi case "$CONFIG_OTHER" in *glibconfig.h*) echo creating glibconfig.h outfile=glibconfig.h-tmp cat > $outfile <<\outfile_EOF /* glibconfig.h */ /* This is a generated file. Please modify `configure.in' */ #ifndef GLIBCONFIG_H #define GLIBCONFIG_H #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ outfile_EOF if test x$glib_limits_h = xyes; then echo '#include ' >> $outfile fi if test x$glib_float_h = xyes; then echo '#include ' >> $outfile fi if test x$glib_values_h = xyes; then echo '#include ' >> $outfile fi cat >> $outfile <>$outfile <>$outfile <>$outfile <>$outfile <>$outfile <>$outfile fi cat >>$outfile <>$outfile <>$outfile <