www.pudn.com > eMule0.47c-Sources.zip > configure.in


# $Id: configure.in,v 1.68 2003/03/02 16:37:12 t1mpy Exp $ 
 
# Copyright 1999, 2000 Scott Thomas Haug  
# Copyright (C) 2002 Thijmen Klok  
#   
# This file is free software; as a special exception the author gives 
# unlimited permission to copy and/or distribute it, with or without  
# modifications, as long as this notice is preserved. 
#  
# This program is distributed in the hope that it will be useful, but 
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the 
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 
# require autoconf 2.13 
AC_PREREQ(2.13) 
 
# init autoconf (and check for presence fo reconf) 
AC_INIT(reconf) 
 
ID3LIB_NAME=id3lib 
 
dnl The following has been adapted from glib (http://www.gtk.org) 
dnl 
dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they 
dnl are available for $ac_help expansion (don't we all *love* autoconf?) 
#AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl 
ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], 
			      [AC_DIVERT_PUSH(NOTICE)]) 
 
# Making releases: 
#   ID3LIB_PATCH_VERSION += 1; 
#   ID3LIB_INTERFACE_AGE += 1; 
#   ID3LIB_BINARY_AGE += 1; 
# if any functions have been added, set ID3LIB_INTERFACE_AGE to 0. 
# if backwards compatibility has been broken, 
# set ID3LIB_BINARY_AGE _and_ ID3LIB_INTERFACE_AGE to 0. 
# 
 
ID3LIB_MAJOR_VERSION=3 
ID3LIB_MINOR_VERSION=8 
ID3LIB_PATCH_VERSION=3 
ID3LIB_ADDED_VERSION= 
ID3LIB_VERSION=$ID3LIB_MAJOR_VERSION.$ID3LIB_MINOR_VERSION.$ID3LIB_PATCH_VERSION$ID3LIB_ADDED_VERSION 
 
ID3LIB_INTERFACE_AGE=0 
ID3LIB_BINARY_AGE=0 
AC_DIVERT_POP()dnl 
 
AC_SUBST(ID3LIB_NAME) 
AC_SUBST(ID3LIB_MAJOR_VERSION) 
AC_SUBST(ID3LIB_MINOR_VERSION) 
AC_SUBST(ID3LIB_PATCH_VERSION) 
AC_SUBST(ID3LIB_VERSION) 
AC_SUBST(ID3LIB_INTERFACE_AGE) 
AC_SUBST(ID3LIB_BINARY_AGE) 
 
# for documentation purposes 
DOX_DIR_HTML=api 
DOX_DIR_LATEX=latex 
DOX_DIR_MAN=man 
DOX_DIR_RTF=rtf 
 
AC_SUBST(DOX_DIR_HTML) 
AC_SUBST(DOX_DIR_LATEX) 
AC_SUBST(DOX_DIR_MAN) 
AC_SUBST(DOX_DIR_RTF) 
 
# libtool versioning 
LT_RELEASE=$ID3LIB_MAJOR_VERSION.$ID3LIB_MINOR_VERSION 
LT_CURRENT=`expr $ID3LIB_PATCH_VERSION - $ID3LIB_INTERFACE_AGE` 
LT_REVISION=$ID3LIB_INTERFACE_AGE 
LT_AGE=`expr $ID3LIB_BINARY_AGE - $ID3LIB_INTERFACE_AGE` 
AC_SUBST(LT_RELEASE) 
AC_SUBST(LT_CURRENT) 
AC_SUBST(LT_REVISION) 
AC_SUBST(LT_AGE) 
 
VERSION=$ID3LIB_VERSION 
PACKAGE=$ID3LIB_NAME 
 
dnl This is a hack to get the release date using cvs checkin macros 
ID3LIB_FULLNAME=$ID3LIB_NAME-$ID3LIB_VERSION 
 
AC_SUBST(ID3LIB_FULLNAME) 
 
AM_CONFIG_HEADER(config.h) 
 
AM_INIT_AUTOMAKE($PACKAGE,$VERSION) 
 
AC_ISC_POSIX 
 
dnl Initialize libtool 
AM_PROG_LIBTOOL 
 
dnl Initialize maintainer mode 
AM_MAINTAINER_MODE 
 
#AC_CANONICAL_HOST 
 
dnl figure debugging default, prior to $ac_help setup 
dnl 
ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], 
			      [AC_DIVERT_PUSH(NOTICE)]) 
if test `expr $ID3LIB_MINOR_VERSION \% 2` = 1 ; then 
        debug_default=yes 
else 
        debug_default=minimum 
fi 
AC_DIVERT_POP()dnl 
 
