aboutsummaryrefslogtreecommitdiff
path: root/win32/_parseLibs.bat
diff options
context:
space:
mode:
authorYX Hao <lifenjoiner@163.com>2013-09-19 21:50:38 +0800
committerYX Hao <lifenjoiner@163.com>2013-09-19 21:50:38 +0800
commit642b6d0f50c6b6a842c9239a102fe34d5619e931 (patch)
tree60ca755ef6d92565ce21a9d4ca9baf8ebd146a0a /win32/_parseLibs.bat
parent76cb1144ef91924c53c57ea71e6f67ce73ce1cc6 (diff)
downloadtinycc-642b6d0f50c6b6a842c9239a102fe34d5619e931.tar.gz
tinycc-642b6d0f50c6b6a842c9239a102fe34d5619e931.tar.bz2
Add the possibility to use noname functions by ordinal
tcc.c: process.h:177:20: note: expected 'char * const*' but argument is of type 'char const*const*' tccpe.c: Add the possibility to use noname functions by ordinal. use def file: "AliasName @n" build-tcc.bat: 1. Enable 32 bits mode on 64 bits OS. 2. build doc. _parseLibs.bat: Convenient to use "*.def + *.c" instead of *.a, just use -l* _tcc.bat: a practice of _parseLibs.bat Signed-off-by: YX Hao <lifenjoiner@163.com>
Diffstat (limited to 'win32/_parseLibs.bat')
-rw-r--r--win32/_parseLibs.bat79
1 files changed, 79 insertions, 0 deletions
diff --git a/win32/_parseLibs.bat b/win32/_parseLibs.bat
new file mode 100644
index 0000000..19e8e64
--- /dev/null
+++ b/win32/_parseLibs.bat
@@ -0,0 +1,79 @@
+@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