Move MinGW mixed path conversion code to the pathconvert tool

In preparation for adding MinGW support to patch #438.
This commit is contained in:
William S Fulton 2015-08-01 23:08:53 +01:00
commit 026d879058
2 changed files with 18 additions and 11 deletions

View file

@ -1,25 +1,32 @@
#!/bin/sh
# Unix to Windows relative path conversion in a script.
# Unix to Windows path conversion in a script.
# Useful for avoiding backslash quoting difficulties in Makefiles.
# Acts as a much dumbed down 'cygpath -w' tool.
# Acts as a much dumbed down cygpath tool mainly for use on MinGW.
usage()
{
cat <<EOF
Usage: $0 [-w|-u|-h] [path]...
Usage: $0 [-m|-u|-w|-h] [path]...
Convert Windows and Unix paths (intended for simple relative paths only)
Convert Windows and Unix paths
-w Convert backslashes to forward slashes in the paths
-u Convert forward slashes to backslashes in the paths
-m Convert Unix path to mixed path (full paths, MinGW MSYS only)
-u Convert forward slashes to backslashes in the paths (relative paths only)
-w Convert backslashes to forward slashes in the paths (relative paths only)
EOF
}
option="$1"
case "$option" in
-w) shift; echo $@ | sed -e 's,/,\\,g' ;;
-m) shift
case $MACHTYPE in
# This echo converts unix to mixed paths. Then zap unexpected trailing space on old versions of MinGW.
*-msys) echo `cmd //c echo "$@" | sed -e "s/[ ]*$//"`;;
*) echo "The -m option is only supported on MinGW MSYS" 1>&2; exit 1 ;;
esac ;;
-u) shift; echo $@ | sed -e 's,\\,/,g' ;;
-w) shift; echo $@ | sed -e 's,/,\\,g' ;;
-h) shift; usage; ;;
*) usage; exit 1 ;;
esac

View file

@ -2821,10 +2821,10 @@ AC_SUBST(swig_lib)
AC_DEFINE_DIR(SWIG_LIB, swig_lib, [Directory for SWIG system-independent libraries])
case $build in
# Windows does not understand unix directories. Convert into a windows directory with drive letter.
*-*-mingw*) SWIG_LIB_WIN_UNIX=`cmd //c echo $SWIG_LIB | sed -e "s/[ ]*$//"`;; # This echo converts unix to mixed paths. Then zap unexpected trailing space.
*-*-cygwin*) SWIG_LIB_WIN_UNIX=`cygpath --mixed "$SWIG_LIB"`;;
*) SWIG_LIB_WIN_UNIX="";;
# Windows does not understand unix directories. Convert into a windows directory with drive letter.
*-*-mingw*) SWIG_LIB_WIN_UNIX=`${srcdir}/Tools/convertpath -m $SWIG_LIB`;;
*-*-cygwin*) SWIG_LIB_WIN_UNIX=`cygpath --mixed "$SWIG_LIB"`;;
*) SWIG_LIB_WIN_UNIX="";;
esac
AC_DEFINE_UNQUOTED(SWIG_LIB_WIN_UNIX, ["$SWIG_LIB_WIN_UNIX"], [Directory for SWIG system-independent libraries (Unix install on native Windows)])