X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=configure.ac;h=26cd8903cb0a863d844b62d3ae03cb8b4ec195d8;hb=bedd73e0bbc92dc1855dce6698473eda3d06adac;hp=cd153c3bc09c55a25357752ea4b9cf0104e80a80;hpb=185bcffd05a9a289fe8cb6240de3255ffe534b5d;p=ghc-base.git diff --git a/configure.ac b/configure.ac index cd153c3..26cd890 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl ** check for full ANSI header (.h) files AC_HEADER_STDC # check for specific header (.h) files that we are interested in -AC_CHECK_HEADERS([ctype.h dirent.h errno.h fcntl.h inttypes.h limits.h signal.h sys/resource.h sys/select.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/utsname.h sys/wait.h termios.h time.h unistd.h utime.h windows.h winsock.h langinfo.h]) +AC_CHECK_HEADERS([ctype.h errno.h fcntl.h inttypes.h limits.h signal.h sys/resource.h sys/select.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/utsname.h sys/wait.h termios.h time.h unistd.h utime.h windows.h winsock.h langinfo.h]) # Enable large file support. Do this before testing the types ino_t, off_t, and # rlim_t, because it will affect the result of that test. @@ -28,10 +28,29 @@ dnl FreeBSD has an emtpy wctype.h, so test one of the affected dnl functions if it's really there. AC_CHECK_HEADERS([wctype.h], [AC_CHECK_FUNCS(iswspace)]) -AC_CHECK_FUNCS([lstat readdir_r]) +AC_CHECK_FUNCS([lstat]) AC_CHECK_FUNCS([getclock getrusage times]) AC_CHECK_FUNCS([_chsize ftruncate]) +dnl-------------------------------------------------------------------- +dnl * Deal with arguments telling us iconv is somewhere odd +dnl-------------------------------------------------------------------- + +AC_ARG_WITH([iconv-includes], + [AC_HELP_STRING([--with-iconv-includes], + [directory containing iconv.h])], + [ICONV_INCLUDE_DIRS=$withval; CPPFLAGS="-I$withval"], + [ICONV_INCLUDE_DIRS=]) + +AC_ARG_WITH([iconv-libraries], + [AC_HELP_STRING([--with-iconv-libraries], + [directory containing iconv library])], + [ICONV_LIB_DIRS=$withval; LDFLAGS="-L$withval"], + [ICONV_LIB_DIRS=]) + +AC_SUBST(ICONV_INCLUDE_DIRS) +AC_SUBST(ICONV_LIB_DIRS) + # map standard C types and ISO types to Haskell types FPTOOLS_CHECK_HTYPE(char) FPTOOLS_CHECK_HTYPE(signed char) @@ -96,11 +115,26 @@ FP_CHECK_CONSTS([SIGINT], [ dnl ** can we open files in binary mode? FP_CHECK_CONST([O_BINARY], [#include ], [0]) -# Check for idiosyncracies in some mingw impls of directory handling. -FP_READDIR_EOF_ERRNO - -AC_CHECK_LIB(iconv, iconv_open, - [EXTRA_LIBS="$EXTRA_LIBS iconv"]) +# We can't just use AC_SEARCH_LIBS for this, as on OpenBSD the iconv.h +# header needs to be included as iconv_open is #define'd to something +# else. We therefore use our own FP_SEARCH_LIBS_PROTO, which allows us +# to give prototype text. +FP_SEARCH_LIBS_PROTO(iconv, + [ +#include +#include + ], + [iconv_t cd; + cd = iconv_open("", ""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + iconv, + [EXTRA_LIBS="$EXTRA_LIBS $ac_lib"], + [case `uname -s` in + MINGW*|CYGWIN*) ;; + *) + AC_MSG_ERROR([iconv is required on non-Windows platforms]);; + esac]) AC_SUBST(EXTRA_LIBS) AC_CONFIG_FILES([base.buildinfo])