@echo off
echo ####################################################
echo #           test libc builder                      #
echo #  usage: build [clean]                            #
echo ####################################################
rem #### CONFIG SECTION ####
set LIBNAME=libck.a
set INCLUDE=include
set CC=D:\VSProjects\msys-kos32-4.8.2\ktcc\trunk\libc\kos32-tcc.exe 
set CFLAGS=-I"%cd%\%INCLUDE%" -Wall
set AR=kos32-ar
set ASM=fasm
set dirs=.
rem #### END OF CONFIG SECTION ####

set objs=
set target=%1
if not "%1"=="clean" set target=all

set INCLUDE="%cd%"
call :Target_%target%

if ERRORLEVEL 0 goto Exit_OK

echo Probably at runing has been created error
echo For help send a report...
pause
goto :eof

:Compile_C
   %CC% %CFLAGS% %1 -o "%~dpn1.kex" -lck
   if not %errorlevel%==0 goto Error_Failed
   set objs=%objs% "%~dpn1.o"
goto :eof

:Compile_Asm
   %ASM% %1 "%~dpn1.o"
   if not %errorlevel%==0 goto Error_Failed
   set objs=%objs% "%~dpn1.o"
goto :eof

:Target_clean
   echo cleaning ...
   for %%a in (%dirs%) do del /Q "%%a\*.o"
   for %%a in (%dirs%) do del /Q "%%a\*.kex"
goto :Exit_OK

:Target_all
   echo building all ...
   for %%a in (%dirs%) do (
      for %%f in ("%%a\*.asm") do call :Compile_Asm "%%f"
      for %%f in ("%%a\*.c") do call :Compile_C "%%f"
   )
::   %AR% -ru %LIBNAME% %objs%
::   if not %errorlevel%==0 goto Error_Failed
goto Exit_OK

:Error_Failed
echo error: execution failed
pause
exit 1

:Exit_OK
echo ####################################################
echo # All operations has been done...                  #
echo ####################################################
pause
exit 0