rem rem This script performs several maintenance functions prior to building rem simh projects. Some of these funtions are optional and depend on the rem needs of the project being built, and others are generic and are always rem performed. rem rem The optional activities are invoked by passing parameters to this rem procedure. The parameters are: rem ROM To run the BuildROMs program prior to executing a project rem build. This program verifies that the include files containing rem ROM images are consistent with the ROM images from which they rem are derived. rem BUILD To validate that the required dependent libraries and include rem files are available in the directory ..\..\windows-build\ rem These libraries currently include winpcap and pthreads and rem optionally SDL. rem LIBSDL To validate that the required dependent SDL libraries and include rem files are available in the directory ..\..\windows-build\ rem rem In addition to the optional activities mentioned above, other activities rem are also performed. These include: rem - confirming that if the current source is a clone of the simh rem git repository, then then git hooks which manage making the rem git commit hash available during builds are properly installed rem in the repository hooks directory. rem - performing the activities which make the git repository commit id rem available in an include file during compiles. rem rem :_next_arg if "%1" == "" goto _done_args set _arg= if /I "%1" == "ROM" set _arg=ROM if /I "%1" == "BUILD" set _arg=BUILD if /I "%1" == "LIBSDL" set _arg=LIBSDL if "%_arg%" == "" echo *** warning *** unknown parameter %0 if not "%_arg%" == "" set _X_%_arg%=%_arg% shift goto _next_arg :_done_args :_do_rom if "%_X_ROM%" == "" goto _done_rom pushd .. SET _BLD= if exist BIN\NT\Win32-Debug\BuildROMs.exe SET _BLD=BIN\NT\Win32-Debug\BuildROMs.exe if exist BIN\NT\Win32-Release\BuildROMs.exe SET _BLD=BIN\NT\Win32-Release\BuildROMs.exe if "%_BLD%" == "" echo ************************************************ if "%_BLD%" == "" echo ************************************************ if "%_BLD%" == "" echo ** Project dependencies not correct. ** if "%_BLD%" == "" echo ** This project should depend on BuildROMs. ** if "%_BLD%" == "" echo ************************************************ if "%_BLD%" == "" echo ************************************************ if "%_BLD%" == "" exit 1 %_BLD% popd :_done_rom :_check_build if "%_X_BUILD%" == "" goto _done_build if exist ../../windows-build-windows-build move ../../windows-build-windows-build ../../windows-build >NUL if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice1 if not exist ../../windows-build/pthreads/pthread.h goto _notice1 if "%_X_LIBSDL%" == "" goto _done_build if not exist ../../windows-build/libSDL/SDL2-2.0.0/include/SDL.h goto _notice2 if not exist "../../windows-build/libSDL/Microsoft DirectX SDK (June 2010)/Lib/x86/dxguid.lib" goto _notice2 goto _done_build :_notice1 echo **************************************************** echo **************************************************** echo ** The required build support is not available. ** echo **************************************************** echo **************************************************** goto _ProjectInfo :_notice2 echo **************************************************** echo **************************************************** echo ** The required build support is out of date. ** echo **************************************************** echo **************************************************** goto _ProjectInfo :_ProjectInfo type 0ReadMe_Projects.txt exit 1 :_done_build if not exist ..\.git goto _done_hooks if exist ..\.git\hooks\post-commit goto _done_hooks echo ***************************************************** echo ***************************************************** echo ** Installing git hooks in newly cloned repository ** echo ***************************************************** echo ***************************************************** copy git-hooks\post* ..\.git\hooks\ :_done_hooks :_SetId SET GIT_COMMIT_ID= if not exist ..\.git-commit-id goto _NoId for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i :_NoId SET OLD_GIT_COMMIT_ID= if not exist .git-commit-id.h echo.>.git-commit-id.h for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h :_IdGood :_done_id