VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/Library/VeraCryptLib/mklinks_src.bat
blob: ca28f5bc22e8c406fa94117a7321bd826774e37e (plain)
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
@echo off
pushd %~dp0

if "%veracrypt_src%"=="" if exist %CD:~0,-28%\VeraCrypt\src set veracrypt_src=%CD:~0,-28%\VeraCrypt\src

if not "%1" == "auto" goto :manual
if not "%2" == "" if exist %2 set veracrypt_src=%2
set create_links_del_ren=D
goto :create_links

:manual
call :select_path "%veracrypt_src%" "Select VeraCrypt directory:"
set veracrypt_src=%select_path_result%

set /P YesNo=Create links[Y/N]?
if /I ["%YesNo%"]==["Y"] goto :check_links
goto :end

:check_links
if NOT EXIST common goto :create_links
set /P create_links_del_ren=Old links detected [D]elete or [R]ename?

:create_links
if NOT EXIST common mkdir common
call :create_link common\Crc.c
call :create_link common\Crc.h
call :create_link common\Crypto.c
call :create_link common\Crypto.h
call :create_link common\Endian.c
call :create_link common\Endian.h
call :create_link common\GfMul.h
call :create_link common\Password.h
call :create_link common\Pkcs5.c
call :create_link common\Pkcs5.h
call :create_link common\Tcdefs.h
call :create_link common\Volumes.c
call :create_link common\Volumes.h
call :create_link common\Xml.c
call :create_link common\Xml.h
call :create_link common\Xts.c
call :create_link common\Xts.h

if NOT EXIST crypto mkdir crypto
call :create_link crypto\Streebog.c
call :create_link crypto\Streebog.h
call :create_link crypto\kuznyechik.c
call :create_link crypto\kuznyechik.h
call :create_link crypto\Aes.h
call :create_link crypto\Aeskey.c
call :create_link crypto\Aesopt.h
call :create_link crypto\Aestab.c
call :create_link crypto\Aestab.h
call :create_link crypto\Aes_hw_cpu.h
call :create_link crypto\Aes_hw_cpu.asm Aes_hw_cpu.nasm
call :create_link crypto\Aes_x64.asm Aes_x64.nasm
call :create_link crypto\Aes_x86.asm Aes_x86.nasm
call :create_link crypto\cpu.h
call :create_link crypto\cpu.c
call :create_link crypto\config.h
call :create_link crypto\misc.h
call :create_link crypto\blake2s.c
call :create_link crypto\blake2.h
call :create_link crypto\blake2-impl.h
call :create_link crypto\blake2s_SSE2.c
call :create_link crypto\blake2s_SSE41.c
call :create_link crypto\blake2s_SSSE3.c
call :create_link crypto\blake2s-load-sse2.h
call :create_link crypto\blake2s-load-sse41.h
call :create_link crypto\blake2s-round.h
call :create_link crypto\Serpent.c
call :create_link crypto\Serpent.h
call :create_link crypto\Sha2.c
call :create_link crypto\Sha2.h
call :create_link crypto\Twofish.c
call :create_link crypto\Twofish.h
call :create_link crypto\Whirlpool.c
call :create_link crypto\Whirlpool.h
call :create_link crypto\Camellia.c
call :create_link crypto\Camellia.h

set create_link_skip_pushd=Y
call :create_link Boot\Windows\BootCommon.h
call :create_link Boot\Windows\BootDefs.h
set create_link_skip_pushd=N

@echo on
copy /Y Twofish_x64.S.precompiled Twofish_x64.obj
copy /Y Camellia_aesni_x64.S.precompiled Camellia_aesni_x64.obj
copy /Y Camellia_x64.S.precompiled Camellia_x64.obj
@echo off

goto :end

:create_link
if /I NOT ["%create_link_skip_pushd%"]==["Y"] pushd %~dp1
set fn=%~n1%~x1
if NOT ["%2"]==[""] set fn=%2
call :get_bak_name %fn%
if /I ["%create_links_del_ren%"]==["R"] ren %fn% %name_bak%
if EXIST "%fn%" del %fn%
@echo on
mklink /H %fn% %veracrypt_src%\%1
@echo off
if /I NOT ["%create_link_skip_pushd%"]==["Y"] popd
goto :eof

:get_bak_name
set name_bak=%1
:get_bak_name_retry
if NOT EXIST %name_bak% goto :eof
set name_bak=%name_bak%.sv
goto :get_bak_name_retry

rem call select path
:select_path
set select_path_default=%1
if not exist "%select_path_default%" echo not found %select_path_default%
set select_path_msg=%2
set select_path_msg=%select_path_msg:~1,-1%

:select_path_retry
set select_path_result=
set /p select_path_result=[%select_path_default:~1,-1%] %select_path_msg%
if ["%select_path_result%"]==[""] set select_path_result=%select_path_default:~1,-1%
if exist %select_path_result% goto :eof
echo can not find %select_path_result%
goto :select_path_retry

:end
popd