:: :: PROJECT: RosBE - ReactOS Build Environment for Windows :: LICENSE: GNU General Public License v2. (see LICENSE.txt) :: FILE: Root/Clean.cmd :: PURPOSE: Clean the ReactOS source directory. :: COPYRIGHT: Copyright 2009 Daniel Reimer :: Peter Ward :: Colin Finck :: @echo off if not defined _ROSBE_DEBUG set _ROSBE_DEBUG=0 if %_ROSBE_DEBUG% == 1 ( @echo on ) setlocal enabledelayedexpansion title Cleaning... if "%1" == "" ( call :BIN ) else if /i "%1" == "logs" ( call :LOG ) else if /i "%1" == "all" ( call :BIN call :LOG ) else ( call :MODULE %* ) goto :EOC :: Check if we have any binaries to clean, if so, clean them. :BIN if "%ROS_ARCH%" == "i386" ( set MAKEFILE=makefile.auto ) else ( set MAKEFILE=makefile-%ROS_ARCH%.auto ) set IS_SOURCE_DIRECTORY=1 set OBJCLEANPATH="obj-%ROS_ARCH%" set OUTCLEANPATH="output-%ROS_ARCH%" :: As long as the user did not disable the sanity check, check if all directories we want to :: clean exist. Fail if one of them does not exist. call :BIN_CHECKEXISTENCE "%MAKEFILE%" "%OBJCLEANPATH%\." "%OUTCLEANPATH%\." "reactos\." if "%IS_SOURCE_DIRECTORY%" == "0" ( set IS_SOURCE_DIRECTORY=1 if not "%_ROSBE_OBJPATH%" == "" (set OBJCLEANPATH="%_ROSBE_OBJPATH%") if not "%_ROSBE_OUTPATH%" == "" (set OUTCLEANPATH="%_ROSBE_OUTPATH%") call :BIN_CHECKEXISTENCE "%MAKEFILE%" "!OBJCLEANPATH!\." "!OUTCLEANPATH!\." "reactos\." ) if "%IS_SOURCE_DIRECTORY%" == "1" ( del "%MAKEFILE%" 1>NUL 2>NUL rd /s /q "%OBJCLEANPATH%" 1>NUL 2>NUL rd /s /q "%OUTCLEANPATH%" 1>NUL 2>NUL rd /s /q "reactos" 1>NUL 2>NUL echo Done cleaning ReactOS %ROS_ARCH% source directory. ) else ( echo ERROR: This does not look like a ReactOS %ROS_ARCH% source directory to clean. ) goto :EOF :: Check if all given directory exist. If one does not, set IS_SOURCE_DIRECTORY to 0. :BIN_CHECKEXISTENCE if "%1" == "" (goto :EOF) if not exist "%1" ( set IS_SOURCE_DIRECTORY=0 goto :EOF ) shift /1 goto :BIN_CHECKEXISTENCE %* :: Check if we have any logs to clean, if so, clean them. :LOG if exist "%_ROSBE_LOGDIR%\*.txt" ( echo Cleaning build logs... del /f "%_ROSBE_LOGDIR%\*.txt" 1> NUL 2> NUL echo Done cleaning build logs. ) else ( echo ERROR: There are no logs to clean. ) goto :EOF :MODULE if "%1" == "" (goto :EOF) call "%_ROSBE_BASEDIR%\Make.cmd" %1_clean shift /1 echo. GOTO :MODULE %* :EOC title ReactOS Build Environment %_ROSBE_VERSION% endlocal