Rev 2518 | Rev 7129 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3274 | esevece | 1 | @echo off |
2 | cls |
||
3 | set languages=en ru ge et sp |
||
4 | set drivers=com_mouse emu10k1x fm801 infinity sis sound viasound vt823x |
||
5 | set targets=all kernel drivers clean |
||
6 | |||
7 | call :Check_Target %1 |
||
8 | for %%a in (all kernel) do if %%a==%target% call :Check_Lang %2 |
||
9 | call :Target_%target% |
||
10 | |||
11 | if ERRORLEVEL 0 goto Exit_OK |
||
12 | |||
13 | echo There was an error executing script. |
||
14 | echo For any help, please send a report. |
||
15 | pause |
||
16 | goto :eof |
||
17 | |||
18 | |||
19 | |||
20 | |||
21 | :Check_Lang |
||
22 | set res=%1 |
||
23 | :Check_Lang_loop |
||
24 | for %%a in (%languages%) do if %%a==%res% set lang=%res% |
||
25 | if defined lang goto :eof |
||
26 | |||
27 | echo Language '%res%' is incorrect |
||
28 | echo Enter valid language [ %languages% ]: |
||
29 | |||
30 | set /P res="> |
||
31 | goto Check_Lang_loop |
||
32 | goto :eof |
||
33 | |||
34 | :Check_Target |
||
35 | set res=%1 |
||
36 | :Check_Target_loop |
||
37 | for %%a in (%targets%) do if %%a==%res% set target=%res% |
||
38 | if defined target goto :eof |
||
39 | |||
40 | echo Target '%res%' is incorrect |
||
41 | echo Enter valid target [ %targets% ]: |
||
42 | |||
43 | set /P res="> |
||
44 | goto Check_Target_loop |
||
45 | goto :eof |
||
46 | |||
47 | |||
48 | :Target_kernel |
||
49 | echo *** building kernel with language '%lang%' ... |
||
50 | |||
51 | if not exist bin mkdir bin |
||
52 | echo lang fix %lang% > lang.inc |
||
53 | fasm -m 65536 kernel.asm bin\kernel.mnt |
||
54 | if not %errorlevel%==0 goto :Error_FasmFailed |
||
55 | erase lang.inc |
||
56 | goto :eof |
||
57 | |||
58 | |||
59 | :Target_all |
||
60 | call :Target_kernel |
||
61 | call :Target_drivers |
||
62 | goto :eof |
||
63 | |||
64 | |||
65 | :Target_drivers |
||
66 | echo *** building drivers ... |
||
67 | |||
68 | if not exist bin\drivers mkdir bin\drivers |
||
69 | cd drivers |
||
70 | for %%a in (%drivers%) do ( |
||
71 | fasm -m 65536 %%a.asm ..\bin\drivers\%%a.obj |
||
72 | if not %errorlevel%==0 goto :Error_FasmFailed |
||
73 | ) |
||
74 | cd .. |
||
75 | |||
76 | kpack >nul 2>&1 |
||
77 | |||
78 | if %errorlevel%==9009 goto :Error_KpackFailed |
||
79 | |||
80 | echo * |
||
81 | echo ############################################## |
||
82 | echo * |
||
83 | echo Kpack KolibriOS drivers? |
||
84 | echo * |
||
85 | |||
86 | set /P res=[y/n]? |
||
87 | |||
88 | if "%res%"=="y" ( |
||
89 | |||
90 | echo * |
||
91 | echo Compressing system |
||
92 | |||
93 | echo * |
||
94 | for %%a in (bin\drivers\*.obj) do ( |
||
95 | echo ================== kpack %%a |
||
96 | kpack %%a |
||
97 | if not %errorlevel%==0 goto :Error_KpackFailed |
||
98 | ) |
||
99 | |||
100 | ) |
||
101 | goto :eof |
||
102 | |||
103 | |||
104 | :Target_clean |
||
105 | echo *** cleaning ... |
||
106 | rmdir /S /Q bin |
||
107 | goto :Exit_OK |
||
108 | |||
109 | |||
110 | :Error_FasmFailed |
||
111 | echo error: fasm execution failed |
||
112 | erase lang.inc >nul 2>&1 |
||
113 | echo. |
||
114 | pause |
||
115 | exit 1 |
||
116 | |||
117 | :Error_KpackFailed |
||
118 | echo *** NOTICE *** |
||
119 | echo If you want to pack all applications you may |
||
120 | echo place "kpack" in accessible directory or system %PATH%. |
||
121 | echo You can get this tool from KolibriOS distribution kit. |
||
122 | pause |
||
123 | exit 1 |
||
124 | |||
125 | :Exit_OK |
||
126 | echo. |
||
127 | echo all operations have been done |
||
128 | pause |
||
129 | exit 0 |