2009-03-18 19:59 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/bin/hb-mkdyn.bat
  * harbour/config/linux/icc.cf
  * harbour/contrib/xhb/xhbcls.ch
  * harbour/contrib/hbblat/tests/f_listtext.txt
  * harbour/contrib/hbblat/tests/f_sample.txt
  * harbour/contrib/hbblat/tests/f_ps.txt
  * harbour/contrib/hbblat/tests/f_sample1.txt
  * harbour/contrib/hbblat/tests/blattest.prg
  * harbour/contrib/hbblat/tests/f_subjectline.txt
  * harbour/contrib/hbblat/tests/blatcmd.prg
  * harbour/contrib/hbblat/syntax.txt
  * harbour/contrib/hbblat/hbblat.ch
  * harbour/contrib/hbblat/blatcls.prg
  * harbour/contrib/hbblat/blatwrp.c
  * harbour/contrib/hbblat/Makefile
  * harbour/contrib/examples/uhttpd/session.prg
  * harbour/tests/ac_test2.prg
  * harbour/tests/gtxfnt.prg
    * updated SVN attributes

  * harbour/tests/speedtst.prg
    * use chr(13)+chr(10) as EOL in outstd() in Clipper and XPP builds.

  * harbour/source/compiler/genc.c
    ! fixed one printf modifier

  * harbour/source/compiler/gencc.c
  * harbour/include/hbcompdf.h
    % do not call hb_xvmExitProc() if hb_xvmEndProc() was not executed
      inside function compiled by -gc3
This commit is contained in:
Przemyslaw Czerpak
2009-03-18 18:54:17 +00:00
parent 0020046c28
commit e61276d63e
6 changed files with 433 additions and 391 deletions

View File

@@ -8,6 +8,38 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-03-18 19:59 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-mkdyn.bat
* harbour/config/linux/icc.cf
* harbour/contrib/xhb/xhbcls.ch
* harbour/contrib/hbblat/tests/f_listtext.txt
* harbour/contrib/hbblat/tests/f_sample.txt
* harbour/contrib/hbblat/tests/f_ps.txt
* harbour/contrib/hbblat/tests/f_sample1.txt
* harbour/contrib/hbblat/tests/blattest.prg
* harbour/contrib/hbblat/tests/f_subjectline.txt
* harbour/contrib/hbblat/tests/blatcmd.prg
* harbour/contrib/hbblat/syntax.txt
* harbour/contrib/hbblat/hbblat.ch
* harbour/contrib/hbblat/blatcls.prg
* harbour/contrib/hbblat/blatwrp.c
* harbour/contrib/hbblat/Makefile
* harbour/contrib/examples/uhttpd/session.prg
* harbour/tests/ac_test2.prg
* harbour/tests/gtxfnt.prg
* updated SVN attributes
* harbour/tests/speedtst.prg
* use chr(13)+chr(10) as EOL in outstd() in Clipper and XPP builds.
* harbour/source/compiler/genc.c
! fixed one printf modifier
* harbour/source/compiler/gencc.c
* harbour/include/hbcompdf.h
% do not call hb_xvmExitProc() if hb_xvmEndProc() was not executed
inside function compiled by -gc3
2009-03-18 15:11 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/hb-mkdyn.bat
+ Added .dll generation support for win/icc.

View File

