mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-18 15:15:56 +08:00
[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
This commit is contained in:
parent
2b89d6d73c
commit
31a2af29ca
@ -33,119 +33,110 @@
|
||||
|
||||
:: By default, only C and C++ libraries are built and tested.
|
||||
|
||||
if defined hdf5_debug echo ON
|
||||
|
||||
if "x%1"=="x" goto main
|
||||
goto help
|
||||
|
||||
:: Print a help message
|
||||
:help
|
||||
echo.Builds and tests HDF5 Libraries and Tools.
|
||||
echo.
|
||||
echo %0 [OPTION]
|
||||
echo.
|
||||
echo.Please use one of the following options!
|
||||
echo.
|
||||
echo. %0 Build and tests HDF5 C/C++ Library and Tools
|
||||
echo. %0 /? Help information
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
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
|
||||
call :setup
|
||||
|
||||
echo.Build and testing all HDF5 libraries and tools
|
||||
echo.
|
||||
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%
|
||||
echo.***************************************************************************** >> %bt_results%
|
||||
echo. Build and Test HDF5 Library and Tools >> %bt_results%
|
||||
echo.***************************************************************************** >> %bt_results%
|
||||
echo. >> %bt_results%
|
||||
|
||||
call :build
|
||||
if errorlevel 1 (
|
||||
echo.Error building HDF5 libraries!
|
||||
goto error
|
||||
)
|
||||
call :build
|
||||
if %errorlevel% neq 0 (
|
||||
echo.Error building HDF5 libraries!
|
||||
goto error
|
||||
)
|
||||
|
||||
call :test
|
||||
if errorlevel 1 (
|
||||
echo.Error testing 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%
|
||||
echo. All HDF5 libraries and tools build and tested successfully!
|
||||
echo. All HDF5 libraries and tools build and tested successfully! >> %build_results%
|
||||
|
||||
call :cleanup
|
||||
call :cleanup
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
exit /b 0
|
||||
|
||||
|
||||
:: Setup our environment
|
||||
:setup
|
||||
|
||||
:: Put us in the directory of the batch file.
|
||||
pushd %~dp0
|
||||
:: 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"
|
||||
:: 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%
|
||||
:: Create our results file
|
||||
type nul > %bt_results%
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
exit /b 0
|
||||
|
||||
|
||||
:: Build HDF5 libraries and tools
|
||||
:build
|
||||
|
||||
call hdf5build.BAT
|
||||
type %build_results% >> %bt_results%
|
||||
call hdf5build.BAT
|
||||
type %build_results% >> %bt_results%
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
exit /b
|
||||
|
||||
|
||||
:: Test our libraries and tools
|
||||
:test
|
||||
|
||||
call hdf5check enablecpp
|
||||
type check_results.txt >> %bt_results%
|
||||
call hdf5check enablecpp
|
||||
type check_results.txt >> %bt_results%
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
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
|
||||
set errorlevel=1
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
:: 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=
|
||||
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=
|
||||
:: Don't unset bt_results if it is being used by autotest_hdf5.bat
|
||||
if "x%hdf5_auto_results%"=="x" set bt_results=
|
||||
|
||||
popd
|
||||
popd
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
exit /b 0
|
||||
|
@ -20,10 +20,10 @@
|
||||
:: 1. hdf5build -- Build HDF5 tools and c library
|
||||
:: By Xuan Bai
|
||||
:: Created: Aug. 16, 2004
|
||||
:: Last Updated: July 7, 2007
|
||||
:: Last Updated: July 13, 2007
|
||||
|
||||
:: This batch file makes the following assumptions:
|
||||
:: - Visual Studio .NET is installed, and VS71COMNTOOLS variable is set
|
||||
:: - The appropriate version of Visual Studio is installed and setup
|
||||
:: - 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
|
||||
@ -33,152 +33,200 @@
|
||||
|
||||
:: By default, only C and C++ libraries are built.
|
||||
|
||||
if defined hdf5_debug echo ON
|
||||
|
||||
if "x%1"=="x" goto main
|
||||
goto help
|
||||
goto main
|
||||
|
||||
:: Print a help message
|
||||
:help
|
||||
echo.Builds HDF5 Libraries and Tools.
|
||||
echo.
|
||||
echo %0 [OPTION]
|
||||
echo.
|
||||
echo.Please use one of the following options!
|
||||
echo.
|
||||
echo. %0 Build HDF5 C Library and Tools
|
||||
echo. %0 /? Help information
|
||||
goto :eof
|
||||
|
||||
echo.Builds HDF5 Libraries and Tools.
|
||||
echo.
|
||||
echo %~nx0 [OPTION]
|
||||
echo.
|
||||
echo.Please use one of the following options!
|
||||
echo.
|
||||
echo. %~nx0 Build HDF5 C Library and Tools
|
||||
echo. %~nx0 /? Help information
|
||||
|
||||
exit /b 0
|
||||
|
||||
|
||||
:: Parse through the parameters sent to file, and set appropriate variables
|
||||
:parse_params
|
||||
|
||||
:: This is where the magic happens
|
||||
:main
|
||||
for %%a in (%*) do (
|
||||
if "%1"=="/vs8" (
|
||||
:: Use VS2005 as our compiler
|
||||
set hdf5_use_vs2005=true
|
||||
|
||||
) else if "%1"=="/fort" (
|
||||
:: Enable Fortran
|
||||
set hdf5_enablefortran=true
|
||||
|
||||
) else if "%1"=="/?" (
|
||||
:: Set errorlevel 1 and send to help
|
||||
call :help
|
||||
exit /b 1
|
||||
|
||||
) else (
|
||||
:: Set errorlevel 2 to send to help if we receive a bad parameter (or /?)
|
||||
call :help
|
||||
exit /b 2
|
||||
)
|
||||
)
|
||||
|
||||
exit /b 0
|
||||
|
||||
call :setup
|
||||
|
||||
echo.Building HDF5 Libraries and Tools
|
||||
echo.
|
||||
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. Build HDF5 Libraries and Tools >> %build_results%
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. >> %build_results%
|
||||
|
||||
|
||||
call :h5tinit
|
||||
if errorlevel 1 (
|
||||
echo. Error building h5tinit!
|
||||
echo. Error building h5tinit! >> %build_results%
|
||||
goto error
|
||||
)
|
||||
|
||||
call :all
|
||||
if errorlevel 1 (
|
||||
echo. Error building HDF5 libraries!
|
||||
echo. Error building HDF5 libraries! >> %build_results%
|
||||
|
||||
goto error
|
||||
)
|
||||
|
||||
echo. All HDF5 libraries and tools build successfully!
|
||||
echo. All HDF5 libraries and tools build successfully! >> %build_results%
|
||||
|
||||
call :cleanup
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
|
||||
:: Setup our environment
|
||||
:setup
|
||||
|
||||
echo. Setting up environment >> %build_results%
|
||||
echo. Setting up environment >> %build_results%
|
||||
|
||||
:: Put us in the directory of the batch file.
|
||||
pushd %~dp0
|
||||
:: Put us in the directory of the batch file.
|
||||
pushd %~dp0
|
||||
|
||||
:: Constants
|
||||
if "x%zlib_name%"=="x" set zlib_name=zdll.lib
|
||||
if "x%szip_name%"=="x" set szip_name=szlibdll.lib
|
||||
if "x%build_results%"=="x" set build_results="%CD%\build_results.txt"
|
||||
:: Constants
|
||||
if "x%build_results%"=="x" set build_results="%CD%\build_results.txt"
|
||||
type nul > %build_results%
|
||||
|
||||
if "x%zlib_name%"=="x" set zlib_name=zdll.lib
|
||||
if "x%szip_name%"=="x" set szip_name=szlibdll.lib
|
||||
|
||||
:: By default, use all.sln, unless hdf5_enablefortran is set
|
||||
if defined hdf5_enablefortran (
|
||||
echo.Building Fortran projects enabled
|
||||
echo.Building Fortran projects enabled >> %build_results%
|
||||
set hdf5_sln="%CD%\windows\proj\all_fortran\all_fortran.sln"
|
||||
) else set hdf5_sln="%CD%\windows\proj\all\all.sln"
|
||||
|
||||
:: Set external libraries if they aren't already set
|
||||
if x%hdf5_ext_zlib%==x set hdf5_ext_zlib=%zlib_name%
|
||||
if x%hdf5_ext_szip%==x set hdf5_ext_szip=%szip_name%
|
||||
|
||||
:: Create our results file
|
||||
type nul > %build_results%
|
||||
|
||||
:: Setup Visual Studio environment. By default, use the Visual Studio .NET environment
|
||||
if defined hdf5_use_vs2005 (
|
||||
echo.Using Visual Studio 2005
|
||||
echo.Using Visual Studio 2005 >> %build_results%
|
||||
call "%vs80comntools%\vsvars32.bat" >> %build_results%
|
||||
) else (
|
||||
echo.Using Visual Studio .NET 2003
|
||||
echo.Using Visual Studio .NET 2003 >> %build_results%
|
||||
call "%vs71comntools%\vsvars32.bat" >> %build_results%
|
||||
|
||||
:: If we are building Fortran libraries with .NET, we need to manually edit
|
||||
:: some project files
|
||||
if defined hdf5_enablefortran (
|
||||
echo.Building Fortran from commandline with .NET not yet implemented!
|
||||
echo.Building Fortran from commandline with .NET not yet implemented! >> %build_results%
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:: Set external libraries if they aren't already set
|
||||
if x%hdf5_ext_zlib%==x set hdf5_ext_zlib=%zlib_name%
|
||||
if x%hdf5_ext_szip%==x set hdf5_ext_szip=%szip_name%
|
||||
|
||||
:: By default, use the Visual Studio .NET environment
|
||||
call "%vs71comntools%\vsvars32.bat" >> %build_results%
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
exit /b 0
|
||||
|
||||
|
||||
:: Build H5tinit.exe and generate h4tinit.c
|
||||
:h5tinit
|
||||
|
||||
echo. Generating H5tint.c
|
||||
echo. Generating H5tint.c
|
||||
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. Build H5Tinit.exe >> %build_results%
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. >> %build_results%
|
||||
devenv .\windows\misc\typegen\typegen.sln /rebuild Debug >> %build_results% 2>&1
|
||||
if errorlevel 1 goto :eof
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. Build H5Tinit.exe >> %build_results%
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. >> %build_results%
|
||||
devenv .\windows\misc\typegen\typegen.sln /rebuild Debug >> %build_results% 2>&1
|
||||
if %errorlevel% neq 0 exit /b
|
||||
|
||||
:: Use output to generate h5tinit.c
|
||||
.\src\h5tinit.exe > .\src\h5tinit.c
|
||||
:: Use output to generate h5tinit.c
|
||||
.\src\h5tinit.exe > .\src\h5tinit.c
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
exit /b
|
||||
|
||||
|
||||
:: Build the HDF5 libraries. By default, C and C++ libraries are built.
|
||||
:all
|
||||
|
||||
echo. Building HDF5
|
||||
echo. Building HDF5
|
||||
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. Build HDF5 C Library and Tools >> %build_results%
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. >> %build_results%
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. Build HDF5 C Library and Tools >> %build_results%
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. >> %build_results%
|
||||
|
||||
:: Build both debug and release versions
|
||||
for %%a in (debug release) DO (
|
||||
echo. Building %%a libraries...
|
||||
echo. Building %%a libraries... >> %build_results%
|
||||
devenv .\windows\proj\all\all.sln /rebuild %%a >> %build_results% 2>&1
|
||||
if errorlevel 1 goto :eof
|
||||
)
|
||||
:: Build both debug and release versions
|
||||
for %%a in (debug release) DO (
|
||||
echo. Building %%a libraries...
|
||||
echo. Building %%a libraries... >> %build_results%
|
||||
devenv .\windows\proj\all\all.sln /rebuild %%a >> %build_results% 2>&1
|
||||
if %errorlevel% neq 0 exit /b
|
||||
)
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
exit /b
|
||||
|
||||
|
||||
:: Handle errors
|
||||
:error
|
||||
|
||||
:: For now, our error handling just consists of calling cleanup, and setting errorlevel
|
||||
echo.HDF5 build failed.
|
||||
echo.HDF5 build failed. >> %build_results%
|
||||
call :cleanup
|
||||
set errorlevel=1
|
||||
:: For now, our error handling just consists of calling cleanup, and setting errorlevel
|
||||
echo.HDF5 build failed.
|
||||
echo.HDF5 build failed. >> %build_results%
|
||||
call :cleanup
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
exit /b 1
|
||||
|
||||
|
||||
:: Cleanup our environment
|
||||
:cleanup
|
||||
|
||||
set zlib_name=
|
||||
set szip_name=
|
||||
set zlib_name=
|
||||
set szip_name=
|
||||
set hdf5_enablefortran=
|
||||
set hdf5_use_vs2005=
|
||||
|
||||
:: Don't unset build_results if it is being used by hdf5bt.BAT
|
||||
if "x%bt_results%"=="x" set build_results=
|
||||
popd
|
||||
:: Don't unset build_results if it is being used by hdf5bt.BAT
|
||||
if "x%bt_results%"=="x" set build_results=
|
||||
popd
|
||||
|
||||
if defined hdf5_debug pause
|
||||
goto :eof
|
||||
exit /b 0
|
||||
|
||||
|
||||
:: This is where the magic happens
|
||||
:main
|
||||
|
||||
call :parse_params %*
|
||||
if %errorlevel% neq 0 (
|
||||
if %errorlevel% equ 2 echo.Error parsing parameters!
|
||||
exit /b
|
||||
)
|
||||
|
||||
call :setup
|
||||
|
||||
echo.Building HDF5 Libraries and Tools
|
||||
echo.
|
||||
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. Build HDF5 Libraries and Tools >> %build_results%
|
||||
echo.***************************************************************************** >> %build_results%
|
||||
echo. >> %build_results%
|
||||
|
||||
|
||||
call :h5tinit
|
||||
if %errorlevel% neq 0 (
|
||||
echo. Error building h5tinit!
|
||||
echo. Error building h5tinit! >> %build_results%
|
||||
goto error
|
||||
)
|
||||
|
||||
call :all
|
||||
if %errorlevel% neq 0 (
|
||||
echo. Error building HDF5 libraries!
|
||||
echo. Error building HDF5 libraries! >> %build_results%
|
||||
goto error
|
||||
)
|
||||
|
||||
echo. All HDF5 libraries and tools build successfully!
|
||||
echo. All HDF5 libraries and tools build successfully! >> %build_results%
|
||||
|
||||
call :cleanup
|
||||
|
||||
exit /b 0
|
||||
|
Loading…
Reference in New Issue
Block a user