dnl declare --enable-* args and collect ac_help strings 
AC_ARG_ENABLE(ansi,  [  --enable-ansi           turn on strict ansi [default=no]], , enable_ansi=no) 
dnl  
AC_SUBST(ID3LIB_DEBUG_FLAGS) 
 
dnl Checks for programs 
AC_PROG_CC 
AC_PROG_CXX 
AC_PROG_CXXCPP 
AC_PROG_INSTALL 
 
dnl for executable extensions 
AC_EXEEXT 
 
dnl Checks for libraries. 
AC_CHECK_LIB(z,uncompress,AC_DEFINE_UNQUOTED(HAVE_ZLIB))#,, 
#  AC_MSG_ERROR([id3lib requires zlib to process compressed frames])) 
 
AM_CONDITIONAL(ID3_NEEDZLIB, test x$ac_cv_lib_z_uncompress = xno) 
AM_CONDITIONAL(ID3_NEEDDEBUG, test x$enable_debug = xyes) 
 
dnl Checks for header files. 
AC_HEADER_STDC 
AC_CHECK_HEADERS(zlib.h wchar.h sys/param.h unistd.h ) 
 
dnl check wheter iconv is the part of libc. 
AC_CHECK_HEADERS( iconv.h, has_iconv=1,  has_iconv=0) 
 
dnl if we have iconv library, we have to decide if it  
dnl is present in libc 
 
ICONV_LIB= 
if test $has_iconv = 1; then 
  AC_MSG_CHECKING(where to find iconv_open) 
  exec 6>/dev/null 
  AC_CHECK_FUNCS(iconv_open, iconv_in_libc=1, iconv_in_libc=0) 
  AC_CHECK_LIB(iconv, iconv_open, iconv_in_iconv=1, iconv_in_iconv=0) 
  AC_CHECK_LIB(iconv, libiconv_open, libiconv_in_iconv=1, libiconv_in_iconv=0) 
  if test ! x$silent = xyes; then 
    exec 6>&1 
  fi 
  #standalone library rules over libc 
  if test $iconv_in_iconv = 1 -o $libiconv_in_iconv = 1; then 
    AC_MSG_RESULT(libiconv) 
    ICONV_LIB=-liconv 
  elif test $iconv_in_libc = 1; then 
    AC_MSG_RESULT(libc) 
  else 
    AC_MSG_RESULT(not found (panic)) 
    AC_MSG_ERROR([iconv.h found, while iconv library not found]) 
  fi 
  #we have iconv at this moment, better check which call to use 
  AC_MSG_CHECKING(whether iconv takes const char ** or char **) 
  AC_TRY_COMPILE([#include ],[ 
		{ 
		size_t iconv (iconv_t a, const char ** b, size_t *c, char **d, size_t *e); 
		}], 
		iconv_oldstyle=1, iconv_oldstyle=0) 
  if test $iconv_oldstyle = 1; then 
    AC_MSG_RESULT(const char **) 
    AC_DEFINE(ID3LIB_ICONV_OLDSTYLE) 
    #we'll check out the need of 
    #typecast in the call of iconv_open 
    AC_MSG_CHECKING(whether to typecast in iconv) 
    AC_TRY_COMPILE([#include ],[ 
                   { 
                      const char *src = "nothing"; 
                      char *outbuf; 
                      size_t insize = 0; 
                      size_t outsize = 0; 
                      iconv_t cd; 
                      iconv(cd, &src, &insize, &outbuf, &outsize); 
                   }], 
                   iconv_cast=0, iconv_cast=1) 
    if test $iconv_cast = 1; then 
      AC_MSG_RESULT(yes) 
      AC_DEFINE(ID3LIB_ICONV_CAST_OK) 
    else 
      AC_MSG_RESULT(no) 
    fi 
 
  else 
    AC_MSG_RESULT(char **) 
    #we'll check out the need of 
    #typecast in the call of iconv_open 
    AC_MSG_CHECKING(whether to typecast in iconv) 
    AC_TRY_COMPILE([#include ],[ 
                   { 
                      char *src = "nothing"; 
                      char *outbuf; 
                      size_t insize = 0; 
                      size_t outsize = 0; 
                      iconv_t cd; 
                      iconv(cd, &src, &insize, &outbuf, &outsize); 
                   }], 
                   iconv_cast=0, iconv_cast=1) 
    if test $iconv_cast = 1; then 
      AC_MSG_RESULT(yes) 
      AC_DEFINE(ID3LIB_ICONV_CAST_OK) 
    else 
      AC_MSG_RESULT(no) 
    fi 
  fi 
 
fi 
if test "x$ICONV_LIB" != "x"; then 
  LIBS="$LIBS $ICONV_LIB" 
fi 
 
