/////////////////////////////////////////////////////////////////////////
// $Id$
//
// The configure script reads this file and produces ltdlconf.h, which
// tells ltdl.c how to compile.  It was copied out of the libtool package
// but appears to have been generated by autoheader.
/////////////////////////////////////////////////////////////////////////

/* config-h.in.  Generated automatically from configure.in by autoheader.  */

/* Define to empty if the keyword does not work.  */
#undef const

/* Define as __inline if that's what the C compiler calls it.  */
#undef inline

/* Define if you have the ANSI C header files.  */
#undef STDC_HEADERS

/* Define if you have the argz_append function.  */
#undef HAVE_ARGZ_APPEND

/* Define if you have the argz_create_sep function.  */
#undef HAVE_ARGZ_CREATE_SEP

/* Define if you have the argz_insert function.  */
#undef HAVE_ARGZ_INSERT

/* Define if you have the argz_next function.  */
#undef HAVE_ARGZ_NEXT

/* Define if you have the argz_stringify function.  */
#undef HAVE_ARGZ_STRINGIFY

/* Define if you have the bcopy function.  */
#undef HAVE_BCOPY

/* Define if you have the dlerror function.  */
#undef HAVE_DLERROR

/* Define if you have the index function.  */
#undef HAVE_INDEX

/* Define if you have the memcpy function.  */
#undef HAVE_MEMCPY

/* Define if you have the memmove function.  */
#undef HAVE_MEMMOVE

/* Define if you have the rindex function.  */
#undef HAVE_RINDEX

/* Define if you have the strchr function.  */
#undef HAVE_STRCHR

/* Define if you have the strcmp function.  */
#undef HAVE_STRCMP

/* Define if you have the strrchr function.  */
#undef HAVE_STRRCHR

/* Define if you have the <argz.h> header file.  */
#undef HAVE_ARGZ_H

/* Define if you have the <assert.h> header file.  */
#undef HAVE_ASSERT_H

/* Define if you have the <ctype.h> header file.  */
#undef HAVE_CTYPE_H

/* Define if you have the <dirent.h> header file.  */
#undef HAVE_DIRENT_H

/* Define if you have the <dl.h> header file.  */
#undef HAVE_DL_H

/* Define if you have the <dld.h> header file.  */
#undef HAVE_DLD_H

/* Define if you have the <dlfcn.h> header file.  */
#undef HAVE_DLFCN_H

/* Define if you have the <errno.h> header file.  */
#undef HAVE_ERRNO_H

/* Define if you have the <malloc.h> header file.  */
#undef HAVE_MALLOC_H

/* Define if you have the <memory.h> header file.  */
#undef HAVE_MEMORY_H

/* Define if you have the <ndir.h> header file.  */
#undef HAVE_NDIR_H

/* Define if you have the <stdio.h> header file.  */
#undef HAVE_STDIO_H

/* Define if you have the <stdlib.h> header file.  */
#undef HAVE_STDLIB_H

/* Define if you have the <string.h> header file.  */
#undef HAVE_STRING_H

/* Define if you have the <strings.h> header file.  */
#undef HAVE_STRINGS_H

/* Define if you have the <sys/dir.h> header file.  */
#undef HAVE_SYS_DIR_H

/* Define if you have the <sys/dl.h> header file.  */
#undef HAVE_SYS_DL_H

/* Define if you have the <sys/ndir.h> header file.  */
#undef HAVE_SYS_NDIR_H

/* Define if you have the <unistd.h> header file.  */
#undef HAVE_UNISTD_H

/* Define to the extension used for shared libraries, say, .so.  */
#undef LTDL_SHLIB_EXT

/* Define to the name of the environment variable that determines the dynamic library search path.  */
#undef LTDL_SHLIBPATH_VAR

/* Define to the system default library search path.  */
#undef LTDL_SYSSEARCHPATH

/* Define to the sub-directory in which libtool stores uninstalled libraries.  */
#undef LTDL_OBJDIR

/* Define if libtool can extract symbol lists from object files.  */
#undef HAVE_PRELOADED_SYMBOLS

/* Define if you have the libdl library or equivalent.  */
#undef HAVE_LIBDL

/* Define if you have the libdl library or equivalent. */
#undef HAVE_LIBDL

/* Define if you have the libdl library or equivalent. */
#undef HAVE_LIBDL

/* Define if you have the shl_load function. */
#undef HAVE_SHL_LOAD

/* Define if you have the shl_load function. */
#undef HAVE_SHL_LOAD

/* Define if you have the GNU dld library. */
#undef HAVE_DLD

/* Define if dlsym() requires a leading underscode in symbol names.  */
#undef NEED_USCORE

/* Define if the OS needs help to load dependent libraries for dlopen().  */
#undef LTDL_DLOPEN_DEPLIBS

/* Define to a type to use for `error_t' if it is not otherwise available. */
#undef error_t

