hdf5/windows/hdf5bt.BAT
Scott Wegner 31a2af29ca [svn-r13977] Purpose: Misc. Windows autotest code-cleanup
Description:
This cleans up a lot of different things we were doing in the Windows batch scripts.  For one, we now use "exit /b" to better emulate functions in batch scripts.  Also changed error-checking to look for negative return values as well.

This also adds initial support for Visual Studio 2005 command-line builds in hdf5build.BAT

Tested:
WinXP
2007-07-13 15:54:54 -05:00

143 lines
4.0 KiB
Batchfile
Executable File

@rem Copyright by The HDF Group.
@rem Copyright by the Board of Trustees of the University of Illinois.
@rem All rights reserved.
@rem
@rem This file is part of HDF5. The full HDF5 copyright notice, including
@rem terms governing use, modification, and redistribution, is contained in
@rem the files COPYING and Copyright.html. COPYING can be found at the root
@rem of the source code distribution tree; Copyright.html can be found at the
@rem root level of an installed copy of the electronic HDF5 document set and
@rem is linked from the top-level documents page. It can also be found at
@rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
@rem access to either file, you may request a copy from help@hdfgroup.org.
@echo OFF
:: File Name: hdf5bt.bat
:: This batch file is used to build and test HDF5 Libraries and Tools.
:: There are currently only 2 options for this batch file:
:: hdf5bt /? -- Print a usage message and quit.
:: hdf5bt -- Build and test HDF5 tools and C/C++ libraries
:: By Xuan Bai
:: Created: Aug. 16, 2004
:: Last Updated: July 6, 2007
:: This batch file makes the following assumptions:
:: - Visual Studio .NET is installed, and VS71COMNTOOLS variable is set
:: - The directory structure is setup from a fresh source copy
:: - copy_hdf.bat has already been run from the ./windows directory
:: - Visual Studio already contains the required paths for external libraries
:: - szip and zlib DLLs are already placed in an accessible directory
:: - If HDF5_EXT_SZIP or HDF5_EXT_ZLIB are not set, then %SZIP_NAME% and %ZLIB_NAME%
:: will be used, respectively (defined in hdfbuild.BAT)
:: By default, only C and C++ libraries are built and tested.
if "x%1"=="x" goto main
goto help
:: Print a help message
:help
echo.Builds and tests HDF5 Libraries and Tools.
echo.
echo %~nx0 [OPTION]
echo.
echo.Please use one of the following options!
echo.
echo. %~nx0 Build and tests HDF5 C/C++ Library and Tools
echo. %~nx0 /? Help information
exit /b
:: This is where the magic happens
:main
call :setup
echo.Build and testing all HDF5 libraries and tools
echo.
echo.***************************************************************************** >> %bt_results%
echo. Build and Test HDF5 Library and Tools >> %bt_results%
echo.***************************************************************************** >> %bt_results%
echo. >> %bt_results%
call :build
if %errorlevel% neq 0 (
echo.Error building HDF5 libraries!
goto error
)
call :test
if %errorlevel% neq 0 (
echo.Error testing HDF5 libraries!
goto error
)
echo. All HDF5 libraries and tools build and tested successfully!
echo. All HDF5 libraries and tools build and tested successfully! >> %build_results%
call :cleanup
exit /b 0
:: Setup our environment
:setup
:: Put us in the directory of the batch file.
pushd %~dp0
:: Constants
if "x%bt_results%"=="x" set bt_results="%CD%\bt_results.txt"
if "x%build_results%"=="x" set build_results="%CD%\build_results.txt"
:: Create our results file
type nul > %bt_results%
exit /b 0
:: Build HDF5 libraries and tools
:build
call hdf5build.BAT
type %build_results% >> %bt_results%
exit /b
:: Test our libraries and tools
:test
call hdf5check enablecpp
type check_results.txt >> %bt_results%
exit /b
:: Handle errors
:error
:: For now, our error handling just consists of calling cleanup, and exiting
echo.hdf5bt failed.
echo.hdf5bt failed. >> %bt_results%
call :cleanup
exit /b
:: Cleanup our environment
:cleanup
set build_results=
:: Don't unset bt_results if it is being used by autotest_hdf5.bat
if "x%hdf5_auto_results%"=="x" set bt_results=
popd
exit /b 0