aboutsummaryrefslogtreecommitdiff
path: root/bootstrap-mingw.bat
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-08-15 12:30:06 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-08-15 12:30:06 +0200
commite74afd7ae8d6b77433594ec3a3fba83a735ab22e (patch)
tree658b591ff8a30fd001f4cc11971ed6b279eb0ece /bootstrap-mingw.bat
parent398a211a3dc166ef72bcda5917c94533d2c7e3e4 (diff)
Add bootstrap-{msvc, mingw}.bat
Diffstat (limited to 'bootstrap-mingw.bat')
-rw-r--r--bootstrap-mingw.bat99
1 files changed, 99 insertions, 0 deletions
diff --git a/bootstrap-mingw.bat b/bootstrap-mingw.bat
new file mode 100644
index 0000000..9b0a5f7
--- /dev/null
+++ b/bootstrap-mingw.bat
@@ -0,0 +1,99 @@
+@echo off
+
+rem file : bootstrap-mingw.bat
+rem copyright : Copyright (c) 2014-2016 Code Synthesis Ltd
+rem license : MIT; see accompanying LICENSE file
+
+setlocal
+goto start
+
+:usage
+echo.
+echo Usage: %0 [/?] [cxx [cxx-option...]]
+echo.
+echo The batch file expects to find the libbutl\ or libbutl-*\ directory
+echo either in the current directory (build2 root) or one level up.
+echo.
+echo Note that is any cxx-option arguments are specified, then they must
+echo be preceded by the compiler executable (use g++ as the default). For
+echo example:
+echo.
+echo %0 g++ -O3
+echo.
+goto end
+
+:start
+
+if "_%1_" == "_/?_" goto usage
+
+rem See if there is libbutl or libbutl-* in the current directory and one
+rem directory up. Note that globbing returns paths in alphabetic order.
+rem
+if exist libbutl\ (
+ set "libbutl=libbutl"
+) else (
+ for /D %%d in (libbutl-*) do set "libbutl=%%d"
+)
+
+if "_%libbutl%_" == "__" (
+ if exist ..\libbutl\ (
+ set "libbutl=..\libbutl"
+ ) else (
+ for /D %%d in (..\libbutl-*) do set "libbutl=%%d"
+ )
+)
+
+if "_%libbutl%_" == "__" (
+ echo error: unable to find libbutl, run %0 /? for details
+ goto error
+)
+
+rem All the source directories.
+rem
+set "src=build2\*.cxx"
+set "src=%src% build2\config\*.cxx"
+set "src=%src% build2\dist\*.cxx"
+set "src=%src% build2\bin\*.cxx"
+set "src=%src% build2\c\*.cxx"
+set "src=%src% build2\cc\*.cxx"
+set "src=%src% build2\cxx\*.cxx"
+set "src=%src% build2\cli\*.cxx"
+set "src=%src% build2\test\*.cxx"
+set "src=%src% build2\install\*.cxx"
+set "src=%src% %libbutl%\butl\*.cxx"
+
+rem Get the compiler executable.
+rem
+if "_%1_" == "__" (
+ set "cxx=g++"
+) else (
+ set "cxx=%1"
+)
+
+rem Get the compile options.
+rem
+set "ops=-std=c++1y -static"
+:ops_next
+shift
+if "_%1_" == "__" (
+ goto ops_done
+) else (
+ set "ops=%ops% %1"
+ goto ops_next
+)
+:ops_done
+
+rem Compile.
+rem
+echo %cxx% -I%libbutl% -I. -DBUILD2_HOST_TRIPLET=\"i686-w64-mingw32\" %ops% -o build2\b-boot.exe %src%
+ %cxx% -I%libbutl% -I. -DBUILD2_HOST_TRIPLET=\"i686-w64-mingw32\" %ops% -o build2\b-boot.exe %src%
+if errorlevel 1 goto error
+
+goto end
+
+:error
+endlocal
+exit /b 1
+
+:end
+endlocal