aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/km/build/wdk7.1/clean_driver.bat
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2017-04-27 19:19:56 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2017-04-27 19:19:56 +0300
commit974bd0388994715b4fa35ac54986e3c1ed4e3f55 (patch)
tree53b23c15bde662804ecb7ef8f54026ff883a7cc2 /km/build/wdk7.1/clean_driver.bat
parentsysenter: add missing configurations to solution (diff)
downloadwindows7-drivers-974bd0388994715b4fa35ac54986e3c1ed4e3f55.tar.gz
windows7-drivers-974bd0388994715b4fa35ac54986e3c1ed4e3f55.zip
reorganize files
* src/ -> km/src/ * utils/ -> um/ * Move WDK 7.1-specific *.bat files to km/build/wdk7.1/ * Move WDK 8.1 Update 1 solutions to km/build/wdk8.1update/
Diffstat (limited to 'km/build/wdk7.1/clean_driver.bat')
-rw-r--r--km/build/wdk7.1/clean_driver.bat96
1 files changed, 96 insertions, 0 deletions
diff --git a/km/build/wdk7.1/clean_driver.bat b/km/build/wdk7.1/clean_driver.bat
new file mode 100644
index 0000000..2a98624
--- /dev/null
+++ b/km/build/wdk7.1/clean_driver.bat
@@ -0,0 +1,96 @@
+@rem Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
+@rem This file is part of the "Windows 7 drivers" project.
+@rem For details, see https://github.com/egor-tensin/windows7-drivers.
+@rem Distributed under the MIT License.
+
+@setlocal enabledelayedexpansion
+@echo off
+
+if "%~1" == "" (
+ echo Usage: %~nx0 DRIVER_SRC_ROOT >&2
+ exit /b 1
+)
+
+call check_ddk.bat || exit /b !errorlevel!
+call check_env.bat || exit /b !errorlevel!
+
+set "driver_src_root=%~f1"
+cd "%driver_src_root%" || exit /b !errorlevel!
+
+for /f %%i in ("%driver_src_root%") do (
+ set "driver_name=%%~ni"
+ set "driver_dist_root=%%~dpi"
+)
+
+call :make_relative driver_dist_root "%src_root%"
+
+set "sys_dist_dir=%bin_root%\%target_platform%\%target_configuration%\%driver_dist_root%"
+set "pdb_dist_dir=%bin_root%\%target_platform%\%target_configuration%\%driver_dist_root%"
+set "lib_dist_dir=%lib_root%\%target_platform%\%target_configuration%\%driver_dist_root%"
+
+echo =========================== DRIVER INFO ===========================
+echo Driver source directory: %driver_src_root%
+echo Driver name: %driver_name%
+echo ========================= END DRIVER INFO =========================
+echo.
+echo ============================== CLEAN ==============================
+call :clean_rmdir "obj%BUILD_ALT_DIR%" || goto :clean_failure
+call :clean_del "build%BUILD_ALT_DIR%.err" || goto :clean_failure
+call :clean_del "build%BUILD_ALT_DIR%.log" || goto :clean_failure
+call :clean_del "build%BUILD_ALT_DIR%.wrn" || goto :clean_failure
+call :clean_del "%sys_dist_dir%%driver_name%.sys" || goto :clean_failure
+call :clean_del "%pdb_dist_dir%%driver_name%.pdb" || goto :clean_failure
+call :clean_del "%lib_dist_dir%%driver_name%.lib" || goto :clean_failure
+echo ========================== CLEAN SUCCESS ==========================
+exit /b 0
+
+:clean_rmdir
+if exist "%~1\" (
+ echo rmdir /s /q "%~1"
+ rmdir /s /q "%~1" >nul
+ exit /b !errorlevel!
+)
+exit /b 0
+
+:clean_del
+if exist "%~1" (
+ echo del "%~1"
+ del "%~1" >nul
+ exit /b !errorlevel!
+)
+exit /b 0
+
+:clean_failure
+echo ========================== CLEAN FAILURE ==========================
+exit /b %errorlevel%
+
+:make_relative
+@setlocal enabledelayedexpansion
+
+set "abs=%~1"
+if defined %~1 set "abs=!%~1!"
+
+set "base=%~2"
+if not defined base set "base=%CD%"
+
+for /f "tokens=*" %%i in ("%abs%") do set "abs=%%~fi"
+for /f "tokens=*" %%i in ("%base%") do set "base=%%~fi"
+
+set match=
+set upper=
+
+for /f "tokens=*" %%i in ('echo.%base:\=^&echo.%') do (
+ set "sub=!sub!%%i\"
+ call set "tmp=%%abs:!sub!=%%"
+ if "!tmp!" == "!abs!" (
+ set "upper=!upper!..\"
+ ) else (
+ set "match=!sub!"
+ )
+)
+
+set "rel=%upper%!abs:%match%=!"
+
+(endlocal & if defined %~1 (set "%~1=%rel%") else (echo.%rel%))
+
+exit /b 0