Table of Contents
Main batch file for downloading and installing MinGW + MSYS automatically
- main.bat
@REM *************************************************************************** @REM @REM Main batch file for downloading and installing MinGW + MSYS automatically @REM @REM Version: 1.2 @ August 28, 2011 @REM @REM *** License *** @REM @REM Except where otherwise noted, all of the batchs and scripts are @REM copyrighted by http://www.FFmpegWindows.org @REM @REM Copyright (C) 2010-2011 http://www.FFmpegWindows.org All rights reserved. @REM @REM These batchs and scripts are provided "as-is," without any express or @REM implied warranty. In no event shall the author be held liable for any @REM damages arising from the use of them. @REM @REM Permission is granted to anyone to use these batchs and scripts for @REM any purpose, including commercial applications, and to alter and @REM redistribute it, provided that the following conditions are met: @REM @REM 1. All redistributions of batchs and scripts must retain all copyright @REM notices that are currently in place, and this list of conditions @REM without modification. @REM @REM 2. Modified versions must be plainly marked as such, and must not be @REM misrepresented as being the original batchs and scripts. @REM @REM http://www.ffmpegwindows.org @REM @REM *************************************************************************** @ECHO OFF REM set the flag which indicates we are running within the main batch file SET IN_MINGW_MSYS_BAT=1 @REM *************************************************************************** :CONFIG REM the directory for saving toolchains and libraries of MinGW + MSYS SET SAVE_DIR=%~DP0downloads\ REM the directory for installing toolchains and libraries of MinGW + MSYS SET INSTALL_BASE=C:\MM\ :INIT REM default GCC version SET GCC_VER=4.5.2 REM whether include vim or not SET INCLUDE_VIM=0 REM batch for MinGW files SET MINGW_BAT=%~DP0mingw.bat REM batch for MSYS files SET MSYS_BAT=%~DP0msys.bat REM batch for Libraries files SET LIBS_BAT=%~DP0libs.bat REM batch for list toolchains SET LIST_BAT=%~DP0list.bat REM batch for downloading toolchains SET DOWNLOAD_BAT=%~DP0download.bat REM batch for installing toolchains SET INSTALL_BAT=%~DP0install.bat REM wget util used for downloading REM http://sourceforge.net/projects/mingw/files/mingwPORT/Current%20Releases/wget-1.9.1-mingwPORT.tar.bz2/download SET WGET=%~DP0tools\wget.exe REM 7-Zip util used for extracting *.gz and *.lzma files REM http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download IF EXIST "%~DP0tools\7za.exe" ( SET W7Z=%~DP0tools\7za.exe ) ELSE ( SET W7Z=%ProgramFiles%\7-Zip\7z.exe ) GOTO :MAINMENU @REM *************************************************************************** :CHOOSE_VERSION CLS ECHO. ECHO ****** GCC version and VIM *************************** ECHO. IF "%GCC_VER%"=="4.2.1" ( ECHO *1. GCC 4.2.1 ) ELSE ( ECHO 1. GCC 4.2.1 ) ECHO. IF "%GCC_VER%"=="4.5.2" ( ECHO *2. GCC 4.5.2 ) ELSE ( ECHO 2. GCC 4.5.2 ) ECHO. IF "%INCLUDE_VIM%"=="1" ( ECHO *3. Toggle whether including vim or not ) ELSE ( ECHO 3. Toggle whether including vim or not ) ECHO. ECHO 0. Return to Main Menu ECHO. SET SELECTION= SET /P SELECTION=Selection: IF "%SELECTION%"=="1" ( SET GCC_VER=4.2.1 ) IF "%SELECTION%"=="2" ( SET GCC_VER=4.5.2 ) IF "%SELECTION%"=="3" ( IF "%INCLUDE_VIM%"=="1" ( SET INCLUDE_VIM=0 ) ELSE ( SET INCLUDE_VIM=1 ) ) IF "%SELECTION%"=="0" ( GOTO :MAINMENU ) GOTO :CHOOSE_VERSION @REM *************************************************************************** :MAINMENU CD /D %~DP0 CLS ECHO. ECHO ****** Download and Install MinGW + MSYS ******************* ECHO. ECHO 1. Choose GCC version and VIM ECHO. ECHO 2. List all the files needed ECHO. ECHO 3. Download MinGW ^(GCC %GCC_VER%^) to "%SAVE_DIR%" ECHO. IF "%INCLUDE_VIM%"=="1" ( ECHO 4. Download MSYS ^(with vim^) to "%SAVE_DIR%" ) ELSE ( ECHO 4. Download MSYS ^(without vim^) to "%SAVE_DIR%" ) ECHO. ECHO 5. Download Libraries ^(zlib, bzip2^) to "%SAVE_DIR%" ECHO. ECHO 6. Install MinGW ^(GCC %GCC_VER%^) to "%INSTALL_BASE%MinGW\" ECHO. IF "%INCLUDE_VIM%"=="1" ( ECHO 7. Install MSYS ^(with vim^) to "%INSTALL_BASE%MSYS\" ) ELSE ( ECHO 7. Install MSYS ^(without vim^) to "%INSTALL_BASE%MSYS\" ) ECHO. ECHO 8. Install Libraries ^(zlib, bzip2^) to "%INSTALL_BASE%MinGW\" ECHO. ECHO 9. Download and then install all the files ECHO. ECHO 0. Exit ECHO. SET OPERATION= SET TARGET= SET SELECTION= SET /P SELECTION=Selection: ECHO. IF "%SELECTION%"=="1" ( GOTO :CHOOSE_VERSION ) IF "%SELECTION%"=="2" ( SET OPERATION=LIST SET TARGET=ALLFILE GOTO :ACTION ) IF "%SELECTION%"=="3" ( SET OPERATION=DOWNLOAD SET TARGET=MINGW GOTO :ACTION ) IF "%SELECTION%"=="4" ( SET OPERATION=DOWNLOAD SET TARGET=MSYS GOTO :ACTION ) IF "%SELECTION%"=="5" ( SET OPERATION=DOWNLOAD SET TARGET=LIBS GOTO :ACTION ) IF "%SELECTION%"=="6" ( SET OPERATION=INSTALL SET TARGET=MINGW GOTO :ACTION ) IF "%SELECTION%"=="7" ( SET OPERATION=INSTALL SET TARGET=MSYS GOTO :ACTION ) IF "%SELECTION%"=="8" ( SET OPERATION=INSTALL SET TARGET=LIBS GOTO :ACTION ) IF "%SELECTION%"=="9" ( SET OPERATION=DOWNLOAD_AND_INSTALL SET TARGET=ALLFILE GOTO :ACTION ) IF "%SELECTION%"=="0" ( GOTO :END ) GOTO :MAINMENU @REM *************************************************************************** :ACTION REM check batch for MinGW files IF NOT EXIST "%MINGW_BAT%" ( CALL :NEED_BATCH_OR_EXE "%MINGW_BAT%" GOTO :MAINMENU ) REM check batch for MSYS files IF NOT EXIST "%MSYS_BAT%" ( CALL :NEED_BATCH_OR_EXE "%MSYS_BAT%" GOTO :MAINMENU ) REM check batch for Libraries files IF NOT EXIST "%LIBS_BAT%" ( CALL :NEED_BATCH_OR_EXE "%LIBS_BAT%" GOTO :MAINMENU ) REM list files IF "%OPERATION%"=="LIST" ( CALL :LIST IF ERRORLEVEL==1 GOTO :MAINMENU ) REM download files IF "%OPERATION%"=="DOWNLOAD" ( CALL :DOWNLOAD IF ERRORLEVEL==1 GOTO :MAINMENU ) REM install files IF "%OPERATION%"=="INSTALL" ( CALL :INSTALL IF ERRORLEVEL==1 GOTO :MAINMENU ) REM download and then install files IF "%OPERATION%"=="DOWNLOAD_AND_INSTALL" ( SET OPERATION=DOWNLOAD CALL :DOWNLOAD IF ERRORLEVEL==1 GOTO :MAINMENU SET OPERATION=INSTALL CALL :INSTALL IF ERRORLEVEL==1 GOTO :MAINMENU ) PAUSE GOTO :MAINMENU @REM *************************************************************************** :NEED_BATCH_OR_EXE REM need batch file or execute util ECHO. ECHO Error: "%~NX1" not found. ECHO. PAUSE EXIT /B 1 @REM *************************************************************************** :LIST REM check batch for listing toolchains SET OPERATE_BATCH=%LIST_BAT% IF NOT EXIST "%OPERATE_BATCH%" ( CALL :NEED_BATCH_OR_EXE "%OPERATE_BATCH%" EXIT /B 1 ) REM list MinGW files CALL %MINGW_BAT% REM list MSYS files CALL %MSYS_BAT% REM list Libraries files CALL %LIBS_BAT% EXIT /B 0 @REM *************************************************************************** :DOWNLOAD REM check batch for downloading toolchains SET OPERATE_BATCH=%DOWNLOAD_BAT% IF NOT EXIST "%OPERATE_BATCH%" ( CALL :NEED_BATCH_OR_EXE "%OPERATE_BATCH%" EXIT /B 1 ) REM check wget util used for downloading IF NOT EXIST "%WGET%" ( CALL :NEED_BATCH_OR_EXE "%WGET%" EXIT /B 1 ) REM download MinGW files IF "%TARGET%"=="MINGW" ( CALL %MINGW_BAT% IF ERRORLEVEL==1 EXIT /B 1 ) REM download MSYS files IF "%TARGET%"=="MSYS" ( CALL %MSYS_BAT% IF ERRORLEVEL==1 EXIT /B 1 ) REM download Libraries files IF "%TARGET%"=="LIBS" ( CALL %LIBS_BAT% IF ERRORLEVEL==1 EXIT /B 1 ) REM download all files IF "%TARGET%"=="ALLFILE" ( CALL %MINGW_BAT% IF ERRORLEVEL==1 EXIT /B 1 CALL %MSYS_BAT% IF ERRORLEVEL==1 EXIT /B 1 CALL %LIBS_BAT% IF ERRORLEVEL==1 EXIT /B 1 ) EXIT /B 0 @REM *************************************************************************** :INSTALL REM check batch for installing toolchains SET OPERATE_BATCH=%INSTALL_BAT% IF NOT EXIST "%OPERATE_BATCH%" ( CALL :NEED_BATCH_OR_EXE "%OPERATE_BATCH%" EXIT /B 1 ) REM check 7-Zip util used for extracting *.gz and *.lzma files IF NOT EXIST "%W7Z%" ( CALL :NEED_BATCH_OR_EXE "%W7Z%" EXIT /B 1 ) REM install MinGW files IF "%TARGET%"=="MINGW" ( SET INSTALL_DIR=%INSTALL_BASE%MinGW\ CALL %MINGW_BAT% IF ERRORLEVEL==1 EXIT /B 1 ) REM install MSYS files IF "%TARGET%"=="MSYS" ( SET INSTALL_DIR=%INSTALL_BASE%MSYS\ CALL %MSYS_BAT% IF ERRORLEVEL==1 EXIT /B 1 ) REM install Libraries files IF "%TARGET%"=="LIBS" ( SET INSTALL_DIR=%INSTALL_BASE%MinGW\ CALL %LIBS_BAT% IF ERRORLEVEL==1 EXIT /B 1 ) REM install all files IF "%TARGET%"=="ALLFILE" ( SET INSTALL_DIR=%INSTALL_BASE%MinGW\ CALL %MINGW_BAT% IF ERRORLEVEL==1 EXIT /B 1 SET INSTALL_DIR=%INSTALL_BASE%MSYS\ CALL %MSYS_BAT% IF ERRORLEVEL==1 EXIT /B 1 SET INSTALL_DIR=%INSTALL_BASE%MinGW\ CALL %LIBS_BAT% IF ERRORLEVEL==1 EXIT /B 1 ) EXIT /B 0 @REM *************************************************************************** :END CD /D %~DP0 ECHO ON
Batch files list
- Main batch file for downloading and installing MinGW + MSYS automatically