Adding WinCheck Script for windows install help
[jackhill/qmk/firmware.git] / util / Win_Check_Output.bat
CommitLineData
e72f8dfd
I
1@setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
2@echo OFF
3set BAT_VERSION=v1.0
4
5cls
6
7echo QMK Windows Check Output %BAT_VERSION%
8echo QMK Windows Check Output %BAT_VERSION%.>%REPORT_NAME%
9
10:: -----------------------------------------------------------------------------
11
12set MINGW_BASE_DIR=C:\MinGW
13set REPORT_NAME=Win_Check_Output.txt
14
15set KEYMAP=atomic-pvc
16set KEYMAP_CLEAN=atomic-pvc-clean
17
18:: -----------------------------------------------------------------------------
19
20if %0 == VERBOSE (goto :Verbose_Make) else (goto :Normal_Make)
21
22:Normal_Make
23set MAKE_CMD_LEVEL_0=make -r -f Makefile COLOR=FALSE
24set MAKE_CMD_LEVEL_1=make -r -f ../Makefile COLOR=FALSE
25set MAKE_CMD_LEVEL_2=make -r -f ../../Makefile COLOR=FALSE
26goto :Start_Report
27
28:Verbose_Make
29echo Verbose Mode
30set MAKE_CMD_LEVEL_0=make -r -d -f Makefile COLOR=FALSE VERBOSE=TRUE
31set MAKE_CMD_LEVEL_1=make -r -d -f ../Makefile COLOR=FALSE VERBOSE=TRUE
32set MAKE_CMD_LEVEL_2=make -r -d -f ../../Makefile COLOR=FALSE VERBOSE=TRUE
33goto :Start_Report
34
35:Start_Report
36
37
38:: -----------------------------------------------------------------------------
39
40set header=CURRENT DIRECTORY & call :ReportHeader
41
42echo %CD%>>%REPORT_NAME% 2>&1
43
44echo.>>%REPORT_NAME% 2>&1
45:: -----------------------------------------------------------------------------
46
47set header=CURRENT PATHS & call :ReportHeader
48
49for %%A in ("%path:;=";"%") do (echo %%~A>>%REPORT_NAME% 2>&1)
50
51echo.>>%REPORT_NAME% 2>&1
52
53:: -----------------------------------------------------------------------------
54
55set header=CURRENT ENVIRONMENTAL SETTINGS & call :ReportHeader
56
57set>>%REPORT_NAME% 2>&1
58echo.>>%REPORT_NAME% 2>&1
59
60:: -----------------------------------------------------------------------------
61
62set header=KEY EXECUTABLE LOCATIONS - GENERAL & call :ReportHeader
63
64set filename=make.exe & set version_cmd=--version & set version_find="GNU Make" & call :ReportVersion
65set filename=git.exe & set version_cmd=--version & set version_find="git" & call :ReportVersion
66set filename=cmp.exe & set version_cmd=--version & set version_find="cmp" & call :ReportVersion
67
68:: -----------------------------------------------------------------------------
69
70set header=EXECUTABLE LOCATIONS - AVR MCU COMPILERS & call :ReportHeader
71
72set filename=avr-gcc.exe & set version_cmd=--version & set version_find="avr" & call :ReportVersion
73set filename=avr-objcopy.exe & set version_cmd=--version & set version_find="GNU objcopy" & call :ReportVersion
74set filename=avr-objdump.exe & set version_cmd=--version & set version_find="GNU objdump" & call :ReportVersion
75set filename=avr-size.exe & set version_cmd=--version & set version_find="GNU size" & call :ReportVersion
76set filename=avr-ar.exe & set version_cmd=--version & set version_find="GNU ar" & call :ReportVersion
77set filename=avr-nm.exe & set version_cmd=--version & set version_find="GNU nm" & call :ReportVersion
78
79:: -----------------------------------------------------------------------------
80
81set header=EXECUTABLE LOCATIONS - ARM MCU COMPILERS & call :ReportHeader
82
83set filename=arm-none-eabi-gcc.exe & set version_cmd=--version & set version_find="arm-none-eabi-gcc" & call :ReportVersion
84set filename=arm-none-eabi-objcopy.exe & set version_cmd=--version & set version_find="GNU objcopy" & call :ReportVersion
85set filename=arm-none-eabi-objdump.exe & set version_cmd=--version & set version_find="GNU objdump" & call :ReportVersion
86set filename=arm-none-eabi-size.exe & set version_cmd=--version & set version_find="GNU size" & call :ReportVersion
87set filename=arm-none-eabi-ar.exe & set version_cmd=--version & set version_find="GNU ar" & call :ReportVersion
88set filename=arm-none-eabi-nm.exe & set version_cmd=--version & set version_find="GNU nm" & call :ReportVersion
89
90:: -----------------------------------------------------------------------------
91
92set header=EXECUTABLE LOCATIONS - NATIVE COMPILERS & call :ReportHeader
93
94set filename=gcc.exe & set version_cmd=--version & set version_find="gcc" & call :ReportVersion
95set filename=objcopy.exe & set version_cmd=--version & set version_find="GNU objcopy" & call :ReportVersion
96set filename=objdump.exe & set version_cmd=--version & set version_find="GNU objdump" & call :ReportVersion
97set filename=size.exe & set version_cmd=--version & set version_find="GNU size" & call :ReportVersion
98set filename=ar.exe & set version_cmd=--version & set version_find="GNU ar" & call :ReportVersion
99set filename=nm.exe & set version_cmd=--version & set version_find="GNU nm" & call :ReportVersion
100
101:: -----------------------------------------------------------------------------
102
103set header=EXECUTABLE LOCATIONS - PROGRAMMERS & call :ReportHeader
104
105set filename=dfu-programmer.exe & set version_cmd=--version & set version_find="dfu" & call :ReportVersion
106set filename=batchisp.exe & set version_cmd=-version & set version_find="batchisp" & call :ReportVersion
107set filename=dfu-util.exe & call :Report
108set filename=teensy_loader_cli.exe & call :Report
109set filename=hid_bootloader_cli.exe & call :Report
110set filename=avrdude.exe & call :Report
111
112:: -----------------------------------------------------------------------------
113
114set header=EXECUTABLE LOCATIONS - OPTIONAL & call :ReportHeader
115set filename=cppcheck.exe & call :Report
116set filename=doxygen.exe & call :Report
117set filename=gdb-config.exe & call :Report
118set filename=wget.exe & call :Report
119set filename=unzip.exe & call :Report
120
121:: -----------------------------------------------------------------------------
122
123set header=MINGW CHECK - OPTIONAL & call :ReportHeader
124if exist %MINGW_BASE_DIR% (echo Expected MinGW Base Dir = %MINGW_BASE_DIR%>>%REPORT_NAME% 2>&1) else (echo Expected MinGW Base Dir = %MINGW_BASE_DIR% - Not Found>>%REPORT_NAME% 2>&1)
125echo.>>%REPORT_NAME% 2>&1
126set filename=mingw32-make.exe & set version_cmd=--version & set version_find="GNU Make" & call :ReportVersion
127if exist %MINGW_BASE_DIR%\bin\gcc.exe (ECHO It is not recommended to have make.exe in mingw/bin.>>%REPORT_NAME% 2>&1 & echo.>>%REPORT_NAME% 2>&1)
128
129:: -----------------------------------------------------------------------------
130
131set header=MAKE CHECK & call :ReportHeader
132if exist Makefile (set MAKE_CMD=%MAKE_CMD_LEVEL_0% & goto MakeFound)
133if exist ..\Makefile (set MAKE_CMD=%MAKE_CMD_LEVEL_1% & goto MakeFound)
134if exist ..\..\Makefile (set MAKE_CMD=%MAKE_CMD_LEVEL_2% & goto MakeFound)
135
136echo No Makfile Found.>>%REPORT_NAME% 2>&1
137echo.>>%REPORT_NAME% 2>&1
138echo ------------------------------------------------------------------------->>%REPORT_NAME% 2>&1
139
140goto ContinueAfterMake
141
142:MakeFound
143call :RunMake
144
145:ContinueAfterMake
146goto ExitBatch
147
148:ExitBatch
149 echo Done!
150 echo.
151 rem type %REPORT_NAME%
152 echo.
153 echo See %REPORT_NAME% for the report.
154 endlocal
155exit /b
156
157:: -----------------------------------------------------------------------------
158
159:RunMake
160
161 echo Makfile Found.>>%REPORT_NAME% 2>&1
162 echo.>>%REPORT_NAME% 2>&1
163 set header=MAKE CLEAN & call :ReportHeader
164 echo Make Command = %MAKE_CMD% %KEYMAP_CLEAN%>>%REPORT_NAME% 2>&1
165 echo.>>%REPORT_NAME% 2>&1
166 %MAKE_CMD% %KEYMAP_CLEAN%>>%REPORT_NAME% 2>&1
167 set header=MAKE & call :ReportHeader
168 echo Make Command = %MAKE_CMD% %KEYMAP%>>%REPORT_NAME% 2>&1
169 echo.>>%REPORT_NAME% 2>&1
170 %MAKE_CMD% %KEYMAP%>>%REPORT_NAME% 2>&1
171 echo ------------------------------------------------------------------------->>%REPORT_NAME% 2>&1
172 echo.>>%REPORT_NAME% 2>&1
173exit /b
174
175:ReportHeader
176 echo ------------------------------------------------------------------------->>%REPORT_NAME% 2>&1
177 echo.>>%REPORT_NAME% 2>&1
178 echo %header%>>%REPORT_NAME% 2>&1
179 echo.>>%REPORT_NAME% 2>&1
180exit /b
181
182:Report
183 echo Filename = %filename% >>%REPORT_NAME% 2>&1
184 <nul set /p output="Location = " >>%REPORT_NAME% 2>&1
185 where %filename% >>%REPORT_NAME% 2> NUL
186 if ERRORLEVEL 1 (echo Not Found >>%REPORT_NAME% 2>&1 & goto :EndReport)
187
188 :EndReport
189 echo.>>%REPORT_NAME% 2>&1
190 <nul set /p output="."
191exit /b
192
193:ReportVersion
194 echo Filename = %filename% >>%REPORT_NAME% 2>&1
195 <nul set /p output="Location = " >>%REPORT_NAME% 2>&1
196 where %filename% >>%REPORT_NAME% 2> NUL
197 if ERRORLEVEL 1 (echo Not Found >>%REPORT_NAME% 2>&1 & goto :EndReportVersion)
198 <nul set /p output ="Version = " >>%REPORT_NAME% 2>&1
199
200 (%filename% %version_cmd% | find %version_find%) >>%REPORT_NAME% 2>&1
201
202 :EndReportVersion
203 echo.>>%REPORT_NAME% 2>&1
204 <nul set /p output="."
205exit /b