Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. @echo off
  2. echo ####################################################
  3. echo #           test libc builder                      #
  4. echo #  usage: build [clean]                            #
  5. echo ####################################################
  6. rem #### CONFIG SECTION ####
  7. set LIBNAME=libck.a
  8. set INCLUDE=include
  9. set CC=D:\VSProjects\msys-kos32-4.8.2\ktcc\trunk\libc\kos32-tcc.exe
  10. set CFLAGS=-I"%cd%\%INCLUDE%" -Wall
  11. set AR=kos32-ar
  12. set ASM=fasm
  13. set dirs=.
  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.kex" -lck
  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.    for %%a in (%dirs%) do del /Q "%%a\*.kex"
  46. goto :Exit_OK
  47.  
  48. :Target_all
  49.    echo building all ...
  50.    for %%a in (%dirs%) do (
  51.       for %%f in ("%%a\*.asm") do call :Compile_Asm "%%f"
  52.       for %%f in ("%%a\*.c") do call :Compile_C "%%f"
  53.    )
  54. ::   %AR% -ru %LIBNAME% %objs%
  55. ::   if not %errorlevel%==0 goto Error_Failed
  56. goto Exit_OK
  57.  
  58. :Error_Failed
  59. echo error: execution failed
  60. pause
  61. exit 1
  62.  
  63. :Exit_OK
  64. echo ####################################################
  65. echo # All operations has been done...                  #
  66. echo ####################################################
  67. pause
  68. exit 0