@echo off rem #### CONFIG SECTION #### set LIBNAME=melibc.a set INCLUDE=include set CC=gcc set CFLAGS=-c -nostdinc -DGNUC -I%cd%\%INCLUDE% set AR=ar set ASM=fasm set dirs=file mem mesys string 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.o 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 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 all operations has been done... echo for cleaning run this script with param " clean" pause exit 0