AC_INIT(HDocDefs.hs) AC_ARG_WITH(ghc, [ --with-ghc=GHC where to find ghc], [GHC=$withval]) AC_ARG_WITH(ghcflags, [ --with-ghcflags=FLAGS flags for ghc], [GHC_FLAGS_USER=$withval]) AC_ARG_WITH(nhc98, [ --with-nhc98=NHC98 where to find nhc98], [NHC98=$withval]) AC_ARG_WITH(nhc98flags, [ --with-nhc98flags=FLAGS flags for nhc98], [NHC98_FLAGS_USER=$withval]) AC_ARG_WITH(hmake, [ --with-hmake=HMAKE where to find hmake], [HMAKE=$withval]) AC_ARG_WITH(compiler, [ --with-compiler=ghc|nhc98 use ghc or nhc98 to build HDoc], [BUILDWITH=$withval]) AC_ARG_WITH(happy, [ --with-happy=HAPPY where to find happy], [HAPPY=$withval]) AC_ARG_WITH(alex, [ --with-alex=ALEX where to find alex], [ALEX=$withval]) AC_PATH_PROG(TEST, test) AC_PATH_PROG(BASENAME, basename) AC_PATH_PROG(UNAME, uname) if $TEST "$UNAME"; then case "`uname -s`" in CYGWIN*) EXE=.exe ;; *) EXE= ;; esac else EXE= fi AC_PATH_PROG(GHC, ghc) AC_PATH_PROG(NHC98, nhc98) AC_PATH_PROG(HMAKE, hmake) GHC_FLAGS="" NHC_FLAGS="" if $TEST "$GHC"; then AC_MSG_CHECKING([for ghc version]) changequote(<<, >>) ghc_version=`$GHC --version 2>&1 | sed -n -e 's/.* version \([0-9.][0-9.]*\).*/\1/p'` ghc_major=`echo "$ghc_version" | sed -n -e 's/\([0-9][0-9]*\).*/\1/p'` ghc_minor=`echo "$ghc_version" | sed -n -e 's/[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/p'` changequote([, ]) AC_MSG_RESULT([$ghc_version (major=$ghc_major, minor=$ghc_minor)]) if $TEST "$ghc_major" -eq 4 -a "$ghc_minor" -ge 6; then if $TEST "$ghc_minor" -lt 9; then GHC_FLAGS="-K8m -H96m" GHCTYPE=ghc4 else dnl don't know if it works for ghc 4.09 or 4.11, but I guess dnl nobody is using them anymore. GHC_FLAGS="-H112m" GHCTYPE=ghc4 fi elif $TEST "$ghc_major" -eq 5 -a "$ghc_minor" -lt 2; then GHC_FLAGS="-H128m" GHCTYPE=ghc5 elif $TEST "$ghc_major" -ge 5; then GHC_FLAGS="" GHCTYPE=ghc5 else AC_MSG_WARN([ ** Sorry, your GHC is too old. GHC >= 4.06 required. ]) GHC="" GHCTYPE="" fi fi if $TEST "$NHC98"; then AC_MSG_CHECKING([for nhc98 version]) changequote(<<, >>) nhc_version=`$NHC98 --version 2>&1 | sed -n -e 's/.* v\([0-9.][0-9.]*\).*/\1/p'` nhc_major=`echo "$nhc_version" | sed -n -e 's/\([0-9][0-9]*\).*/\1/p'` nhc_minor=`echo "$nhc_version" | sed -n -e 's/[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/p'` changequote([, ]) AC_MSG_RESULT([$nhc_version (major=$nhc_major, minor=$nhc_minor)]) if $TEST "$nhc_major" -lt 1 -o \( "$nhc_major" -eq 1 -a "$nhc_minor" -lt 6 \); then AC_MSG_WARN([ ** Sorry, your nhc98 is too old. nhc98 >= 1.06 required. ]) NHC98="" fi NHC98_RTS_FLAGS="-K4m -H32m" NHC98_CTS_FLAGS="-H16m" fi AC_MSG_CHECKING([which compiler to use]) if $TEST "$GHCTYPE" != "ghc5" -a ! \( "$HMAKE" -a "$GHCTYPE" = "ghc4" \) -a ! \( "$HMAKE" -a "$NHC98" \); then AC_MSG_ERROR([ ** Could not find a supported Haskell compiler/hmake combination: You need nhc98 >= 1.06 + hmake or ghc >= 4.06 + hmake or ghc >= 5.00 To run HDoc with Hugs98 use ./hdoc-hugs.sh. ]) fi if $TEST "$GHCTYPE" = "ghc5" -a \( "$BUILDWITH" = "ghc" -o -z "$BUILDWITH" \); then BUILD=ghc5 AC_MSG_RESULT(ghc) elif $TEST "$GHCTYPE" = "ghc4" -a "$HMAKE" -a \( "$BUILDWITH" = "ghc" -o -z "$BUILDWITH" \); then BUILD=hmake-ghc AC_MSG_RESULT(ghc + hmake) elif $TEST "$NHC98" -a "$HMAKE" -a \( "$BUILDWITH" = "nhc98" -o -z "$BUILDWITH" \); then BUILD=hmake-nhc98 AC_MSG_RESULT(nhc98 + hmake) else AC_MSG_ERROR([ ** Cannot build HDoc with requested compiler $BUILDWITH ]) fi AC_PATH_PROG(HAPPY, happy) AC_PATH_PROG(ALEX, alex) AC_PROG_AWK AC_PROG_INSTALL AC_PATH_PROG(FALSE, false) AC_PATH_PROG(LN, ln) AC_PATH_PROG(SH, sh) AC_PATH_PROG(RM, rm) AC_PATH_PROG(STRIP, strip) AC_SUBST(BUILD) AC_SUBST(GHC) AC_SUBST(NHC98) AC_SUBST(GHC_FLAGS_USER) AC_SUBST(NHC98_FLAGS_USER) AC_SUBST(GHC_FLAGS) AC_SUBST(NHC98_RTS_FLAGS) AC_SUBST(NHC98_CTS_FLAGS) AC_SUBST(HMAKE) AC_SUBST(HAPPY) AC_SUBST(ALEX) AC_SUBST(EXE) AC_SUBST(prefix) AC_SUBST(exec_prefix) AC_SUBST(bindir) AC_OUTPUT(Makefile makePrelLibs.sh)