@echo off

REM   Licensed to the Apache Software Foundation (ASF) under one
REM   or more contributor license agreements.  See the NOTICE file
REM   distributed with this work for additional information
REM   regarding copyright ownership.  The ASF licenses this file
REM   to you under the Apache License, Version 2.0 (the
REM   "License"); you may not use this file except in compliance
REM   with the License.  You may obtain a copy of the License at
REM
REM    http://www.apache.org/licenses/LICENSE-2.0
REM
REM   Unless required by applicable law or agreed to in writing,
REM   software distributed under the License is distributed on an
REM   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
REM   KIND, either express or implied.  See the License for the
REM   specific language governing permissions and limitations
REM   under the License.

if "%UIMACPP_HOME%" == "" goto TafRootNotSet
if not exist "%UIMACPP_HOME%"\include\uima\cas.hpp goto UimaRootBad

set SWIG_PATH=\swigwin-1.3.29
if not exist %SWIG_PATH% goto SwigPathNotSet

set PYTHON_INCLUDE=\Python24\include
set PYTHON_LIB=\Python24\lib
set PYTHON_LIBDIR=\Python24\libs
if not exist %PYTHON_LIB% goto PythonNotSet

REM build Pythonnator
devenv pythonnator.vcproj /build release 
goto TheEnd

:UimaRootBad
echo UIMACPP_HOME is invalid
goto TheEnd

:SwigPathNotSet
echo SWIG_PATH is invalid
goto TheEnd

:PythonNotSet
echo Python environment is invalid


:TheEnd
