head	1.1;
access;
symbols
	v201106151055:1.1
	v201106081058:1.1
	v201106081026:1.1
	v201106061419:1.1
	v201106031449:1.1
	v201106030827:1.1
	v201105271433:1.1
	v201105270806:1.1
	v201105201622:1.1
	v201105201323:1.1
	v201105201112:1.1
	v201105200806:1.1
	v201105161139:1.1
	v201105160958:1.1
	v201105130806:1.1
	v201105060807:1.1
	v201105021546:1.1
	v201105021416:1.1
	v201105021319:1.1
	v201105021216:1.1
	v201104290807:1.1
	v201104220806:1.1
	v201104150807:1.1
	v201104081508:1.1
	v201104081403:1.1
	v201104081235:1.1
	v201104081037:1.1
	v201104080959:1.1
	v201104080805:1.1
	v201104010806:1.1
	v201103250805:1.1
	v201103180806:1.1
	v201103161115:1.1
	v201103161053:1.1
	v201103111317:1.1
	v201103111109:1.1
	v201103110807:1.1
	v201103040805:1.1
	v201102250806:1.1
	v201102180808:1.1
	v201102110811:1.1
	v201102040806:1.1
	v201101311025:1.1
	v201101280805:1.1
	v201101210805:1.1
	v201101140804:1.1
	v201101070803:1.1
	v201012310805:1.1
	v201012240806:1.1
	v201012170808:1.1
	v201012131338:1.1
	v201012100812:1.1
	v201012031515:1.1
	v201012030812:1.1
	v201011260809:1.1
	v201011190807:1.1
	v201011120810:1.1
	v201011050851:1.1
	v201011050806:1.1
	v201010290810:1.1
	v201010220808:1.1
	v201010211610:1.1
	v201010150810:1.1
	v201010141600:1.1
	v201010080805:1.1
	v201009242334:1.1
	v201009170810:1.1
	v201009100812:1.1
	v201009030811:1.1
	v201008270810:1.1
	v201008200805:1.1
	v201008130809:1.1
	v201008060807:1.1
	v201008041021:1.1
	v201007121006:1.1;
locks; strict;
comment	@# @;


1.1
date	2010.06.30.20.07.55;	author eswartz;	state Exp;
branches;
next	;
commitid	273a54c2ba4104567;


desc
@@


1.1
log
@Bug 318519: refactor, cleanup, and fix bugs in Windows debug agent
@
text
@#!/bin/bash

# This script invokes Microsoft Visual Studio C compiler from CygWin shell.
# The script command line parameters format is similar to GCC command line.
# Command line options:
#  -c   compile only
#  -g   generate debug info
#  -O   enable optimizations
#  -o<file>  output file name
#  -D<name>  macro definition
#  -I<dir>   include directory
#  -p<file>  PDB file name

VSHOME="/cygdrive/c/Program Files/Microsoft Visual Studio 9.0"
WINSDK="/cygdrive/c/Program Files/Microsoft SDKs/Windows/v6.1"

if [ ! -d "$VSHOME" ]
then
    echo Invalid VSHOME - Microsoft Visual Studio directory name
    exit 1
fi

if [ ! -d "$WINSDK" ]
then
    WINSDK="/cygdrive/c/Program Files/Microsoft SDKs/Windows/v6.0A"
    if [ ! -d "$WINSDK" ]
    then
        echo Invalid WINSDK - Microsoft SDK directory name
        exit 1
    fi
fi

declare -a cmd
cmdpos=0

cflag=0
gflag=0
Oflag=0
oval=

while getopts co:D:I:gOp: name
do
    case $name in
    c)
        cmd[cmdpos]="/c"
        cmdpos=`expr $cmdpos + 1`
        cmd[cmdpos]="/TC"
        cmdpos=`expr $cmdpos + 1`
        cflag=1
        ;;
	g)
		gflag=1
		;;
	O)
		Oflag=1
		;;
    o)
        oval="$OPTARG"
        ;;
    D)
        cmd[cmdpos]="/D$OPTARG"
        cmdpos=`expr $cmdpos + 1`
        ;;
    I)
        cmd[cmdpos]="/I`cygpath -w "$OPTARG"`"
        cmdpos=`expr $cmdpos + 1`
        ;;
	p)
        cmd[cmdpos]="/Fd`cygpath -w "$OPTARG"`"
        cmdpos=`expr $cmdpos + 1`
		;;
    *)
        echo Invalid option $name
        exit 2
        ;;
    esac
done

shift `expr $OPTIND - 1`

if [ ! -z "$oval" ]
then
    if [ $cflag = 0 ]
    then
        cmd[cmdpos]="/Fe$oval"
    else
        cmd[cmdpos]="/Fo$oval"
    fi
    cmdpos=`expr $cmdpos + 1`
fi

if [ $gflag = 1 ]
then
    CFLAGS1="/D_DEBUG /Zi /EHsc /MTd"
else
    CFLAGS1="/DNDEBUG /GF /Gy /FD /EHsc /MT"
fi
if [ $Oflag = 0 ]
then
    CFLAGS2="/Od /Oy-"
else
    CFLAGS2="/O2 /Ob1"
fi
CFLAGS3="/DWIN32 /D_CONSOLE /D_VC80_UPGRADE=0x0600 /D_MBCS /W4"

export VS80COMNTOOLS=$(cygpath -aw "$VSHOME/Common7/Tools")
export VSINSTALLDIR=$(cygpath -aw "$VSHOME")
export VCINSTALLDIR=$(cygpath -aw "$VSHOME/VC")
export LIB=$(cygpath -aw "$VSHOME/VC/lib")\;$(cygpath -aw "$WINSDK/Lib")
export INCLUDE=$(cygpath -aw "$VSHOME/VC/include")\;$(cygpath -aw "$WINSDK/Include")
export PATH="$VSHOME/Common7/IDE:$VSHOME/VC/bin:$VSHOME/Common7/Tools:$VSHOME/VC/VCPackages:$PATH"

cl.exe /nologo $CFLAGS1 $CFLAGS2 $CFLAGS3 "${cmd[@@]}" "$@@" || exit 1
@
