Subversion Repositories Kolibri OS

Rev

Rev 1091 | Rev 1094 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. @echo off
  2. cls
  3.  
  4. set languages=en ru ge et
  5. set drivers=sound sis infinity ensoniq ps2mouse com_mouse uart ati2d vmode
  6. set targets=all kernel drivers skins clean
  7.  
  8. call :Check_Target %1
  9. for %%a in (all kernel) do if %%a==%target% call :Check_Lang %2
  10. call :Target_%target%
  11.  
  12. if ERRORLEVEL 0 goto Exit_OK
  13.  
  14. echo There was an error executing script.
  15. echo For any help, please send a report.
  16. pause
  17. goto :eof
  18.  
  19.  
  20.  
  21.  
  22. :Check_Lang
  23.    set res=%1
  24.   :Check_Lang_loop
  25.    for %%a in (%languages%) do if %%a==%res% set lang=%res%
  26.    if defined lang goto :eof
  27.  
  28.    echo Language '%res%' is incorrect
  29.    echo Enter valid language [ %languages% ]:
  30.  
  31.    set /P res=">
  32.    goto Check_Lang_loop
  33. goto :eof
  34.  
  35. :Check_Target
  36.    set res=%1
  37.   :Check_Target_loop
  38.    for %%a in (%targets%) do if %%a==%res% set target=%res%
  39.    if defined target goto :eof
  40.  
  41.    echo Target '%res%' is incorrect
  42.    echo Enter valid target [ %targets% ]:
  43.  
  44.    set /P res=">
  45.    goto Check_Target_loop
  46. goto :eof
  47.  
  48.  
  49. :Target_kernel
  50.    echo *** building kernel with language '%lang%' ...
  51.  
  52.    if not exist bin mkdir bin
  53.    echo lang fix %lang% > lang.inc
  54.    fasm -m 65536 kernel.asm bin\kernel.mnt
  55.    if not %errorlevel%==0 goto :Error_FasmFailed
  56.    erase lang.inc
  57. goto :eof
  58.  
  59.  
  60. :Target_all
  61.    call :Target_kernel
  62.    call :Target_drivers
  63.    call :Target_skins
  64. goto :eof
  65.  
  66.  
  67. :Target_drivers
  68.    echo *** building drivers ...
  69.  
  70.    if not exist bin\drivers mkdir bin\drivers
  71.    cd drivers
  72.    for %%a in (%drivers%) do (
  73.      fasm -m 65536 %%a.asm ..\bin\drivers\%%a.obj
  74.      if not %errorlevel%==0 goto :Error_FasmFailed
  75.    )
  76.    cd ..
  77.    move bin\drivers\vmode.obj bin\drivers\vmode.mdr
  78.  
  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_FasmFailed
  98.   )
  99.  
  100. )
  101. goto :eof
  102.  
  103.  
  104. :Target_skins
  105.    echo *** building skins ...
  106.  
  107.    if not exist bin\skins mkdir bin\skins
  108.    cd skin
  109.    fasm -m 65536 default.asm ..\bin\skins\default.skn
  110.    if not %errorlevel%==0 goto :Error_FasmFailed
  111.    cd ..
  112. goto :eof
  113.  
  114. :Target_clean
  115.    echo *** cleaning ...
  116.    rmdir /S /Q bin
  117. goto :Exit_OK
  118.  
  119.  
  120. :Error_FasmFailed
  121. echo error: fasm execution failed
  122. erase lang.inc >nul 2>&1
  123. echo.
  124. pause
  125. exit 1
  126.  
  127. :Error_KpackFailed
  128. echo   *** NOTICE ***
  129. echo If you want pack all applications you may
  130. echo place "kpack" in accessible directory.
  131. echo You can download that tool from http://diamondz.land.ru/
  132. echo.
  133. pause
  134. exit 1
  135.  
  136. :Exit_OK
  137. echo.
  138. echo all operations has been done
  139. pause
  140. exit 0
  141.