mirror of
https://github.com/azure-rtos/threadx
synced 2025-01-30 08:02:57 +08:00
282 lines
12 KiB
Batchfile
282 lines
12 KiB
Batchfile
@REM ***************************************************************************
|
|
@REM
|
|
@REM Builds/Cleans/Tests all examples
|
|
@REM
|
|
@REM Call this script without parameters for usage help.
|
|
@REM
|
|
@REM ***************************************************************************
|
|
|
|
@ECHO OFF
|
|
|
|
SETLOCAL ENABLEEXTENSIONS
|
|
SETLOCAL ENABLEDELAYEDEXPANSION
|
|
|
|
SET SCRIPT_NAME=%~n0%~x0
|
|
CALL :DBG_MSG "SCRIPT_NAME: %SCRIPT_NAME%"
|
|
SET "AZRTOS_TEST_DIR=%~dp0"
|
|
CALL :DBG_MSG "AZRTOS_TEST_DIR: %AZRTOS_TEST_DIR%"
|
|
SET "AZRTOS_REPO_DIR=%~dp0..\."
|
|
CALL :DBG_MSG "AZRTOS_REPO_DIR: %AZRTOS_REPO_DIR%"
|
|
|
|
CALL :DBG_MSG "Parsing parameters..."
|
|
IF /I "%1" EQU "" GOTO PRINT_USAGE_AND_EXIT
|
|
IF /I "%1" EQU "BUILD" SET FLAG_DO_WHAT=BUILD
|
|
IF /I "%1" EQU "CLEAN" SET FLAG_DO_WHAT=CLEAN
|
|
IF /I "%1" EQU "TEST" SET FLAG_DO_WHAT=TEST
|
|
IF "%FLAG_DO_WHAT%"=="" GOTO PRINT_USAGE_AND_EXIT
|
|
CALL :DBG_MSG "FLAG_DO_WHAT: %FLAG_DO_WHAT%"
|
|
SHIFT
|
|
IF /I "%1" EQU "" GOTO PRINT_USAGE_AND_EXIT
|
|
IF /I "%1" EQU "TX" SET FLAG_DO_WHICH=TX
|
|
IF /I "%1" EQU "TXM" SET FLAG_DO_WHICH=TXM
|
|
IF "%FLAG_DO_WHICH%"=="" GOTO PRINT_USAGE_AND_EXIT
|
|
CALL :DBG_MSG "FLAG_DO_WHICH: %FLAG_DO_WHICH%"
|
|
SET FLAG_GHS=0
|
|
SET FLAG_IAR=0
|
|
SET FLAG_AC5=0
|
|
SET FLAG_AC6=0
|
|
SET FLAG_KUV=0
|
|
SET FLAG_GNU=0
|
|
CALL :DBG_MSG "Parsing groups..."
|
|
:PARSE_GROUP_PARAMS
|
|
SHIFT
|
|
IF /I "%1" EQU "" GOTO GROUP_PARAMS_PARSED
|
|
IF /I "%1" EQU "ALL" (
|
|
SET FLAG_IAR=1
|
|
SET FLAG_GHS=1
|
|
SET FLAG_AC5=1
|
|
SET FLAG_AC6=1
|
|
SET FLAG_KUV=1
|
|
SET FLAG_GNU=1
|
|
)
|
|
IF /I "%1" EQU "IAR" SET FLAG_IAR=1
|
|
IF /I "%1" EQU "GHS" SET FLAG_GHS=1
|
|
IF /I "%1" EQU "AC5" SET FLAG_AC5=1
|
|
IF /I "%1" EQU "AC6" SET FLAG_AC6=1
|
|
IF /I "%1" EQU "KUV" SET FLAG_KUV=1
|
|
IF /I "%1" EQU "GNU" SET FLAG_GNU=1
|
|
GOTO PARSE_GROUP_PARAMS
|
|
CALL :DBG_MSG "Groups parsed."
|
|
:GROUP_PARAMS_PARSED
|
|
CALL :DBG_MSG "FLAG_IAR: %FLAG_IAR%"
|
|
CALL :DBG_MSG "FLAG_GHS: %FLAG_GHS%"
|
|
CALL :DBG_MSG "FLAG_AC5: %FLAG_AC5%"
|
|
CALL :DBG_MSG "FLAG_AC6: %FLAG_AC6%"
|
|
CALL :DBG_MSG "FLAG_KUV: %FLAG_KUV%"
|
|
CALL :DBG_MSG "FLAG_GNU: %FLAG_GNU%"
|
|
CALL :DBG_MSG "Parameters parsed."
|
|
|
|
IF %FLAG_IAR% EQU 1 (
|
|
CALL azrtos_setenv_iar.bat
|
|
IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR
|
|
)
|
|
IF %FLAG_GHS% EQU 1 (
|
|
CALL azrtos_setenv_ghs.bat
|
|
IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR
|
|
)
|
|
IF %FLAG_AC5% EQU 1 (
|
|
CALL azrtos_setenv_ac5.bat
|
|
IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR
|
|
)
|
|
IF %FLAG_AC6% EQU 1 (
|
|
CALL azrtos_setenv_ac6.bat
|
|
IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR
|
|
)
|
|
IF %FLAG_KUV% EQU 1 (
|
|
CALL azrtos_setenv_kuv.bat
|
|
IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR
|
|
)
|
|
IF %FLAG_GNU% EQU 1 (
|
|
CALL azrtos_setenv_gnu.bat
|
|
IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR
|
|
)
|
|
IF "%FLAG_DO_WHAT%" EQU "TEST" (
|
|
IF %FLAG_GNU% EQU 1 (
|
|
CALL azrtos_setenv_arm_dbg.bat
|
|
)
|
|
)
|
|
|
|
SET LOGFILE=%AZRTOS_REPO_DIR%\test\azrtos_do_all.log
|
|
CALL :DBG_MSG "LOGFILE: %LOGFILE%"
|
|
|
|
SET /A DIR_COUNT=0
|
|
SET /A DIR_SUCCESS_COUNT=0
|
|
SET /A DIR_ERROR_COUNT=0
|
|
|
|
IF %FLAG_DO_WHICH%==TX (
|
|
IF %FLAG_IAR%==1 (
|
|
CALL :DO_DIR IAR CORTEX_M0 %AZRTOS_REPO_DIR%\ports\cortex_m0\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_M3 %AZRTOS_REPO_DIR%\ports\cortex_m3\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_M7 %AZRTOS_REPO_DIR%\ports\cortex_m7\iar\example_build
|
|
REM CALL :DO_DIR IAR CORTEX_M23 %AZRTOS_REPO_DIR%\ports\cortex_m23\iar\example_build
|
|
REM CALL :DO_DIR IAR CORTEX_M33 %AZRTOS_REPO_DIR%\ports\cortex_m33\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_R4 %AZRTOS_REPO_DIR%\ports\cortex_r4\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_R5 %AZRTOS_REPO_DIR%\ports\cortex_r5\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_A5 %AZRTOS_REPO_DIR%\ports\cortex_a5\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_A7 %AZRTOS_REPO_DIR%\ports\cortex_a7\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_A8 %AZRTOS_REPO_DIR%\ports\cortex_a8\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_A9 %AZRTOS_REPO_DIR%\ports\cortex_a9\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_A15 %AZRTOS_REPO_DIR%\ports\cortex_a15\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_ARM9 %AZRTOS_REPO_DIR%\ports\arm9\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_ARM11 %AZRTOS_REPO_DIR%\ports\arm11\iar\example_build
|
|
REM CALL :DO_DIR IAR RISC_V32 %AZRTOS_REPO_DIR%\ports\risc-v32\iar\example_build
|
|
)
|
|
IF %FLAG_GHS%==1 (
|
|
CALL :DO_DIR GHS CORTEX_M3 %AZRTOS_REPO_DIR%\ports\cortex_m3\ghs\example_build
|
|
CALL :DO_DIR GHS CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\ghs\example_build
|
|
CALL :DO_DIR GHS CORTEX_M7 %AZRTOS_REPO_DIR%\ports\cortex_m7\ghs\example_build
|
|
CALL :DO_DIR GHS CORTEX_R4 %AZRTOS_REPO_DIR%\ports\cortex_r4\ghs\example_build
|
|
CALL :DO_DIR GHS CORTEX_R5 %AZRTOS_REPO_DIR%\ports\cortex_r5\ghs\example_build
|
|
CALL :DO_DIR GHS CORTEX_R7 %AZRTOS_REPO_DIR%\ports\cortex_r7\ghs\example_build
|
|
CALL :DO_DIR GHS CORTEX_A5 %AZRTOS_REPO_DIR%\ports\cortex_a5\ghs\example_build
|
|
CALL :DO_DIR GHS CORTEX_A7 %AZRTOS_REPO_DIR%\ports\cortex_a7\ghs\example_build
|
|
CALL :DO_DIR GHS CORTEX_A8 %AZRTOS_REPO_DIR%\ports\cortex_a8\ghs\example_build
|
|
CALL :DO_DIR GHS CORTEX_A9 %AZRTOS_REPO_DIR%\ports\cortex_a9\ghs\example_build
|
|
)
|
|
IF %FLAG_AC5%==1 (
|
|
CALL :DO_DIR AC5 CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\ac5\example_build
|
|
)
|
|
IF %FLAG_AC6%==1 (
|
|
CALL :DO_DIR AC6 CORTEX_M0 %AZRTOS_REPO_DIR%\ports\cortex_m0\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_M3 %AZRTOS_REPO_DIR%\ports\cortex_m3\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_M7 %AZRTOS_REPO_DIR%\ports\cortex_m7\ac6\example_build
|
|
REM CALL :DO_DIR AC6 CORTEX_M23 %AZRTOS_REPO_DIR%\ports\cortex_m23\ac6\example_build
|
|
REM CALL :DO_DIR AC6 CORTEX_M33 %AZRTOS_REPO_DIR%\ports\cortex_m33\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_R4 %AZRTOS_REPO_DIR%\ports\cortex_r4\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_R5 %AZRTOS_REPO_DIR%\ports\cortex_r5\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_A5X %AZRTOS_REPO_DIR%\ports\cortex_a5x\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_A7 %AZRTOS_REPO_DIR%\ports\cortex_a7\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_A8 %AZRTOS_REPO_DIR%\ports\cortex_a8\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_A9 %AZRTOS_REPO_DIR%\ports\cortex_a9\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_A15 %AZRTOS_REPO_DIR%\ports\cortex_a15\ac6\example_build
|
|
)
|
|
IF %FLAG_KUV%==1 (
|
|
CALL :DO_DIR KUV CORTEX_M3 %AZRTOS_REPO_DIR%\ports\cortex_m3\keil\example_build
|
|
CALL :DO_DIR KUV CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\keil\example_build
|
|
)
|
|
IF %FLAG_GNU%==1 (
|
|
CALL :DO_DIR GNU CORTEX_M0 %AZRTOS_REPO_DIR%\ports\cortex_m0\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_M3 %AZRTOS_REPO_DIR%\ports\cortex_m3\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_M7 %AZRTOS_REPO_DIR%\ports\cortex_m7\gnu\example_build
|
|
REM CALL :DO_DIR GNU CORTEX_M23 %AZRTOS_REPO_DIR%\ports\cortex_m23\gnu\example_build
|
|
REM CALL :DO_DIR GNU CORTEX_M33 %AZRTOS_REPO_DIR%\ports\cortex_m33\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_R4 %AZRTOS_REPO_DIR%\ports\cortex_r4\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_R5 %AZRTOS_REPO_DIR%\ports\cortex_r5\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_A5 %AZRTOS_REPO_DIR%\ports\cortex_a5\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_A7 %AZRTOS_REPO_DIR%\ports\cortex_a7\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_A8 %AZRTOS_REPO_DIR%\ports\cortex_a8\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_A9 %AZRTOS_REPO_DIR%\ports\cortex_a9\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_A15 %AZRTOS_REPO_DIR%\ports\cortex_a15\gnu\example_build
|
|
REM CALL :DO_DIR GNU CORTEX_A35 %AZRTOS_REPO_DIR%\ports\cortex_a35\gnu\example_build
|
|
)
|
|
)
|
|
IF %FLAG_DO_WHICH%==TXM (
|
|
IF %FLAG_IAR%==1 (
|
|
SET CURRENT_TOOLCHAIN=IAR
|
|
CALL :DO_DIR IAR CORTEX_M3 %AZRTOS_REPO_DIR%\ports_module\cortex-m3\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_M4 %AZRTOS_REPO_DIR%\ports_module\cortex-m4\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_M7 %AZRTOS_REPO_DIR%\ports_module\cortex-m7\iar\example_build
|
|
CALL :DO_DIR IAR CORTEX_R4 %AZRTOS_REPO_DIR%\ports_module\cortex-r4\iar\example_build
|
|
)
|
|
IF %FLAG_AC5%==1 (
|
|
CALL :DO_DIR AC5 CORTEX_M3 %AZRTOS_REPO_DIR%\ports_module\cortex-m3\ac5\example_build
|
|
CALL :DO_DIR AC5 CORTEX_M4 %AZRTOS_REPO_DIR%\ports_module\cortex-m4\ac5\example_build
|
|
CALL :DO_DIR AC5 CORTEX_M7 %AZRTOS_REPO_DIR%\ports_module\cortex-m7\ac5\example_build
|
|
CALL :DO_DIR AC5 CORTEX_A7 %AZRTOS_REPO_DIR%\ports_module\cortex-a7\ac5\example_build
|
|
)
|
|
IF %FLAG_AC6%==1 (
|
|
CALL :DO_DIR AC6 CORTEX_M3 %AZRTOS_REPO_DIR%\ports_module\cortex-m3\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_M4 %AZRTOS_REPO_DIR%\ports_module\cortex-m4\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_M7 %AZRTOS_REPO_DIR%\ports_module\cortex-m7\ac6\example_build
|
|
CALL :DO_DIR AC6 CORTEX_R4 %AZRTOS_REPO_DIR%\ports_module\cortex-r4\ac6\example_build
|
|
)
|
|
IF %FLAG_KUV%==1 (
|
|
CALL :DO_DIR KUV CORTEX_M4 %AZRTOS_REPO_DIR%\ports_module\cortex-m4\keil\example_build
|
|
)
|
|
IF %FLAG_GNU%==1 (
|
|
CALL :DO_DIR GNU CORTEX_M3 %AZRTOS_REPO_DIR%\ports_module\cortex-m3\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_M4 %AZRTOS_REPO_DIR%\ports_module\cortex-m4\gnu\example_build
|
|
CALL :DO_DIR GNU CORTEX_M7 %AZRTOS_REPO_DIR%\ports_module\cortex-m7\gnu\example_build
|
|
)
|
|
)
|
|
CALL :DBG_MSG "All operations called."
|
|
|
|
CALL :DBG_MSG "Printing results."
|
|
CALL :OUT_MSG "INFO: %FLAG_DO_WHAT% results:"
|
|
CALL :OUT_MSG "INFO: %DIR_COUNT% total."
|
|
CALL :OUT_MSG "INFO: %DIR_SUCCESS_COUNT% completed successfully."
|
|
IF "%DIR_ERROR_COUNT%" NEQ "0" CALL :OUT_MSG "ERROR: %DIR_ERROR_COUNT% failed."
|
|
CALL :OUT_MSG "INFO: Ending %FLAG_DO_WHAT% on %DATE% at %TIME%."
|
|
EXIT /B 0
|
|
|
|
|
|
:PRINT_USAGE_AND_EXIT
|
|
ECHO.
|
|
ECHO Usage:
|
|
ECHO %SCRIPT_NAME% {build^|clean^|test} {tx^|txm} [[group] [[group] [...]]]
|
|
ECHO Performs the selected operation on ThreadX or ThreadX Modules examples in one or more groups,
|
|
ECHO where group is one of the following:
|
|
ECHO ALL -- ALL examples
|
|
ECHO IAR -- IAR Embedded Workbench examples
|
|
ECHO GHS -- Green Hills Software examples
|
|
ECHO AC5 -- ARM Developer Studio 5 examples
|
|
ECHO AC6 -- ARM Developer Studio 6 examples
|
|
ECHO KUV -- KEIL uVision
|
|
ECHO GNU -- GNU Compiler Collection
|
|
ECHO If no parameters are passed usage information is displayed.
|
|
ECHO Outputs a report to standard output.
|
|
ECHO Creates a log file with all output.
|
|
ECHO.
|
|
EXIT /B 0
|
|
|
|
|
|
:SETENV_ERROR
|
|
CALL :OUT_MSG "ERROR: failed to set the environment"
|
|
EXIT 1
|
|
|
|
|
|
:DO_DIR
|
|
SET "CURRENT_TOOLCHAIN=%~1"
|
|
SET "CURRENT_PLATFORM=%~2"
|
|
SET "CURRENT_DIRECTORY=%~3"
|
|
CALL :DBG_MSG "CURRENT_DIRECTORY: %CURRENT_DIRECTORY%"
|
|
IF NOT EXIST %CURRENT_DIRECTORY% (
|
|
EXIT /B 1
|
|
CALL :OUT_MSG "ERROR: Directory doesn't exist: CURRENT_DIRECTORY"
|
|
)
|
|
PUSHD %CURRENT_DIRECTORY%
|
|
IF /I "%FLAG_DO_WHAT%" EQU "BUILD" SET CURRENT_SCRIPT=%AZRTOS_REPO_DIR%\test\azrtos_build_%FLAG_DO_WHICH%_%CURRENT_TOOLCHAIN%.bat
|
|
IF /I "%FLAG_DO_WHAT%" EQU "CLEAN" SET CURRENT_SCRIPT=%AZRTOS_REPO_DIR%\test\azrtos_clean_%FLAG_DO_WHICH%_%CURRENT_TOOLCHAIN%.bat
|
|
IF /I "%FLAG_DO_WHAT%" EQU "TEST" SET CURRENT_SCRIPT=%AZRTOS_REPO_DIR%\test\azrtos_test_%FLAG_DO_WHICH%_%CURRENT_TOOLCHAIN%_%CURRENT_PLATFORM%.bat
|
|
IF DEFINED DEBUG ECHO DEBUG: %CURRENT_SCRIPT%
|
|
IF NOT EXIST %CURRENT_SCRIPT% (
|
|
CALL :OUT_MSG "ERROR: script does not exist: %CURRENT_SCRIPT%"
|
|
) ELSE (
|
|
CALL :OUT_MSG "INFO: STARTING: %FLAG_DO_WHAT%: %CD% - %DATE% %TIME%"
|
|
SET /A DIR_COUNT+=1
|
|
CALL %CURRENT_SCRIPT% >> %LOGFILE% 2>&1
|
|
IF %ERRORLEVEL% EQU 0 (
|
|
CALL :OUT_MSG "INFO: SUCCESS: %FLAG_DO_WHAT%: %CD% - %DATE% %TIME%"
|
|
SET /A DIR_SUCCESS_COUNT+=1
|
|
) ELSE (
|
|
CALL :OUT_MSG "ERROR: %FLAG_DO_WHAT%: %CD% - %DATE% %TIME%"
|
|
SET /A DIR_ERROR_COUNT+=1
|
|
)
|
|
POPD
|
|
)
|
|
EXIT /B 0
|
|
|
|
|
|
:DBG_MSG
|
|
IF DEFINED AZRTOS_DEBUG (ECHO DEBUG: %~1)
|
|
EXIT /B 0
|
|
|
|
|
|
:OUT_MSG
|
|
ECHO %~1
|
|
IF DEFINED LOGFILE (ECHO %~1 > %LOGFILE%)
|
|
EXIT /B 0
|