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