Subversion Repositories Kolibri OS

Rev

Rev 245 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. @echo off
  2. echo ####################################################
  3. echo #           Melibc builder                         #
  4. echo #  usage: build [clean]                            #
  5. echo ####################################################
  6. rem #### CONFIG SECTION ####
  7. set LIBNAME=libck.a
  8. set INCLUDE=include
  9. set CC=
  10. set CFLAGS=-c -nostdinc -DGNUC -I"%cd%\%INCLUDE%"
  11. set AR=
  12. set ASM=
  13. set dirs=stdio memory kolibrisys string stdlib
  14. rem #### END OF CONFIG SECTION ####
  15.  
  16. set objs=
  17. set target=%1
  18. if not "%1"=="clean" set target=all
  19.  
  20. set INCLUDE="%cd%"
  21. call :Target_%target%
  22.  
  23. if ERRORLEVEL 0 goto Exit_OK
  24.  
  25. echo Probably at runing has been created error
  26. echo For help send a report...
  27. pause
  28. goto :eof
  29.  
  30. :Compile_C
  31.    %CC% %CFLAGS% %1 -o "%~dpn1.o"
  32.    if not %errorlevel%==0 goto Error_Failed
  33.    set objs=%objs% "%~dpn1.o"
  34. goto :eof
  35.  
  36. :Compile_Asm
  37.    %ASM% %1 "%~dpn1.o"
  38.    if not %errorlevel%==0 goto Error_Failed
  39.    set objs=%objs% "%~dpn1.o"
  40. goto :eof
  41.  
  42. :Target_clean
  43.    echo cleaning ...
  44.    for %%a in (%dirs%) do del /Q "%%a\*.o"
  45. goto :Exit_OK
  46.  
  47. :Target_all
  48.    echo building all ...
  49.    for %%a in (%dirs%) do (
  50.       for %%f in ("%%a\*.asm") do call :Compile_Asm "%%f"
  51.       for %%f in ("%%a\*.c") do call :Compile_C "%%f"
  52.    )
  53.    %AR% -ru %LIBNAME% %objs%
  54.    if not %errorlevel%==0 goto Error_Failed
  55. goto Exit_OK
  56.  
  57. :Error_Failed
  58. echo error: execution failed
  59. pause
  60. exit 1
  61.  
  62. :Exit_OK
  63. echo ####################################################
  64. echo # All operations has been done...                  #
  65. echo # For cleaning run this script with param " clean" #
  66. echo ####################################################
  67. pause
  68. exit 0