@@ -1,385 +1,385 @@
@rem
@rem $Id$
@rem
@echo off
rem ---------------------------------------------------------------
rem Copyright 2009 Viktor Szakats (harbour.01 syenar.hu)
rem See doc/license.txt for licensing terms.
rem ---------------------------------------------------------------
rem NOTE: .prg files have to be compiled with -n1
rem NOTE: .c files have to be compiled with -DHB_DYNLIB
if not "%OS%" == "Windows_NT" ( echo This script needs Windows NT or newer. && goto END )
if "%HB_ARCHITECTURE%" == "" ( echo HB_ARCHITECTURE needs to be set. && goto END )
if "%HB_COMPILER%" == "" ( echo HB_COMPILER needs to be set. && goto END )
if not "%HB_ARCHITECTURE%" == "win" goto END
set HB_DLL_VERSION=11
set HB_DLL_LIBS=hbcommon hbpp hbrtl hbmacro hblang hbcpage hbpcre hbzlib hbextern hbrdd rddntx rddnsx rddcdx rddfpt hbsix hbhsx hbusrrdd gtcgi gtpca gtstd gtwin gtwvt gtgui hbmaindllh
set HB_DLL_LIBS_ST=hbvm
set HB_DLL_LIBS_MT=hbvmmt
if "%HB_COMPILER%" == "icc" goto DO_MSVC
if "%HB_COMPILER%" == "msvc" goto DO_MSVC
if "%HB_COMPILER%" == "msvc64" goto DO_MSVC
if "%HB_COMPILER%" == "msvcia64" goto DO_MSVC
if "%HB_COMPILER%" == "bcc" goto DO_BCC
if "%HB_COMPILER%" == "owatcom" goto DO_OWATCOM
if "%HB_COMPILER%" == "pocc" goto DO_POCC
echo HB_COMPILER %HB_COMPILER% isn't supported.
goto END
:DO_MSVC
echo Making .dlls for %HB_COMPILER%...
md _dll
cd _dll
if "%HB_COMPILER%" == "icc" set _BIN_LIB=xilib
if not "%HB_COMPILER%" == "icc" set _BIN_LIB=lib
if "%HB_COMPILER%" == "icc" set _BIN_LINK=xilink
if not "%HB_COMPILER%" == "icc" set _BIN_LINK=link
rem ; Extract neutral objects
echo.> _hboneut.txt
for %%f in (%HB_DLL_LIBS%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /list > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /extract:%%p /out:%%p
echo %%p>> _hboneut.txt
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
md _st
cd _st
rem ; Extract ST objects
echo.> ..\_hbost.txt
for %%f in (%HB_DLL_LIBS_ST%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /list > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /extract:%%p /out:%%p
echo _st\%%p>> ..\_hbost.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
md _mt
cd _mt
rem ; Extract MT objects
echo.> ..\_hbomt.txt
for %%f in (%HB_DLL_LIBS_MT%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /list > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /extract:%%p /out:%%p
echo _mt\%%p>> ..\_hbomt.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
if "%HB_COMPILER%" == "icc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "icc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "msvc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "msvc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "msvc64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-x64
if "%HB_COMPILER%" == "msvc64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-x64
if "%HB_COMPILER%" == "msvcia64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-ia64
if "%HB_COMPILER%" == "msvcia64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-ia64
echo Making %_DST_NAME_ST%.dll... && %_BIN_LINK% /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" @_hboneut.txt @_hbost.txt user32.lib wsock32.lib advapi32.lib gdi32.lib
echo Making %_DST_NAME_MT%.dll... && %_BIN_LINK% /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" @_hboneut.txt @_hbomt.txt user32.lib wsock32.lib advapi32.lib gdi32.lib
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.exp" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.exp" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.exp"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.exp" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.exp" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.exp"
rem ; Cleanup
for /F %%o in (_hbost.txt) do ( del %%o )
del _hbost.txt
rmdir _st
for /F %%o in (_hbomt.txt) do ( del %%o )
del _hbomt.txt
rmdir _mt
for /F %%o in (_hboneut.txt) do ( del %%o )
del _hboneut.txt
cd ..
rmdir _dll
goto END
:DO_BCC
echo Making .dlls for %HB_COMPILER%...
md _dll
cd _dll
echo. c0d32.obj +> _hballst.txt
echo. c0d32.obj +> _hballmt.txt
rem ; Extract neutral objects
echo.> _hboneut.txt
for %%f in (%HB_DLL_LIBS%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
tlib "%HB_LIB_INSTALL%\%%f.lib", _hboraw.txt > nul
echo.> _hboraw2.txt
for /F "tokens=1,2" %%f in (_hboraw.txt) do (
if "%%g" == "size" (
echo %%f.obj >> _hboraw2.txt
)
)
del _hboraw.txt
for /F %%p in (_hboraw2.txt) do (
tlib "%HB_LIB_INSTALL%\%%f.lib" * %%p > nul
echo %%p +>> _hballst.txt
echo %%p +>> _hballmt.txt
echo %%p>> _hboneut.txt
)
del _hboraw2.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
md _st
cd _st
rem ; Extract ST objects
echo.> ..\_hbost.txt
for %%f in (%HB_DLL_LIBS_ST%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
tlib "%HB_LIB_INSTALL%\%%f.lib", _hboraw.txt > nul
echo.> _hboraw2.txt
for /F "tokens=1,2" %%f in (_hboraw.txt) do (
if "%%g" == "size" (
echo %%f.obj >> _hboraw2.txt
)
)
del _hboraw.txt
for /F %%p in (_hboraw2.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
tlib "%HB_LIB_INSTALL%\%%f.lib" * %%p > nul
echo _st\%%p +>> ..\_hballst.txt
echo _st\%%p>> ..\_hbost.txt
)
)
)
del _hboraw2.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
md _mt
cd _mt
rem ; Extract MT objects
echo.> ..\_hbomt.txt
for %%f in (%HB_DLL_LIBS_MT%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
tlib "%HB_LIB_INSTALL%\%%f.lib", _hboraw.txt > nul
echo.> _hboraw2.txt
for /F "tokens=1,2" %%f in (_hboraw.txt) do (
if "%%g" == "size" (
echo %%f.obj >> _hboraw2.txt
)
)
del _hboraw.txt
for /F %%p in (_hboraw2.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
tlib "%HB_LIB_INSTALL%\%%f.lib" * %%p > nul
echo _mt\%%p +>> ..\_hballmt.txt
echo _mt\%%p>> ..\_hbomt.txt
)
)
)
del _hboraw2.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-bcc
set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-bcc
echo. , "%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll",, cw32mt.lib import32.lib >> _hballst.txt
echo. , "%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll",, cw32mt.lib import32.lib >> _hballmt.txt
echo Making %_DST_NAME_ST%.dll... && ilink32 -q -Gn -C -aa -Tpd -Gi -x c0d32.obj @_hballst.txt
echo Making %_DST_NAME_MT%.dll... && ilink32 -q -Gn -C -aa -Tpd -Gi -x c0d32.obj @_hballmt.txt
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
del _hballst.txt
del _hballmt.txt
rem ; Cleanup
for /F %%o in (_hbost.txt) do ( del %%o )
del _hbost.txt
rmdir _st
for /F %%o in (_hbomt.txt) do ( del %%o )
del _hbomt.txt
rmdir _mt
for /F %%o in (_hboneut.txt) do ( del %%o )
del _hboneut.txt
cd ..
rmdir _dll
goto END
:DO_OWATCOM
echo Making .dlls for %HB_COMPILER%...
md _dll
cd _dll
echo.> _hbsst.txt
echo.> _hbsmt.txt
for %%f in (%HB_DLL_LIBS%) do (
echo FILE '%HB_LIB_INSTALL%\%%f.lib'>> _hbsst.txt
echo FILE '%HB_LIB_INSTALL%\%%f.lib'>> _hbsmt.txt
)
copy /b /y "%HB_LIB_INSTALL%\%HB_DLL_LIBS_ST%.lib" . > nul && wlib -q -b "%HB_DLL_LIBS_ST%.lib" - mainwin.obj
copy /b /y "%HB_LIB_INSTALL%\%HB_DLL_LIBS_MT%.lib" . > nul && wlib -q -b "%HB_DLL_LIBS_MT%.lib" - mainwin.obj
echo FILE '%HB_DLL_LIBS_ST%.lib'>> _hbsst.txt
echo FILE '%HB_DLL_LIBS_MT%.lib'>> _hbsmt.txt
set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
echo Making %_DST_NAME_ST%.dll... && wlink OP QUIET SYS NT_DLL OP IMPLIB NAME '%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll' @_hbsst.txt LIB user32.lib, wsock32.lib, advapi32.lib, gdi32.lib
echo Making %_DST_NAME_MT%.dll... && wlink OP QUIET SYS NT_DLL OP IMPLIB NAME '%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll' @_hbsmt.txt LIB user32.lib, wsock32.lib, advapi32.lib, gdi32.lib
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
del %HB_DLL_LIBS_ST%.lib
del %HB_DLL_LIBS_MT%.lib
del _hbsst.txt
del _hbsmt.txt
cd ..
rmdir _dll
goto END
:DO_POCC
echo Making .dlls for %HB_COMPILER%...
md _dll
cd _dll
rem ; Extract neutral objects
echo.> _hboneut.txt
for %%f in (%HB_DLL_LIBS%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
polib "%HB_LIB_INSTALL%\%%f.lib" /list /explode >> _hboneut.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
md _st
cd _st
rem ; Extract ST objects
echo.> ..\_hbost.txt
for %%f in (%HB_DLL_LIBS_ST%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
polib "%HB_LIB_INSTALL%\%%f.lib" /list /explode > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
echo _st\%%p>> ..\_hbost.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
md _mt
cd _mt
rem ; Extract MT objects
echo.> ..\_hbomt.txt
for %%f in (%HB_DLL_LIBS_MT%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
polib "%HB_LIB_INSTALL%\%%f.lib" /list /explode > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
echo _mt\%%p>> ..\_hbomt.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
echo Making %_DST_NAME_ST%.dll... && polink /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" @_hboneut.txt @_hbost.txt user32.lib wsock32.lib advapi32.lib gdi32.lib
echo Making %_DST_NAME_MT%.dll... && polink /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" @_hboneut.txt @_hbomt.txt user32.lib wsock32.lib advapi32.lib gdi32.lib
polib "%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" /out:"%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
polib "%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" /out:"%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
rem ; Cleanup
for /F %%o in (_hbost.txt) do ( del %%o )
if exist _st\maindll.obj del _st\maindll.obj
if exist _st\maindllp.obj del _st\maindllp.obj
del _hbost.txt
rmdir _st
for /F %%o in (_hbomt.txt) do ( del %%o )
if exist _mt\maindll.obj del _mt\maindll.obj
if exist _mt\maindllp.obj del _mt\maindllp.obj
del _hbomt.txt
rmdir _mt
for /F %%o in (_hboneut.txt) do ( del %%o )
del _hboneut.txt
cd ..
rmdir _dll
goto END
:END
endlocal
@rem
@rem $Id$
@rem
@echo off
rem ---------------------------------------------------------------
rem Copyright 2009 Viktor Szakats (harbour.01 syenar.hu)
rem See doc/license.txt for licensing terms.
rem ---------------------------------------------------------------
rem NOTE: .prg files have to be compiled with -n1
rem NOTE: .c files have to be compiled with -DHB_DYNLIB
if not "%OS%" == "Windows_NT" ( echo This script needs Windows NT or newer. && goto END )
if "%HB_ARCHITECTURE%" == "" ( echo HB_ARCHITECTURE needs to be set. && goto END )
if "%HB_COMPILER%" == "" ( echo HB_COMPILER needs to be set. && goto END )
if not "%HB_ARCHITECTURE%" == "win" goto END
set HB_DLL_VERSION=11
set HB_DLL_LIBS=hbcommon hbpp hbrtl hbmacro hblang hbcpage hbpcre hbzlib hbextern hbrdd rddntx rddnsx rddcdx rddfpt hbsix hbhsx hbusrrdd gtcgi gtpca gtstd gtwin gtwvt gtgui hbmaindllh
set HB_DLL_LIBS_ST=hbvm
set HB_DLL_LIBS_MT=hbvmmt
if "%HB_COMPILER%" == "icc" goto DO_MSVC
if "%HB_COMPILER%" == "msvc" goto DO_MSVC
if "%HB_COMPILER%" == "msvc64" goto DO_MSVC
if "%HB_COMPILER%" == "msvcia64" goto DO_MSVC
if "%HB_COMPILER%" == "bcc" goto DO_BCC
if "%HB_COMPILER%" == "owatcom" goto DO_OWATCOM
if "%HB_COMPILER%" == "pocc" goto DO_POCC
echo HB_COMPILER %HB_COMPILER% isn't supported.
goto END
:DO_MSVC
echo Making .dlls for %HB_COMPILER%...
md _dll
cd _dll
if "%HB_COMPILER%" == "icc" set _BIN_LIB=xilib
if not "%HB_COMPILER%" == "icc" set _BIN_LIB=lib
if "%HB_COMPILER%" == "icc" set _BIN_LINK=xilink
if not "%HB_COMPILER%" == "icc" set _BIN_LINK=link
rem ; Extract neutral objects
echo.> _hboneut.txt
for %%f in (%HB_DLL_LIBS%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /list > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /extract:%%p /out:%%p
echo %%p>> _hboneut.txt
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
md _st
cd _st
rem ; Extract ST objects
echo.> ..\_hbost.txt
for %%f in (%HB_DLL_LIBS_ST%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /list > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /extract:%%p /out:%%p
echo _st\%%p>> ..\_hbost.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
md _mt
cd _mt
rem ; Extract MT objects
echo.> ..\_hbomt.txt
for %%f in (%HB_DLL_LIBS_MT%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /list > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /extract:%%p /out:%%p
echo _mt\%%p>> ..\_hbomt.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
if "%HB_COMPILER%" == "icc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "icc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "msvc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "msvc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "msvc64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-x64
if "%HB_COMPILER%" == "msvc64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-x64
if "%HB_COMPILER%" == "msvcia64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-ia64
if "%HB_COMPILER%" == "msvcia64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-ia64
echo Making %_DST_NAME_ST%.dll... && %_BIN_LINK% /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" @_hboneut.txt @_hbost.txt user32.lib wsock32.lib advapi32.lib gdi32.lib
echo Making %_DST_NAME_MT%.dll... && %_BIN_LINK% /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" @_hboneut.txt @_hbomt.txt user32.lib wsock32.lib advapi32.lib gdi32.lib
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.exp" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.exp" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.exp"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.exp" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.exp" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.exp"
rem ; Cleanup
for /F %%o in (_hbost.txt) do ( del %%o )
del _hbost.txt
rmdir _st
for /F %%o in (_hbomt.txt) do ( del %%o )
del _hbomt.txt
rmdir _mt
for /F %%o in (_hboneut.txt) do ( del %%o )
del _hboneut.txt
cd ..
rmdir _dll
goto END
:DO_BCC
echo Making .dlls for %HB_COMPILER%...
md _dll
cd _dll
echo. c0d32.obj +> _hballst.txt
echo. c0d32.obj +> _hballmt.txt
rem ; Extract neutral objects
echo.> _hboneut.txt
for %%f in (%HB_DLL_LIBS%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
tlib "%HB_LIB_INSTALL%\%%f.lib", _hboraw.txt > nul
echo.> _hboraw2.txt
for /F "tokens=1,2" %%f in (_hboraw.txt) do (
if "%%g" == "size" (
echo %%f.obj >> _hboraw2.txt
)
)
del _hboraw.txt
for /F %%p in (_hboraw2.txt) do (
tlib "%HB_LIB_INSTALL%\%%f.lib" * %%p > nul
echo %%p +>> _hballst.txt
echo %%p +>> _hballmt.txt
echo %%p>> _hboneut.txt
)
del _hboraw2.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
md _st
cd _st
rem ; Extract ST objects
echo.> ..\_hbost.txt
for %%f in (%HB_DLL_LIBS_ST%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
tlib "%HB_LIB_INSTALL%\%%f.lib", _hboraw.txt > nul
echo.> _hboraw2.txt
for /F "tokens=1,2" %%f in (_hboraw.txt) do (
if "%%g" == "size" (
echo %%f.obj >> _hboraw2.txt
)
)
del _hboraw.txt
for /F %%p in (_hboraw2.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
tlib "%HB_LIB_INSTALL%\%%f.lib" * %%p > nul
echo _st\%%p +>> ..\_hballst.txt
echo _st\%%p>> ..\_hbost.txt
)
)
)
del _hboraw2.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
md _mt
cd _mt
rem ; Extract MT objects
echo.> ..\_hbomt.txt
for %%f in (%HB_DLL_LIBS_MT%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
tlib "%HB_LIB_INSTALL%\%%f.lib", _hboraw.txt > nul
echo.> _hboraw2.txt
for /F "tokens=1,2" %%f in (_hboraw.txt) do (
if "%%g" == "size" (
echo %%f.obj >> _hboraw2.txt
)
)
del _hboraw.txt
for /F %%p in (_hboraw2.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
tlib "%HB_LIB_INSTALL%\%%f.lib" * %%p > nul
echo _mt\%%p +>> ..\_hballmt.txt
echo _mt\%%p>> ..\_hbomt.txt
)
)
)
del _hboraw2.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-bcc
set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-bcc
echo. , "%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll",, cw32mt.lib import32.lib >> _hballst.txt
echo. , "%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll",, cw32mt.lib import32.lib >> _hballmt.txt
echo Making %_DST_NAME_ST%.dll... && ilink32 -q -Gn -C -aa -Tpd -Gi -x c0d32.obj @_hballst.txt
echo Making %_DST_NAME_MT%.dll... && ilink32 -q -Gn -C -aa -Tpd -Gi -x c0d32.obj @_hballmt.txt
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
del _hballst.txt
del _hballmt.txt
rem ; Cleanup
for /F %%o in (_hbost.txt) do ( del %%o )
del _hbost.txt
rmdir _st
for /F %%o in (_hbomt.txt) do ( del %%o )
del _hbomt.txt
rmdir _mt
for /F %%o in (_hboneut.txt) do ( del %%o )
del _hboneut.txt
cd ..
rmdir _dll
goto END
:DO_OWATCOM
echo Making .dlls for %HB_COMPILER%...
md _dll
cd _dll
echo.> _hbsst.txt
echo.> _hbsmt.txt
for %%f in (%HB_DLL_LIBS%) do (
echo FILE '%HB_LIB_INSTALL%\%%f.lib'>> _hbsst.txt
echo FILE '%HB_LIB_INSTALL%\%%f.lib'>> _hbsmt.txt
)
copy /b /y "%HB_LIB_INSTALL%\%HB_DLL_LIBS_ST%.lib" . > nul && wlib -q -b "%HB_DLL_LIBS_ST%.lib" - mainwin.obj
copy /b /y "%HB_LIB_INSTALL%\%HB_DLL_LIBS_MT%.lib" . > nul && wlib -q -b "%HB_DLL_LIBS_MT%.lib" - mainwin.obj
echo FILE '%HB_DLL_LIBS_ST%.lib'>> _hbsst.txt
echo FILE '%HB_DLL_LIBS_MT%.lib'>> _hbsmt.txt
set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
echo Making %_DST_NAME_ST%.dll... && wlink OP QUIET SYS NT_DLL OP IMPLIB NAME '%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll' @_hbsst.txt LIB user32.lib, wsock32.lib, advapi32.lib, gdi32.lib
echo Making %_DST_NAME_MT%.dll... && wlink OP QUIET SYS NT_DLL OP IMPLIB NAME '%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll' @_hbsmt.txt LIB user32.lib, wsock32.lib, advapi32.lib, gdi32.lib
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
del %HB_DLL_LIBS_ST%.lib
del %HB_DLL_LIBS_MT%.lib
del _hbsst.txt
del _hbsmt.txt
cd ..
rmdir _dll
goto END
:DO_POCC
echo Making .dlls for %HB_COMPILER%...
md _dll
cd _dll
rem ; Extract neutral objects
echo.> _hboneut.txt
for %%f in (%HB_DLL_LIBS%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
polib "%HB_LIB_INSTALL%\%%f.lib" /list /explode >> _hboneut.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
md _st
cd _st
rem ; Extract ST objects
echo.> ..\_hbost.txt
for %%f in (%HB_DLL_LIBS_ST%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
polib "%HB_LIB_INSTALL%\%%f.lib" /list /explode > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
echo _st\%%p>> ..\_hbost.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
md _mt
cd _mt
rem ; Extract MT objects
echo.> ..\_hbomt.txt
for %%f in (%HB_DLL_LIBS_MT%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
polib "%HB_LIB_INSTALL%\%%f.lib" /list /explode > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
echo _mt\%%p>> ..\_hbomt.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
echo Making %_DST_NAME_ST%.dll... && polink /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" @_hboneut.txt @_hbost.txt user32.lib wsock32.lib advapi32.lib gdi32.lib
echo Making %_DST_NAME_MT%.dll... && polink /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" @_hboneut.txt @_hbomt.txt user32.lib wsock32.lib advapi32.lib gdi32.lib
polib "%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" /out:"%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
polib "%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" /out:"%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
rem ; Cleanup
for /F %%o in (_hbost.txt) do ( del %%o )
if exist _st\maindll.obj del _st\maindll.obj
if exist _st\maindllp.obj del _st\maindllp.obj
del _hbost.txt
rmdir _st
for /F %%o in (_hbomt.txt) do ( del %%o )
if exist _mt\maindll.obj del _mt\maindll.obj
if exist _mt\maindllp.obj del _mt\maindllp.obj
del _hbomt.txt
rmdir _mt
for /F %%o in (_hboneut.txt) do ( del %%o )
del _hboneut.txt
cd ..
rmdir _dll
goto END
:END
endlocal

View File

@@ -508,6 +508,7 @@ typedef struct _HB_LABEL_INFO
BOOL fVerbose;
BOOL fSetSeqBegin;
BOOL fCondJump;
BOOL fEndRequest;
int iNestedBlock;
ULONG * pulLabels;
} HB_LABEL_INFO, * PHB_LABEL_INFO;

View File

@@ -1584,7 +1584,7 @@ static HB_GENC_FUNC( hb_p_pushlonglong )
if( cargo->bVerbose )
{
#ifdef HB_LONG_LONG_OFF
fprintf( cargo->yyc, "\t/* %f */", HB_PCODE_MKLONGLONG( &pFunc->pCode[ lPCodePos + 1 ] ) );
fprintf( cargo->yyc, "\t/* %lf */", HB_PCODE_MKLONGLONG( &pFunc->pCode[ lPCodePos + 1 ] ) );
#else
char szBuf[ 24 ];
fprintf( cargo->yyc, "\t/* %s */", hb_numToStr( szBuf, sizeof( szBuf ),

View File

@@ -421,7 +421,10 @@ static HB_GENC_FUNC( hb_p_endproc )
if( lPCodePos < pFunc->lPCodePos - 1 )
{
if( cargo->iNestedBlock )
{
cargo->fEndRequest = TRUE;
fprintf( cargo->yyc, "\thb_xvmEndProc();\n" );
}
fprintf( cargo->yyc, "\tbreak;\n" );
}
return 1;
@@ -2254,6 +2257,7 @@ void hb_compGenCRealCode( HB_COMP_DECL, PFUNCTION pFunc, FILE * yyc )
label_info.fVerbose = ( HB_COMP_PARAM->iGenCOutput == HB_COMPGENC_VERBOSE );
label_info.fSetSeqBegin = FALSE;
label_info.fCondJump = FALSE;
label_info.fEndRequest = FALSE;
label_info.iNestedBlock = 0;
if( pFunc->lPCodePos == 0 )
label_info.pulLabels = NULL;
@@ -2272,7 +2276,8 @@ void hb_compGenCRealCode( HB_COMP_DECL, PFUNCTION pFunc, FILE * yyc )
hb_compPCodeEval( pFunc, ( HB_PCODE_FUNC_PTR * ) pFuncTable, ( void * ) &label_info );
fprintf( yyc, " } while( 0 );\n" );
fprintf( yyc, " hb_xvmExitProc();\n" );
if( label_info.fEndRequest )
fprintf( yyc, " hb_xvmExitProc();\n" );
fprintf( yyc, "}\n" );
if( label_info.pulLabels )

View File

@@ -77,13 +77,17 @@
#command ?? <xx,...> => outstd(<xx>)
#ifdef __HARBOUR__
#define EOL hb_OSNewLine()
#ifndef EOL
#define EOL hb_OSNewLine()
#endif
#else
#ifndef __CLIP__
#xtranslate secondsCPU() => seconds()
#endif
#ifndef EOL
#define EOL chr(10)
#ifndef EOL
#define EOL chr(10)
#endif
#else
#define EOL chr(13)+chr(10)
#endif
#endif