Mail Archives: cygwin/2002/11/01/19:39:19
On Fri, 1 Nov 2002, Mike Bresnahan wrote:
> For what its worth, this is the script I use:
>
> #! /bin/sh
> #
> # Wrapper script for the Microsoft Visual C++ compiler (cl) to allow it to
> work with Cygwin based makefiles.
>
> cmd="/c/Program\ Files/Microsoft\ Visual\ Studio/VC98/Bin/cl"
>
> for option
> do
> case $option in
> -I/*)
> path=`expr $option : '-I/\(.*\\)'`
> cmd="$cmd -IC:/cygwin/$path"
> ;;
> /*)
> path=`expr $option : '/\(.*\\)'`
> cmd="$cmd C:/cygwin/$path"
> ;;
> *)
> cmd="$cmd $option"
> ;;
> esac
> done
>
> echo $cmd
> eval $cmd
Mike,
You should be very careful of quoting here. Since you use eval, you
could insert extra quotes as part of the command - they won't hurt, and
will make it safer. Another note is that the user's installation may not
be in C:\cygwin. The following modification should fix both (and the
extraneous '\', to boot):
-I/*)
path="`expr "$option" : '-I/\(.*\)'`"
cmd="$cmd \"-I`cygpath -m /`/$path\""
;;
In fact, you could do even better, by passing the path to cygpath as well:
-I/*)
path="`expr "$option" : '-I/\(.*\)'`"
cmd="$cmd \"-I`cygpath -m /$path`\""
;;
I leave the the rest of the cases as an exercise for the reader. :-D
Oh, and the last line should be 'eval "$cmd"' (note the double quotes).
Igor
--
http://cs.nyu.edu/~pechtcha/
|\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu
ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"Water molecules expand as they grow warmer" (C) Popular Science, Oct'02, p.51
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -