:: set %1 to %2 with stripped quotes
_set_noquotes set %1=%2^if %@substr["%2.",0,2] == "" set %1=%@substr["%2",2,%@eval[%@len["%2"] - 4]]
 
::: Check for being non-dynamic...
_lib2static ((emxomfnm %1 | grep -q [a-zA-Z0-9]) && cp %1 %@name[%1]-static.%@ext[%1])
_libs2static for %%l in (%&) do _lib2static %l
::: Syntax: 1:defname 2:dllname 3:description 4:vendor 5:version 6:subversion
_make_def _set_noquotes __desc %3^echo LIBRARY '%2' INITINSTANCE TERMINSTANCE > %1 && echo DESCRIPTION '@#%4:%5#@##1##                         ::::%6::@@%__desc' >> %1 && echo CODE LOADONCALL >> %1 && echo DATA LOADONCALL NONSHARED MULTIPLE >> %1 && echo EXPORTS >> %1
lib2names (emxomfnm %1 | perl -lane "$F[2] =~ s/^_//; print qq($F[2])")
lib2names-static lib2names %@name[%1]-static.%@ext[%1]
::: Syntax: 1:dllbasename 2:libname
libstatic2libdll (lib2names-static %2 | perl -lne "print qq($_\t%1\t$_\t?)" > %@name[%2].imp) && emximp -o %2 %@name[%2].imp
_append_static_lib set __libs=%__libs %@name[%1]-static.%@ext[%1]
_libnames2static set __libs=^for %l in (%&) _append_static_lib %l
::: Syntax: 1:dllname 2:"description" 3:vendor 4:version 5:subversion 6:"link_args" libs
libs2dll _libs2static %7& ^ _make_def %@name[%1].def %1 %2 %3 %4 %5 ^ (for %l in (%7&) do lib2names-static %l) >> %@name[%1].def ^ _libnames2static %7& ^ _set_noquotes __args %6^gcc -Zomf -Zdll -Zmtd -o %@name[%1].dll %@name[%1].def %__libs %__args && (for %l in (%7&) do libstatic2libdll %@name[%1] %l)
