Subversion Repositories Kolibri OS

Rev

Rev 3232 | Rev 5201 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
231 mikedld 1
@echo off
1093 Lrz 2
cls
3555 Serge 3
set languages=en ru ge et sp
2268 Serge 4
set drivers=com_mouse emu10k1x fm801 infinity sis sound viasound vt823x
3232 Serge 5
set targets=all kernel drivers clean
231 mikedld 6
 
232 victor 7
call :Check_Target %1
8
for %%a in (all kernel) do if %%a==%target% call :Check_Lang %2
9
call :Target_%target%
231 mikedld 10
 
232 victor 11
if ERRORLEVEL 0 goto Exit_OK
231 mikedld 12
 
467 mikedld 13
echo There was an error executing script.
14
echo For any help, please send a report.
232 victor 15
pause
16
goto :eof
231 mikedld 17
 
18
 
19
 
232 victor 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
 
467 mikedld 27
   echo Language '%res%' is incorrect
28
   echo Enter valid language [ %languages% ]:
232 victor 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
 
467 mikedld 40
   echo Target '%res%' is incorrect
41
   echo Enter valid target [ %targets% ]:
232 victor 42
 
43
   set /P res=">
44
   goto Check_Target_loop
45
goto :eof
46
 
47
 
48
:Target_kernel
467 mikedld 49
   echo *** building kernel with language '%lang%' ...
232 victor 50
 
51
   if not exist bin mkdir bin
52
   echo lang fix %lang% > lang.inc
373 mikedld 53
   fasm -m 65536 kernel.asm bin\kernel.mnt
232 victor 54
   if not %errorlevel%==0 goto :Error_FasmFailed
55
   erase lang.inc
56
goto :eof
57
 
58
 
231 mikedld 59
:Target_all
232 victor 60
   call :Target_kernel
61
   call :Target_drivers
62
goto :eof
231 mikedld 63
 
64
 
65
:Target_drivers
467 mikedld 66
   echo *** building drivers ...
231 mikedld 67
 
232 victor 68
   if not exist bin\drivers mkdir bin\drivers
69
   cd drivers
70
   for %%a in (%drivers%) do (
373 mikedld 71
     fasm -m 65536 %%a.asm ..\bin\drivers\%%a.obj
232 victor 72
     if not %errorlevel%==0 goto :Error_FasmFailed
73
   )
74
   cd ..
1091 Lrz 75
 
1094 Lrz 76
kpack >nul 2>&1
77
 
78
if %errorlevel%==9009 goto :Error_KpackFailed
79
 
1091 Lrz 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
 
1093 Lrz 90
  echo *
91
  echo Compressing system
1091 Lrz 92
 
1093 Lrz 93
  echo *
94
  for %%a in (bin\drivers\*.obj) do (
95
    echo ================== kpack %%a
96
    kpack %%a
1094 Lrz 97
    if not %errorlevel%==0 goto :Error_KpackFailed
1093 Lrz 98
  )
1091 Lrz 99
 
100
)
232 victor 101
goto :eof
231 mikedld 102
 
103
 
104
:Target_clean
467 mikedld 105
   echo *** cleaning ...
489 victor 106
   rmdir /S /Q bin
231 mikedld 107
goto :Exit_OK
108
 
109
 
110
:Error_FasmFailed
111
echo error: fasm execution failed
1093 Lrz 112
erase lang.inc >nul 2>&1
113
echo.
232 victor 114
pause
231 mikedld 115
exit 1
116
 
1093 Lrz 117
:Error_KpackFailed
118
echo   *** NOTICE ***
1095 diamond 119
echo If you want to pack all applications you may
1094 Lrz 120
echo place "kpack" in accessible directory or system %PATH%.
1095 diamond 121
echo You can get this tool from KolibriOS distribution kit.
1093 Lrz 122
pause
123
exit 1
124
 
231 mikedld 125
:Exit_OK
1093 Lrz 126
echo.
1095 diamond 127
echo all operations have been done
232 victor 128
pause
467 mikedld 129
exit 0