Skip to content

Instantly share code, notes, and snippets.

@koron
Last active April 30, 2018 07:12
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save koron/8085686 to your computer and use it in GitHub Desktop.
Save koron/8085686 to your computer and use it in GitHub Desktop.
WindowsのMSVCで32bitと64bitのrubyをコンパイル&インストールするバッチ。 使い方はRubyのソース内のトップディレクトリにコピーしてダブルクリックするだけ。 インストール場所はルートディレクトリを指定してバージョンとアーキテクチャ種別を加味したサブディレクトリになる。 VC用の環境設定ファイル(VS_ROOT)とインストールルート(INSTALL_ROOT)の位置は決め打ちになってるので要注意。
@ECHO OFF
GOTO :MAIN
:SETTINGS
SET VS_ROOT=C:\Program Files (x86)\Microsoft Visual Studio 10.0
SET INSTALL_ROOT=D:\Ruby
EXIT /B
:BASENAME
SET BASENAME=%~nx1
EXIT /B
:ARCH
IF "%1" == "amd64" (
SET ARCH=x64-mswin64
) ELSE (
SET ARCH=i386-mswin32
)
EXIT /B
:EXIT_IF_ERROR
IF %ERRORLEVEL% NEQ 0 (
ECHO %*
PAUSE
EXIT 1
)
EXIT /B
:MAIN
IF "%1" == "x86" GOTO :BUILD_ONE
IF "%1" == "amd64" GOTO :BUILD_ONE
CMD /C "%0" x86
IF %ERRORLEVEL% NEQ 0 GOTO :END
CMD /C "%0" amd64
IF %ERRORLEVEL% NEQ 0 GOTO :END
ECHO All compiled and installed.
PAUSE
GOTO :END
:BUILD_ONE
CALL :SETTINGS
SET BATCH=%~dp0
CALL :BASENAME %BATCH:~0,-1%
CALL :ARCH %1
SET RUBY_NAME=%BASENAME%-%ARCH%
ECHO Building %RUBY_NAME% ...
CALL "%VS_ROOT%\VC\vcvarsall.bat" %1
CALL :EXIT_IF_ERROR Failed to load vcvarsall.bat, check your VS_ROOT.
CALL .\win32\configure.bat "--prefix=%INSTALL_ROOT%\%RUBY_NAME%"
CALL :EXIT_IF_ERROR Failed to configure, check your ruby source.
nmake
CALL :EXIT_IF_ERROR Failed to compile.
nmake install
CALL :EXIT_IF_ERROR Failed to install, check your INSTALL_ROOT.
nmake clean
GOTO :END
:END
REM vim:set sts=2 sw=2 tw=0 et:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment