f20cadb309b719b88d8b8fd8d814e0be1bd9a3ee
[reactos.git] / configure.cmd
1 @echo off
2
3 :: Get the source root directory
4 set REACTOS_SOURCE_DIR=%~dp0
5
6 :: Detect build environment (MinGW, VS, WDK, ...)
7 if defined ROS_ARCH (
8 set BUILD_ENVIRONMENT=MinGW
9 set ARCH=%ROS_ARCH%
10 echo Detected RosBE for %ROS_ARCH%
11 ) else if defined DDK_TARGET_OS (
12 if "%_BUILDARCH%" == "x86" (
13 set ARCH=i386
14 )
15 if "%_BUILDARCH%" == "AMD64" (
16 set ARCH=amd64
17 )
18 set BUILD_ENVIRONMENT=WDK
19 echo Detected DDK/WDK for %DDK_TARGET_OS%-%ARCH%
20 )else if defined VCINSTALLDIR (
21 :: VS command prompt does not put this in enviroment vars
22 cl 2>&1 | find "x86" > NUL && set ARCH=i386
23 cl 2>&1 | find "x64" > NUL && set ARCH=amd64
24 cl 2>&1 | find "14." > NUL && set BUILD_ENVIRONMENT=VS8
25 cl 2>&1 | find "15." > NUL && set BUILD_ENVIRONMENT=VS9
26 cl 2>&1 | find "16." > NUL && set BUILD_ENVIRONMENT=VS10
27 if not defined BUILD_ENVIRONMENT (
28 echo Error: Visual Studio version too old or version detection failed.
29 exit /b
30 )
31 echo Detected Visual Studio Environment %BUILD_ENVIRONMENT%-%ARCH%
32 ) else if defined sdkdir (
33 if "%TARGET_CPU%" == "x86" (
34 set ARCH=i386
35 )
36 if "%TARGET_CPU%" == "x64" (
37 set ARCH=amd64
38 )
39 set BUILD_ENVIRONMENT=SDK
40 echo Detected Windows SDK %TARGET_PLATFORM%-%ARCH%
41 )
42
43 if defined ARCH if defined BUILD_ENVIRONMENT (
44 goto createdirs
45 )
46
47 echo Error: Critical variable missing. Configure script failure.
48 exit /b
49
50 :: Create directories
51 :createdirs
52
53 set REACTOS_OUTPUT_PATH=output-%BUILD_ENVIRONMENT%-%ARCH%
54 if "%REACTOS_SOURCE_DIR%" == "%CD%" (
55 echo test
56 echo Creating directories in %REACTOS_OUTPUT_PATH%
57
58 if not exist %REACTOS_OUTPUT_PATH% (
59 mkdir %REACTOS_OUTPUT_PATH%
60 )
61 cd %REACTOS_OUTPUT_PATH%
62 )
63
64 if not exist host-tools (
65 mkdir host-tools
66 )
67 if not exist reactos (
68 mkdir reactos
69 )
70
71 :hostprep
72 echo Preparing host tools...
73 cd host-tools
74 if EXIST CMakeCache.txt (
75 del CMakeCache.txt /q
76 )
77 set REACTOS_BUILD_TOOLS_DIR=%CD%
78
79 if "%BUILD_ENVIRONMENT%" == "MinGW" (
80 cmake -G "MinGW Makefiles" -DARCH=%ARCH% %REACTOS_SOURCE_DIR%
81 ) else if "%BUILD_ENVIRONMENT%" == "WDK" (
82 cmake -G "NMake Makefiles" -DARCH=%ARCH% %REACTOS_SOURCE_DIR%
83 ) else if "%BUILD_ENVIRONMENT%" == "SDK" (
84 cmake -G "NMake Makefiles" -DARCH=%ARCH% %REACTOS_SOURCE_DIR%
85 ) else if "%BUILD_ENVIRONMENT%" == "VS8" (
86 if "%ARCH%" == "amd64" (
87 cmake -G "Visual Studio 8 2005 Win64" -DARCH=%ARCH% %REACTOS_SOURCE_DIR%
88 ) else (
89 cmake -G "Visual Studio 8 2005" -DARCH=%ARCH% %REACTOS_SOURCE_DIR%
90 )
91 ) else if "%BUILD_ENVIRONMENT%" == "VS9" (
92 if "%ARCH%" == "amd64" (
93 cmake -G "Visual Studio 9 2008 Win64" -DARCH=%ARCH% %REACTOS_SOURCE_DIR%
94 ) else (
95 cmake -G "Visual Studio 9 2008" -DARCH=%ARCH% %REACTOS_SOURCE_DIR%
96 )
97 ) else if "%BUILD_ENVIRONMENT%" == "VS10" (
98 if "%ARCH%" == "amd64" (
99 cmake -G "Visual Studio 10 Win64" -DARCH=%ARCH% %REACTOS_SOURCE_DIR%
100 ) else (
101 cmake -G "Visual Studio 10" -DARCH=%ARCH% %REACTOS_SOURCE_DIR%
102 )
103 )
104 cd..
105
106 :reactprep
107 echo Preparing reactos...
108
109 cd reactos
110 if EXIST CMakeCache.txt (
111 del CMakeCache.txt /q
112 )
113
114 if "%BUILD_ENVIRONMENT%" == "MinGW" (
115 cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain-mingw32.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR%
116 ) else if "%BUILD_ENVIRONMENT%" == "WDK" (
117 cmake -G "NMake Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR%
118 ) else if "%BUILD_ENVIRONMENT%" == "SDK" (
119 cmake -G "NMake Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR%
120 ) else if "%BUILD_ENVIRONMENT%" == "VS8" (
121 if "%ARCH%" == "amd64" (
122 cmake -G "Visual Studio 8 2005 Win64" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR%
123 ) else (
124 cmake -G "Visual Studio 8 2005" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR%
125 )
126 ) else if "%BUILD_ENVIRONMENT%" == "VS9" (
127 if "%ARCH%" == "amd64" (
128 cmake -G "Visual Studio 9 2008 Win64" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR%
129 ) else (
130 cmake -G "Visual Studio 9 2008" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR%
131 )
132 ) else if "%BUILD_ENVIRONMENT%" == "VS10" (
133 if "%ARCH%" == "amd64" (
134 cmake -G "Visual Studio 10 Win64" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR%
135 ) else (
136 cmake -G "Visual Studio 10" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR%
137 )
138 )
139
140 cd..
141 if not ERRORLEVEL == 0 (
142 echo Warning: errors occured.
143 )
144
145 echo Configure script complete! Enter directories and execute appropriate build commands(ex: make, nmake, etc...).
146