blob: 750a0f87d4f19a1105fde0bee20b88585ffabd66 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
@rem Copyright 2015 Egor Tensin <Egor.Tensin@gmail.com>
@rem This file is licensed under the terms of the MIT License.
@rem See LICENSE.txt for details.
@setlocal enabledelayedexpansion
@echo off
if [%1] == [] (
echo Usage: %~0 DRIVER_SRC_ROOT
exit /b 1
)
call check_env.bat || exit /b !errorlevel!
call check_ddk.bat || exit /b !errorlevel!
set driver_src_root=%~f1
cd "%driver_src_root%"
for /f %%i in ("%driver_src_root%") do (
set driver_name=%%~ni
set driver_dist_subdir=%%~dpi
)
call :make_relative driver_dist_subdir "%src_root%"
set sys_dist_dir=%bin_root%\%target_platform%\%target_configuration%\%driver_dist_subdir%
set pdb_dist_dir=%bin_root%\%target_platform%\%target_configuration%\%driver_dist_subdir%
set lib_dist_dir=%lib_root%\%target_platform%\%target_configuration%\%driver_dist_subdir%
echo =========================== DRIVER INFO ===========================
echo Driver source directory: "%driver_src_root%"
echo Driver name: "%driver_name%"
echo ========================= END DRIVER INFO =========================
echo.
echo ============================== BUILD ==============================
set LIBDISTDIR=%lib_dist_dir%
build.exe /cegwZ
if %errorlevel% equ 0 (
echo ========================== BUILD SUCCESS ==========================
) else (
echo ========================== BUILD FAILURE ==========================
exit /b %errorlevel%
)
if [%_BUILDARCH%] == [x86] (
set sys_path=obj%BUILD_ALT_DIR%\i386\%driver_name%.sys
set pdb_path=obj%BUILD_ALT_DIR%\i386\%driver_name%.pdb
set lib_path=obj%BUILD_ALT_DIR%\i386\%driver_name%.lib
) else (
set sys_path=obj%BUILD_ALT_DIR%\%_BUILDARCH%\%driver_name%.sys
set pdb_path=obj%BUILD_ALT_DIR%\%_BUILDARCH%\%driver_name%.pdb
set lib_path=obj%BUILD_ALT_DIR%\%_BUILDARCH%\%driver_name%.lib
)
echo.
call "%root%\sign.bat" "%sys_path%" || exit /b !errorlevel!
echo.
echo ============================== DISTR ==============================
call :distr_copy "%pdb_path%" "%pdb_dist_dir%" || goto :distr_failure
call :distr_copy "%sys_path%" "%sys_dist_dir%" || goto :distr_failure
if exist "%lib_path%" (
call :distr_copy "%lib_path%" || goto :distr_failure
)
echo ========================== DISTR SUCCESS ==========================
exit /b
:distr_mkdir
if not exist "%~1\" (
echo mkdir "%~1"
mkdir "%~1" >nul || exit /b !errorlevel!
)
exit /b
:distr_copy
call :distr_mkdir "%~2" || exit /b !errorlevel!
echo copy "%~1" "%~2"
copy "%~1" "%~2" >nul || exit /b !errorlevel!
exit /b
:distr_failure
echo ========================== DISTR FAILURE ==========================
exit /b %errorlevel%
:make_relative
@setlocal enabledelayedexpansion
set src=%~1
if defined %1 set src=!%~1!
set base=%~2
if not defined base set base=%cd%
for /f "tokens=*" %%a in ("%src%") do set src=%%~fa
for /f "tokens=*" %%a in ("%base%") do set base=%%~fa
set match=
set c=
for /f "tokens=*" %%a in ('echo.%base:\=^&echo.%') do (
set sub=!sub!%%a\
call set tmp=%%src:!sub!=%%
if "!tmp!" neq "!src!" (
set match=!sub!
) else (
set upper=!upper!..\
)
)
set src=%upper%!src:%match%=!
(endlocal
if defined %1 (set %~1=%src%) else (echo.%src%))
exit /b
|