diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 7aa0ed3fd9..311db234b3 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,42 @@ 2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2009-03-17 17:05 UTC+0100 Viktor Szakats (harbour.01 syenar hu) + * bin/hb-mkdyn.sh + * bin/hb-mkdyn.bat + * source/vm/maindllp.c + * utils/hbmk2/hbmk2.prg + + Renamed all Windows Harbour .dlls to harbour-11.dll and + harbourmt-11.dll. This means that MinGW will now have a versioned + name to be in sync with other builds. It also means that + -vc, -pocc, -ow postfixes are gone (and additionally DMC + could also be supported). What remains is -x64 to + signal an x64 and -ia64 to signal a IA64 build. Another thing + which remains is -b32 (now renamed to -bcc to be in sync with + rest of Harbour), because Borland has an non-standard + name mangling, and while it can be made work with other + compilers since the calling convention is the same, it requires + the .dll user applications to be rebuilt with some implib tricks. + Overall Borland isn't recommended for .dll creation. + Please do further tests for binary compatibility. + + ; TOFIX: Location of .dll still differs for mingw/cygwin, they + are created in lib while rest of compilers create it in + bin. I think we should sync them by creating a copy + of the .dlls in bin for mingw/cygwin. Przemek, could + you help here? + ; TOFIX: "Making ..." screen messages. I'll need some + help here also. + + * bin/hb-mkdyn.sh + * ${MAJOR} default set to 1. + + * make_gnu_os2.cmd + * Minor formatting. + + * contrib/hbgd/gdwrp.c + ! Minor correction to recent change. (avoiding warning for MinGW) + 2009-03-17 16:14 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/tests/speedtst.prg + added new tests of dynamic code blocks performance diff --git a/harbour/bin/hb-mkdyn.bat b/harbour/bin/hb-mkdyn.bat index 75e0ddfa8c..2c0363c2a8 100644 --- a/harbour/bin/hb-mkdyn.bat +++ b/harbour/bin/hb-mkdyn.bat @@ -95,12 +95,12 @@ for %%f in (%HB_DLL_LIBS_MT%) do ( ) cd .. -if "%HB_COMPILER%" == "msvc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-vc -if "%HB_COMPILER%" == "msvc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-vc -if "%HB_COMPILER%" == "msvc64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-vc-x64 -if "%HB_COMPILER%" == "msvc64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-vc-x64 -if "%HB_COMPILER%" == "msvcia64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-vc-ia64 -if "%HB_COMPILER%" == "msvcia64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-vc-ia64 +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... && 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... && link /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" @_hboneut.txt @_hbomt.txt user32.lib wsock32.lib advapi32.lib gdi32.lib @@ -217,8 +217,8 @@ for %%f in (%HB_DLL_LIBS_MT%) do ( ) cd .. -set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-b32 -set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-b32 +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 @@ -268,8 +268,8 @@ copy /b /y "%HB_LIB_INSTALL%\%HB_DLL_LIBS_MT%.lib" . > nul && wlib -q -b "%HB_DL 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%-ow -set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-ow +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 @@ -343,8 +343,8 @@ for %%f in (%HB_DLL_LIBS_MT%) do ( ) cd .. -set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-pocc -set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-pocc +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 diff --git a/harbour/bin/hb-mkdyn.sh b/harbour/bin/hb-mkdyn.sh index f9f8befaae..6bed25fde6 100755 --- a/harbour/bin/hb-mkdyn.sh +++ b/harbour/bin/hb-mkdyn.sh @@ -63,7 +63,7 @@ MINOR="${REVIS%%.*}" REVIS="${REVIS#${MINOR}}" REVIS="${REVIS#.}" REVIS="${REVIS%%.*}" -[ -n "${MAJOR}" ] || MAJOR=0 +[ -n "${MAJOR}" ] || MAJOR=1 [ -n "${MINOR}" ] || MINOR=1 [ -n "${REVIS}" ] || REVIS=0 VERSION="${MAJOR}.${MINOR}.${REVIS}" @@ -131,7 +131,7 @@ if [ "${SLIB_EXT}" = ".dylib" ]; then ln -sf "${FULLNAME}" "${DSTDIR}${BASE}.${MAJOR}${SLIB_EXT}" && \ ln -sf "${FULLNAME}" "${DSTDIR}${BASE}${SLIB_EXT}" elif [ "${SLIB_EXT}" = ".dll" ]; then - FULLNAME="${LIB_NAME}${SLIB_EXT}" + FULLNAME="${LIB_NAME}-${MAJOR}${MINOR}${SLIB_EXT}" if [ "$HB_COMPILER" = "mingwce" ]; then SYSLIBS=" -lwininet -lws2" else diff --git a/harbour/contrib/hbgd/gdwrp.c b/harbour/contrib/hbgd/gdwrp.c index a882b428af..46689b1493 100644 --- a/harbour/contrib/hbgd/gdwrp.c +++ b/harbour/contrib/hbgd/gdwrp.c @@ -57,8 +57,12 @@ /* NOTE: Do some initialization required by the GD headers. */ #if defined(HB_OS_WIN) - #define WIN32 - #define BGDWIN32 + #if !defined(WIN32) + #define WIN32 + #endif + #if !defined(BGDWIN32) + #define BGDWIN32 + #endif #endif #ifdef HAVE_CONFIG_H diff --git a/harbour/make_gnu_os2.cmd b/harbour/make_gnu_os2.cmd index fcc58441eb..734d48f014 100644 --- a/harbour/make_gnu_os2.cmd +++ b/harbour/make_gnu_os2.cmd @@ -36,13 +36,13 @@ rem compiler option for the define and either the LIBRARY_PATH or rem the -L compiler/linker option for the library. rem For building Harbour you can also use HB_USER_LDFLAGS environment variable, rem f.e. -rem SET HB_USER_LDFLAGS=-Le:\usr\lib\tcpipv4 +rem set HB_USER_LDFLAGS=-Le:\usr\lib\tcpipv4 rem rem If you are using newer OS2 version with tcp/ip stack >= 4.1 rem (eComStation, for example) and you do not need backward binary rem compatibility then you can disable it by setting HB_OS2_TCP32 rem environment variable, f.e. -rem SET HB_OS2_TCP32=yes +rem set HB_OS2_TCP32=yes if "%HB_OS2_TCP32%" == "yes" goto tcp32 if "%HB_OS2_TCP32%" == "YES" goto tcp32 diff --git a/harbour/source/vm/maindllp.c b/harbour/source/vm/maindllp.c index 945d89a445..fa9eff8a7d 100644 --- a/harbour/source/vm/maindllp.c +++ b/harbour/source/vm/maindllp.c @@ -59,19 +59,20 @@ #include "hbtypes.h" -#define HB_DLL_NAME "harbour.dll" +#define HB_DLL_NAME "harbour.dll" +#define HB_DLL_NAMEMT "harbourmt.dll" #if defined( __BORLANDC__ ) - #define HB_DLL_NAME2 "harbour-11-b32.dll" -#if defined( __POCC__ ) - #define HB_DLL_NAME2 "harbour-11-pocc.dll" -#elif defined( __WATCOMC__ ) - #define HB_DLL_NAME2 "harbour-11-ow.dll" + #define HB_DLL_NAME2 "harbour-11-bcc.dll" + #define HB_DLL_NAMEMT2 "harbourmt-11-bcc.dll" #elif defined( _MSC_VER ) && defined( _M_X64 ) - #define HB_DLL_NAME2 "harbour-11-vc-x64.dll" + #define HB_DLL_NAME2 "harbour-11-x64.dll" + #define HB_DLL_NAMEMT2 "harbourmt-11-x64.dll" #elif defined( _MSC_VER ) && defined( _M_IA64 ) - #define HB_DLL_NAME2 "harbour-11-vc-ia64.dll" -#elif defined( _MSC_VER ) - #define HB_DLL_NAME2 "harbour-11-vc.dll" + #define HB_DLL_NAME2 "harbour-11-ia64.dll" + #define HB_DLL_NAMEMT2 "harbourmt-11-ia64.dll" +#else + #define HB_DLL_NAME2 "harbour-11.dll" + #define HB_DLL_NAMEMT2 "harbourmt-11.dll" #endif #if defined(HB_OS_WIN) diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index bd277559e8..17ecb6b8c4 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -1309,7 +1309,8 @@ FUNCTION Main( ... ) s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "user32", "winspool", "gdi32", "comctl32", "comdlg32", "ole32", "oleaut32", "uuid", "wsock32", "ws2_32" } ) ENDIF ENDIF - s_aLIBSHARED := { iif( s_lMT, "harbourmt", "harbour" ) } + s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter,; + "harbour-" + cDL_Version_Alter ) } IF s_lFMSTAT != NIL .AND. s_lFMSTAT AAdd( s_aLIBFM, iif( s_lMT, "hbfmmt", "hbfm" ) ) @@ -1453,8 +1454,8 @@ FUNCTION Main( ... ) AAdd( s_aOPTL, "OP MAP" ) ENDIF s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "kernel32", "user32", "wsock32" } ) - s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter + "-ow",; - "harbour-" + cDL_Version_Alter + "-ow" ),; + s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter,; + "harbour-" + cDL_Version_Alter ),; "hbmainstd",; "hbmainwin" } @@ -1579,8 +1580,8 @@ FUNCTION Main( ... ) IF s_lSHARED AAdd( s_aLIBPATH, "{DB}" ) ENDIF - s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter + "-b32",; - "harbour-" + cDL_Version_Alter + "-b32" ),; + s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter + "-bcc",; + "harbour-" + cDL_Version_Alter + "-bcc" ),; "hbmainstd",; "hbmainwin" } @@ -1635,18 +1636,18 @@ FUNCTION Main( ... ) s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "user32", "wsock32", "advapi32", "gdi32" } ) DO CASE CASE t_cCOMP $ "msvc|icc" - s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter + "-vc",; - "harbour-" + cDL_Version_Alter + "-vc" ),; + s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter,; + "harbour-" + cDL_Version_Alter ),; "hbmainstd",; "hbmainwin" } CASE t_cCOMP == "msvc64" - s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter + "-vc-x64",; - "harbour-" + cDL_Version_Alter + "-vc-x64" ),; + s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter + "-x64",; + "harbour-" + cDL_Version_Alter + "-x64" ),; "hbmainstd",; "hbmainwin" } CASE t_cCOMP == "msvcia64" - s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter + "-vc-ia64",; - "harbour-" + cDL_Version_Alter + "-vc-ia64" ),; + s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter + "-ia64",; + "harbour-" + cDL_Version_Alter + "-ia64" ),; "hbmainstd",; "hbmainwin" } ENDCASE @@ -1718,8 +1719,8 @@ FUNCTION Main( ... ) AAdd( s_aOPTL, "/debug" ) ENDIF s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "kernel32", "user32", "wsock32", "advapi32", "gdi32" } ) - s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter + "-pocc",; - "harbour-" + cDL_Version_Alter + "-pocc" ),; + s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter,; + "harbour-" + cDL_Version_Alter ),; "hbmainstd",; "hbmainwin" }