@echo off setlocal enabledelayedexpansion pushd %~dp0 ::Define as main parameters set _Args_= set _LIBs_= set LIBi= set ARGSO=-IExt\include -LExt\lib %* ::This is for the .def file also have a similar name .c file ::.a file will be larger than .def + .c ::*-uuid.c files are suitable to form libuuid.a ::w32api-3.17.2 :GetRLib for %%i in (%ARGSO%) do ( set ARG=%%i set OPT=!ARG:~0,2! if "!OPT!"=="-l" ( set LIB=!ARG:~2! set LIBi= if "!LIB!"=="uuid" ( set LIBi= lib\*uid.c ) else ( if "!LIB!"=="vfw32" ( set LIBi= lib\msvfw32.def lib\avifil32.def lib\avicap32.def ) else ( call :GetLibS ) ) if "!LIBi!"=="" ( set _Args_=!_Args_! %%i ) else ( set LIBi=!LIBi:%~dp0=! set _LIBs_=!_LIBs_! !LIBi! echo For lib !LIB! will use: echo !LIBi! echo. ) ) else ( set _Args_=!_Args_! %%i ) ) ::GetRLib End popd tcc.exe !_Args_! !_LIBs_! exit /b :::::::::: :GetLibS for %%D in (-Llib %ARGSO%) do ( set ARG_=%%D set OPT_=!ARG_:~0,2! set LIBD= if "!OPT_!"=="-L" ( set LIBD=!ARG_:~2! if exist "!LIBD!" call :GetDLib ) ) set LIBD= set OPT_= set ARG_= exit /b ::GetLibD End :GetDLib pushd !LIBD! for /f "usebackq delims=" %%I in (`"dir /b /s !LIB!.c !LIB!_*.c !LIB!.def !LIB!_*.def 2>nul"`) do ( set LIBi=!LIBi! "%%I" ) popd exit /b ::GetDLib End