dnl Check for c++ features 
AC_LANG_SAVE 
AC_LANG_CPLUSPLUS 
AC_CHECK_HEADERS(libcw/sys.h) 
AC_CHECK_HEADERS(cctype climits cstdio cstdlib bitset cstring) 
AC_CHECK_HEADERS(fstream iostream iomanip vector \ 
	,,AC_MSG_ERROR([Missing a vital header file for id3lib - download them here: http://gcc.gnu.org/libstdc++/ or better - compile a newer compiler like gcc3.x]) 
) 
AC_CHECK_HEADERS(               \ 
  string                        \ 
  iomanip.h                     \ 
  ,,AC_MSG_ERROR([Missing a vital header file for id3lib]) 
) 
 
dnl Checks for the portability of certain c++ features: the bool type and 
dnl for-loop scoping 
ID3_CXX_PORTABILITY 
 
ID3_CXX_WARNINGS 
 
AC_LANG_RESTORE 
 
ID3_DEBUG 
ID3_UNICODE 
 
dnl Check for functions. 
 
# AC_FUNC_MEMCMP 
AC_CHECK_FUNCS(getopt_long) 
AM_CONDITIONAL(ID3_NEEDGETOPT_LONG, test x$ac_cv_func_getopt_long = xno) 
 
AC_CHECK_FUNCS(mkstemp) 
AC_CHECK_FUNCS( 
  truncate                      \ 
  ,,AC_MSG_ERROR([Missing a vital function for id3lib]) 
) 
 
dnl Checks for typedefs, structures, and compiler characteristics. 
AC_TYPE_SIZE_T 
 
dnl 
dnl Checks with local macros 
dnl 
 
dnl Provides a --honor-std option to the configure script that honors the 
dnl std namespace.  Must be used AFTER configuring ALL compilers. 
dnl LF_HONOR_STD 
 
dnl ACCONFIG TEMPLATE 
dnl  
dnl /* config.h defines these preprocesser symbols to be used by id3lib for 
dnl  * determining internal versioning information.  The intent is that these 
dnl  * macros will be made available in the library via constants, functions, 
dnl  * or static methods. 
dnl  */ 
dnl #undef HAVE_ZLIB 
dnl #undef HAVE_GETOPT_LONG 
dnl #undef _ID3LIB_NAME 
dnl #undef _ID3LIB_VERSION 
dnl #undef _ID3LIB_FULLNAME 
dnl #undef _ID3LIB_MAJOR_VERSION 
dnl #undef _ID3LIB_MINOR_VERSION 
dnl #undef _ID3LIB_PATCH_VERSION 
dnl #undef _ID3LIB_INTERFACE_AGE 
dnl #undef _ID3LIB_BINARY_AGE 
dnl #undef _ID3_COMPILED_WITH_DEBUGGING 
dnl /* */ 
dnl END ACCONFIG 
 
AC_DEFINE_UNQUOTED(_ID3LIB_NAME,                 "$ID3LIB_NAME") 
AC_DEFINE_UNQUOTED(_ID3LIB_VERSION,              "$ID3LIB_VERSION") 
AC_DEFINE_UNQUOTED(_ID3LIB_FULLNAME,             "$ID3LIB_FULLNAME") 
AC_DEFINE_UNQUOTED(_ID3LIB_MAJOR_VERSION,         $ID3LIB_MAJOR_VERSION) 
AC_DEFINE_UNQUOTED(_ID3LIB_MINOR_VERSION,         $ID3LIB_MINOR_VERSION) 
AC_DEFINE_UNQUOTED(_ID3LIB_PATCH_VERSION,         $ID3LIB_PATCH_VERSION) 
AC_DEFINE_UNQUOTED(_ID3LIB_INTERFACE_AGE,         $ID3LIB_INTERFACE_AGE) 
AC_DEFINE_UNQUOTED(_ID3LIB_BINARY_AGE,            $ID3LIB_BINARY_AGE) 
AC_DEFINE_UNQUOTED(_ID3_COMPILED_WITH_DEBUGGING, "${enable_debug}") 
 
CONDITIONAL_SUBDIRS= 
if test "x$ac_cv_lib_z_uncompress" = "xno"; then 
  CONDITIONAL_SUBDIRS="$CONDITIONAL_SUBDIRS zlib" 
fi 
AC_CONFIG_SUBDIRS(zlib) 
 
CFLAGS="$CFLAGS -Wall" 
 
AC_OUTPUT(                      \ 
  Makefile                      \ 
  doc/Makefile                  \ 
  m4/Makefile                   \ 
  include/Makefile              \ 
  include/id3/Makefile          \ 
  id3com/Makefile               \ 
  id3com/Sample/Makefile        \ 
  src/Makefile                  \ 
  examples/Makefile             \ 
  prj/Makefile			\ 
  libprj/Makefile 
)