This e-mail contains:

- a patch to make/GNUmakefile.in
- a new file make/cygpath.sh
- a patch to make/GNUstep.sh.in

The patch to make/GNUmakefile.in installs a new mini-utility
called "cygpath.sh", used for MinGW32 targets.

cygpath.sh emulates the cygpath utility provided with CygWin
on Windows, and is included here in case the cygpath
functionality is removed from a future version of CygWin.

cygpath (whether provided by CygWin or cygpath.sh) converts
to and from unix paths and the funny mounting system used by
cygwin to get around Windows drive letters. This proves to
be a pain when compiling GNUstep and I have found the best
way to compile things is to specify absolute paths with
drive letters, since they are unambiguous. Unfortunately the
PATH environment variable gets confused if you use "C:/foo"
paths since the ":" is the path separator as well. So
cygpath is used to mangle the absolute paths to put into
$PATH.

The patch to make/GNUstep.sh.in uses cygpath or the cygpath
utility to mangle the absolute Windows paths into the PATH
environment variable, and also uses a Windows-aware method
of getting a user's home directory: instead of "~" it uses
$HOMEDRIVE/$HOMEPATH

Stephen Brandon
[EMAIL PROTECTED]
Index: make/GNUmakefile.in
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/GNUmakefile.in,v
retrieving revision 1.52
diff -r1.52 GNUmakefile.in
123c123
<               GNUstep.csh ld_lib_path.csh ; do \
---
>               GNUstep.csh ld_lib_path.csh cygpath.sh ; do \
#! /bin/sh
#
#   cygpath.sh
#
#   Cygwin "cygpath" emulation script for use when cross-compiling
#       to a Windows target from a non-Cygwin environment.
#
#   Copyright (C) 2001 Free Software Foundation, Inc.
#
#   Author:  Stephen Brandon <[EMAIL PROTECTED]>
#
#   This file is part of the GNUstep Makefile Package.
#
#   This library is free software; you can redistribute it and/or
#   modify it under the terms of the GNU General Public License
#   as published by the Free Software Foundation; either version 2
#   of the License, or (at your option) any later version.
#   
#   You should have received a copy of the GNU General Public
#   License along with this library; see the file COPYING.LIB.
#   If not, write to the Free Software Foundation,
#   59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#

if [ ! $# -eq 2 ]; then
  quit="yes"
fi

test "$1" = '-u' || test "$1" = '-w' || quit="yes"


if [ "$quit" = "yes" ]; then
  echo "Usage: $0 (-u)|(-w) filename"
  echo "Options:"
  echo "   -u print Unix form of filename"
  echo "   -w print Windows form of filename"
  exit 1
fi

operation=$1
file=$2

# convert to Unix style file name
if [ "$operation" = "-u" ]; then
  file=`echo "$file" | tr '\\\' '/'`
  echo $file | sed 's/^\([a-zA-Z]\):\(.*\)$/\/cygdrive\/\1\2/'
  exit 0
fi

# convert to Windows style file name
file=`echo $file | sed 's/^\(\/cygdrive\)\?\/\([a-zA-Z]\)\(\/.*\)$/\2:\3/'`
file=`echo "$file" | tr '/' '\\\'`
echo $file


Index: make/GNUstep.sh.in
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/GNUstep.sh.in,v
retrieving revision 1.50
diff -r1.50 GNUstep.sh.in
34a35,37
> GNUSTEP_MAKEFILES=$GNUSTEP_SYSTEM_ROOT/Makefiles
> export GNUSTEP_MAKEFILES
> 
37c40,70
< GNUSTEP_USER_ROOT=~/GNUstep
---
> 
> if [ ! -z "$WINDIR" ]; then
>   GNUSTEP_USER_ROOT=`echo $HOMEDRIVE/$HOMEPATH/GNUstep | tr '\\\' '/'`
> else
>   GNUSTEP_USER_ROOT=~/GNUstep
> fi
> 
> ac_save_ifs="$IFS"; IFS=":"
> 
> CYGPATH=
> ac_word=cygpath.exe
> ac_dummy="$PATH"
> for ac_dir in $ac_dummy; do
>   test -z "$ac_dir" && ac_dir=.
>   if test -f $ac_dir/$ac_word; then
>     CYGPATH=$ac_word
>     break
>   fi
> done
> 
> IFS="$ac_save_ifs"
> 
> if [ -z "$CYGPATH" ]; then
>   CYGPATH=$GNUSTEP_MAKEFILES/cygpath.sh
> fi
> 
> # test to see if GNUSTEP_ROOT is in Win32 standard form and flag it
> if [ -z "`echo $GNUSTEP_SYSTEM_ROOT | sed 's|^[a-zA-Z]:/.*$||'`" ]; then
>   CONVERT_WIN_PATHS=yes
> fi
> 
40,41d72
< GNUSTEP_MAKEFILES=$GNUSTEP_SYSTEM_ROOT/Makefiles
< export GNUSTEP_MAKEFILES
75c106,114
<   
GNUSTEP_PATHPREFIX_LIST=$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_NETWORK_ROOT:$GNUSTEP_SYSTEM_ROOT
---
>   if [ "$CONVERT_WIN_PATHS" = "yes" ]; then
>     G_U_R=`$CYGPATH -u "$GNUSTEP_USER_ROOT"`
>     G_L_R=`$CYGPATH -u "$GNUSTEP_LOCAL_ROOT"`
>     G_N_R=`$CYGPATH -u "$GNUSTEP_NETWORK_ROOT"`
>     G_S_R=`$CYGPATH -u "$GNUSTEP_SYSTEM_ROOT"`
>     GNUSTEP_PATHPREFIX_LIST=$G_U_R:$G_L_R:$G_N_R:$G_S_R
>   else
>     
>GNUSTEP_PATHPREFIX_LIST=$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_NETWORK_ROOT:$GNUSTEP_SYSTEM_ROOT
>   fi
77a117
> 
103c143,147
< 
gnustep_class_path="$GNUSTEP_USER_ROOT/Libraries/Java:$GNUSTEP_LOCAL_ROOT/Libraries/Java:$GNUSTEP_NETWORK_ROOT/Libraries/Java:$GNUSTEP_SYSTEM_ROOT/Libraries/Java"
---
> if [ "$CONVERT_WIN_PATHS" = "yes" ]; then
>   
>gnustep_class_path="$G_U_R/Libraries/Java:$G_L_R/Libraries/Java:$G_N_R/Libraries/Java:$G_S_R/Libraries/Java"
> else
>   
>gnustep_class_path="$GNUSTEP_USER_ROOT/Libraries/Java:$GNUSTEP_LOCAL_ROOT/Libraries/Java:$GNUSTEP_NETWORK_ROOT/Libraries/Java:$GNUSTEP_SYSTEM_ROOT/Libraries/Java"
> fi

Reply via email to