Subversion Repositories Kolibri OS

Rev

Rev 2518 | Rev 7129 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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