Win_Check_Output.bat 8.1 KB

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