1
+ @ setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
2
+ @ echo OFF
3
+ set BAT_VERSION = v1.0
4
+
5
+ cls
6
+
7
+ echo QMK Windows Check Output %BAT_VERSION%
8
+ echo QMK Windows Check Output %BAT_VERSION% .> %REPORT_NAME%
9
+
10
+ :: -----------------------------------------------------------------------------
11
+
12
+ set MINGW_BASE_DIR = C:\MinGW
13
+ set REPORT_NAME = Win_Check_Output.txt
14
+
15
+ set KEYMAP = atomic-pvc
16
+ set KEYMAP_CLEAN = atomic-pvc-clean
17
+
18
+ :: -----------------------------------------------------------------------------
19
+
20
+ if %0 == VERBOSE (goto :Verbose_Make) else (goto :Normal_Make)
21
+
22
+ :Normal_Make
23
+ set MAKE_CMD_LEVEL_0 = make -r -f Makefile COLOR=FALSE
24
+ set MAKE_CMD_LEVEL_1 = make -r -f ../Makefile COLOR=FALSE
25
+ set MAKE_CMD_LEVEL_2 = make -r -f ../../Makefile COLOR=FALSE
26
+ goto :Start_Report
27
+
28
+ :Verbose_Make
29
+ echo Verbose Mode
30
+ set MAKE_CMD_LEVEL_0 = make -r -d -f Makefile COLOR=FALSE VERBOSE=TRUE
31
+ set MAKE_CMD_LEVEL_1 = make -r -d -f ../Makefile COLOR=FALSE VERBOSE=TRUE
32
+ set MAKE_CMD_LEVEL_2 = make -r -d -f ../../Makefile COLOR=FALSE VERBOSE=TRUE
33
+ goto :Start_Report
34
+
35
+ :Start_Report
36
+
37
+
38
+ :: -----------------------------------------------------------------------------
39
+
40
+ set header = CURRENT DIRECTORY & call :ReportHeader
41
+
42
+ echo %CD% >> %REPORT_NAME% 2 >& 1
43
+
44
+ echo .>> %REPORT_NAME% 2 >& 1
45
+ :: -----------------------------------------------------------------------------
46
+
47
+ set header = CURRENT PATHS & call :ReportHeader
48
+
49
+ for %%A in (" %path:; =";" % " ) do (echo %%~A >> %REPORT_NAME% 2 >& 1)
50
+
51
+ echo .>> %REPORT_NAME% 2 >& 1
52
+
53
+ :: -----------------------------------------------------------------------------
54
+
55
+ set header = CURRENT ENVIRONMENTAL SETTINGS & call :ReportHeader
56
+
57
+ set>> %REPORT_NAME% 2 >& 1
58
+ echo .>> %REPORT_NAME% 2 >& 1
59
+
60
+ :: -----------------------------------------------------------------------------
61
+
62
+ set header = KEY EXECUTABLE LOCATIONS - GENERAL & call :ReportHeader
63
+
64
+ set filename = make.exe & set version_cmd = --version & set version_find = " GNU Make" & call :ReportVersion
65
+ set filename = git.exe & set version_cmd = --version & set version_find = " git" & call :ReportVersion
66
+ set filename = cmp.exe & set version_cmd = --version & set version_find = " cmp" & call :ReportVersion
67
+
68
+ :: -----------------------------------------------------------------------------
69
+
70
+ set header = EXECUTABLE LOCATIONS - AVR MCU COMPILERS & call :ReportHeader
71
+
72
+ set filename = avr-gcc.exe & set version_cmd = --version & set version_find = " avr" & call :ReportVersion
73
+ set filename = avr-objcopy.exe & set version_cmd = --version & set version_find = " GNU objcopy" & call :ReportVersion
74
+ set filename = avr-objdump.exe & set version_cmd = --version & set version_find = " GNU objdump" & call :ReportVersion
75
+ set filename = avr-size.exe & set version_cmd = --version & set version_find = " GNU size" & call :ReportVersion
76
+ set filename = avr-ar.exe & set version_cmd = --version & set version_find = " GNU ar" & call :ReportVersion
77
+ set filename = avr-nm.exe & set version_cmd = --version & set version_find = " GNU nm" & call :ReportVersion
78
+
79
+ :: -----------------------------------------------------------------------------
80
+
81
+ set header = EXECUTABLE LOCATIONS - ARM MCU COMPILERS & call :ReportHeader
82
+
83
+ set filename = arm-none-eabi-gcc.exe & set version_cmd = --version & set version_find = " arm-none-eabi-gcc" & call :ReportVersion
84
+ set filename = arm-none-eabi-objcopy.exe & set version_cmd = --version & set version_find = " GNU objcopy" & call :ReportVersion
85
+ set filename = arm-none-eabi-objdump.exe & set version_cmd = --version & set version_find = " GNU objdump" & call :ReportVersion
86
+ set filename = arm-none-eabi-size.exe & set version_cmd = --version & set version_find = " GNU size" & call :ReportVersion
87
+ set filename = arm-none-eabi-ar.exe & set version_cmd = --version & set version_find = " GNU ar" & call :ReportVersion
88
+ set filename = arm-none-eabi-nm.exe & set version_cmd = --version & set version_find = " GNU nm" & call :ReportVersion
89
+
90
+ :: -----------------------------------------------------------------------------
91
+
92
+ set header = EXECUTABLE LOCATIONS - NATIVE COMPILERS & call :ReportHeader
93
+
94
+ set filename = gcc.exe & set version_cmd = --version & set version_find = " gcc" & call :ReportVersion
95
+ set filename = objcopy.exe & set version_cmd = --version & set version_find = " GNU objcopy" & call :ReportVersion
96
+ set filename = objdump.exe & set version_cmd = --version & set version_find = " GNU objdump" & call :ReportVersion
97
+ set filename = size.exe & set version_cmd = --version & set version_find = " GNU size" & call :ReportVersion
98
+ set filename = ar.exe & set version_cmd = --version & set version_find = " GNU ar" & call :ReportVersion
99
+ set filename = nm.exe & set version_cmd = --version & set version_find = " GNU nm" & call :ReportVersion
100
+
101
+ :: -----------------------------------------------------------------------------
102
+
103
+ set header = EXECUTABLE LOCATIONS - PROGRAMMERS & call :ReportHeader
104
+
105
+ set filename = dfu-programmer.exe & set version_cmd = --version & set version_find = " dfu" & call :ReportVersion
106
+ set filename = batchisp.exe & set version_cmd = -version & set version_find = " batchisp" & call :ReportVersion
107
+ set filename = dfu-util.exe & call :Report
108
+ set filename = teensy_loader_cli.exe & call :Report
109
+ set filename = hid_bootloader_cli.exe & call :Report
110
+ set filename = avrdude.exe & call :Report
111
+
112
+ :: -----------------------------------------------------------------------------
113
+
114
+ set header = EXECUTABLE LOCATIONS - OPTIONAL & call :ReportHeader
115
+ set filename = cppcheck.exe & call :Report
116
+ set filename = doxygen.exe & call :Report
117
+ set filename = gdb-config.exe & call :Report
118
+ set filename = wget.exe & call :Report
119
+ set filename = unzip.exe & call :Report
120
+
121
+ :: -----------------------------------------------------------------------------
122
+
123
+ set header = MINGW CHECK - OPTIONAL & call :ReportHeader
124
+ 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)
125
+ echo .>> %REPORT_NAME% 2 >& 1
126
+ set filename = mingw32-make.exe & set version_cmd = --version & set version_find = " GNU Make" & call :ReportVersion
127
+ if 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
+
131
+ set header = MAKE CHECK & call :ReportHeader
132
+ if exist Makefile (set MAKE_CMD=%MAKE_CMD_LEVEL_0% & goto MakeFound)
133
+ if exist ..\Makefile (set MAKE_CMD=%MAKE_CMD_LEVEL_1% & goto MakeFound)
134
+ if exist ..\..\Makefile (set MAKE_CMD=%MAKE_CMD_LEVEL_2% & goto MakeFound)
135
+
136
+ echo No Makfile Found.>> %REPORT_NAME% 2 >& 1
137
+ echo .>> %REPORT_NAME% 2 >& 1
138
+ echo ------------------------------------------------------------------------->> %REPORT_NAME% 2 >& 1
139
+
140
+ goto ContinueAfterMake
141
+
142
+ :MakeFound
143
+ call :RunMake
144
+
145
+ :ContinueAfterMake
146
+ goto 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
155
+ exit /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
173
+ exit /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
180
+ exit /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 = " ."
191
+ exit /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 = " ."
205
+ exit /b
0 commit comments