Commit e8121501 authored by Ian Lynagh's avatar Ian Lynagh

Fix dblatex and xml* tool detection on Windows

We now normalise their paths, so that native Windows paths rather than
cygwin paths. This means that we are able to execute them from Cabal
or python.

I've also abstracted out the normalisation code into an m4 function.
parent 113ae477
......@@ -475,6 +475,21 @@ AC_DEFUN([FPTOOLS_SET_C_LD_FLAGS],
])
AC_DEFUN([FP_PATH_PROG],[
AC_PATH_PROG($1,$2,$3,$4,$5,$6)
# If we have a cygwin path for something, and we try to run it
# from cabal or python, then it'll fail. So we convert to a
# native path.
if test "$HostOS" = "mingw32" && \
test "${OSTYPE}" != "msys" && \
test "${$1}" != ""
then
# Canonicalise to <drive>:/path/to/gcc
$1=`cygpath -m "${$1}"`
fi
])
# FP_VISIBILITY_HIDDEN
# ----------------------------------
# Is the visibility hidden attribute supported?
......@@ -781,16 +796,7 @@ dnl at least Happy version 1.14. If there's no installed Happy, we look
dnl for a happy source tree and point the build system at that instead.
dnl
AC_DEFUN([FPTOOLS_HAPPY],
[AC_PATH_PROG(HappyCmd,happy,)
# Happy is passed to Cabal, so we need a native path
if test "$HostOS" = "mingw32" && \
test "${OSTYPE}" != "msys" && \
test "${HappyCmd}" != ""
then
# Canonicalise to <drive>:/path/to/gcc
HappyCmd=`cygpath -m "${HappyCmd}"`
AC_MSG_NOTICE([normalized happy command to $HappyCmd])
fi
[FP_PATH_PROG(HappyCmd,happy,)
AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
changequote(, )dnl
......@@ -817,15 +823,7 @@ dnl at least Alex version 2.0.1.
dnl
AC_DEFUN([FPTOOLS_ALEX],
[
AC_PATH_PROG(AlexCmd,alex,)
# Alex is passed to Cabal, so we need a native path
if test "$HostOS" = "mingw32" && \
test "${OSTYPE}" != "msys" && \
test "${AlexCmd}" != ""
then
# Canonicalise to <drive>:/path/to/gcc
AlexCmd=`cygpath -m "${AlexCmd}"`
fi
FP_PATH_PROG(AlexCmd,alex,)
AC_CACHE_CHECK([for version of alex], fptools_cv_alex_version,
changequote(, )dnl
......@@ -972,18 +970,10 @@ AC_SUBST([LdHasNoCompactUnwind])
# Sets fp_prog_ar_raw to the full path of ar and fp_prog_ar to a non-Cygwin
# version of it. Exits if no ar can be found
AC_DEFUN([FP_PROG_AR],
[AC_PATH_PROG([fp_prog_ar_raw], [ar])
if test -z "$fp_prog_ar_raw"; then
[FP_PATH_PROG([fp_prog_ar], [ar])
if test -z "$fp_prog_ar"; then
AC_MSG_ERROR([cannot find ar in your PATH, no idea how to make a library])
fi
fp_prog_ar="$fp_prog_ar_raw"
case $HostPlatform in
*mingw32) if test x${OSTYPE} != xmsys; then
fp_prog_ar="`cygpath -w "${fp_prog_ar_raw}" | sed -e 's@\\\\@/@g'`"
AC_MSG_NOTICE([normalized ar command to $fp_prog_ar])
fi
;;
esac
])# FP_PROG_AR
......@@ -1354,7 +1344,7 @@ EOF
# which we use for building PDF and PS docs.
# DblatexCmd is empty if dblatex could not be found.
AC_DEFUN([FP_PROG_DBLATEX],
[AC_PATH_PROG([DblatexCmd], [dblatex])
[FP_PATH_PROG([DblatexCmd], [dblatex])
if test -z "$DblatexCmd"; then
AC_MSG_WARN([cannot find dblatex in your PATH, you will not be able to build the PDF and PS documentation])
fi
......@@ -1366,7 +1356,7 @@ fi
# Sets the output variable XsltprocCmd to the full path of the XSLT processor
# xsltproc. XsltprocCmd is empty if xsltproc could not be found.
AC_DEFUN([FP_PROG_XSLTPROC],
[AC_PATH_PROG([XsltprocCmd], [xsltproc])
[FP_PATH_PROG([XsltprocCmd], [xsltproc])
if test -z "$XsltprocCmd"; then
AC_MSG_WARN([cannot find xsltproc in your PATH, you will not be able to build the HTML documentation])
fi
......@@ -1402,7 +1392,7 @@ AC_SUBST([HAVE_DOCBOOK_XSL])
# Sets the output variable XmllintCmd to the full path of the XSLT processor
# xmllint. XmllintCmd is empty if xmllint could not be found.
AC_DEFUN([FP_PROG_XMLLINT],
[AC_PATH_PROG([XmllintCmd], [xmllint])
[FP_PATH_PROG([XmllintCmd], [xmllint])
if test -z "$XmllintCmd"; then
AC_MSG_WARN([cannot find xmllint in your PATH, you will not be able to validate your documentation])
fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment