2010-03-22 01:33 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
+ Added undocumented '-mkimplibms' option to allow for users
to make bcc implib happy for some .dlls (translated to
-a implib.exe option). Ugly solution, needed because bcc
chose not to follow standards.
* bin/postinst.bat
+ Some adjustments to hbmk2-based implib generation cmdlines.
+ Added exception to use static ocilibs with mingw.
* bin/postinst.bat
- bin/hb-mkimp.prg
* package/winuni/mpkg_win_uni_extra_copy.bat
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
+ Switched HB_BUILD_IMPLIB build option to use hbmk2
to create implibs instead of local solution (hb-mkimp.prg).
Note, this means that implibs will now always be
created dynamically from .dll, even when a package
offers pre-built .lib for the compiler. This will
in practice cause a change msvc and pocc compilers.
This also means that from now on it's enough to have
the .dll to create implibs.
It's also easier for users to create implibs using
hbmk2 any time, so it's possible that HB_BUILD_IMPLIB
build-time option will be deleted in the future.
; Not tested yet.
This commit is contained in:
@@ -17,6 +17,35 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2010-03-22 01:33 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ Added undocumented '-mkimplibms' option to allow for users
|
||||
to make bcc implib happy for some .dlls (translated to
|
||||
-a implib.exe option). Ugly solution, needed because bcc
|
||||
chose not to follow standards.
|
||||
|
||||
* bin/postinst.bat
|
||||
+ Some adjustments to hbmk2-based implib generation cmdlines.
|
||||
+ Added exception to use static ocilibs with mingw.
|
||||
|
||||
* bin/postinst.bat
|
||||
- bin/hb-mkimp.prg
|
||||
* package/winuni/mpkg_win_uni_extra_copy.bat
|
||||
* package/winuni/mpkg_win_uni.bat
|
||||
* package/winuni/mpkg_win_uni.nsi
|
||||
+ Switched HB_BUILD_IMPLIB build option to use hbmk2
|
||||
to create implibs instead of local solution (hb-mkimp.prg).
|
||||
Note, this means that implibs will now always be
|
||||
created dynamically from .dll, even when a package
|
||||
offers pre-built .lib for the compiler. This will
|
||||
in practice cause a change msvc and pocc compilers.
|
||||
This also means that from now on it's enough to have
|
||||
the .dll to create implibs.
|
||||
It's also easier for users to create implibs using
|
||||
hbmk2 any time, so it's possible that HB_BUILD_IMPLIB
|
||||
build-time option will be deleted in the future.
|
||||
; Not tested yet.
|
||||
|
||||
2010-03-22 01:02 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ Finishing touches to -mkimplib option:
|
||||
@@ -38,7 +67,7 @@
|
||||
for bcc and leave it off. This leaves implibs
|
||||
working for most .dlls we currently use, but will
|
||||
break some (blat, curl, cairo, pq, alleg from
|
||||
contrib).
|
||||
contrib). [DONE - with hack]
|
||||
|
||||
* config/win/xcc.mk
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
|
||||
@@ -1,206 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright 2009-2010 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* See COPYING for licensing terms.
|
||||
*
|
||||
* Create import libs for various Windows compilers
|
||||
*
|
||||
* This script requires:
|
||||
* - C compiler in PATH
|
||||
* - HB_COMPILER and HB_LIB_INSTALL envvars set
|
||||
* - HB_WITH_* envvars pointing to installed 3rd party _headers_
|
||||
*/
|
||||
|
||||
/* TOFIX: Ugly hack to avoid #include "fileio.ch" */
|
||||
#define F_ERROR ( -1 )
|
||||
|
||||
PROCEDURE Main( cCompiler, cLibDir )
|
||||
LOCAL aLibs
|
||||
LOCAL hComps
|
||||
|
||||
LOCAL lib
|
||||
LOCAL comp
|
||||
|
||||
LOCAL cBase
|
||||
LOCAL cSource
|
||||
LOCAL cTarget
|
||||
LOCAL lDone
|
||||
|
||||
IF ! hb_isString( cCompiler )
|
||||
cCompiler := GetEnv( "HB_COMPILER" )
|
||||
ENDIF
|
||||
IF ! hb_isString( cLibDir )
|
||||
cLibDir := GetEnv( "HB_LIB_INSTALL" )
|
||||
ENDIF
|
||||
|
||||
IF ! Empty( cLibDir )
|
||||
|
||||
OutStd( "! Making import libs...", hb_osNewLine() )
|
||||
|
||||
#define _L_NAME 1
|
||||
#define _L_BASE 2
|
||||
#define _L_DLL 3
|
||||
#define _L_DLLMS 4 /* Controls BCC's iditoic -a implib flag. */
|
||||
#define _L_LIBMS 5
|
||||
#define _L_LIBMS64 6
|
||||
#define _L_LIBA 7
|
||||
|
||||
aLibs := {;
|
||||
{ "ace32" , "HB_WITH_ADS" , "Redistribute\ace32.dll" , .F. , "Redistribute\ace32.lib" , , }, ;
|
||||
{ "ace32" , "HB_WITH_ADS" , "ace32.dll" , .F. , "ace32.lib" , , }, ;
|
||||
{ "ace32" , "HB_WITH_ADS" , "32bit\ace32.dll" , .F. , "32bit\ace32.lib" , , }, ;
|
||||
{ "alleg" , "HB_WITH_ALLEGRO" , "..\bin\alleg42.dll" , .T. , "..\lib\alleg.lib" , , }, ;
|
||||
{ "sde61" , "HB_WITH_APOLLO" , "..\sde61.dll" , .F. , , , }, ;
|
||||
{ "sde7" , "HB_WITH_APOLLO" , "..\sde7.dll" , .F. , , , }, ;
|
||||
{ "blat" , "HB_WITH_BLAT" , "..\blat.dll" , .T. , "..\blat.lib" , , }, ;
|
||||
{ "cairo" , "HB_WITH_CAIRO" , "..\..\bin\libcairo-2.dll" , .T. , "..\..\lib\cairo.lib" , , "..\..\lib\libcairo.dll.a" }, ;
|
||||
{ "libcurl" , "HB_WITH_CURL" , "..\libcurl.dll" , .T. , , , "..\lib\libcurl.a" }, ;
|
||||
{ "libcurl" , "HB_WITH_CURL" , "..\bin\libcurl.dll" , .T. , , , "..\lib\libcurldll.a" }, ;
|
||||
{ "fbclient" , "HB_WITH_FIREBIRD" , "..\bin\fbclient.dll" , .F. , "..\lib\fbclient_ms.lib" , , }, ;
|
||||
{ "FreeImage" , "HB_WITH_FREEIMAGE" , "..\Dist\FreeImage.dll" , .F. , "..\Dist\FreeImage.lib" , , }, ;
|
||||
{ "bgd" , "HB_WITH_GD" , "..\bin\bgd.dll" , .F. , "..\lib\bgd.lib" , , }, ;
|
||||
{ "libhpdf" , "HB_WITH_LIBHARU" , "..\libhpdf.dll" , .F. , "..\libhpdf.lib" , , }, ;
|
||||
{ "libhpdf" , "HB_WITH_LIBHARU" , "..\lib_dll\libhpdf.dll" , .F. , "..\lib_dll\libhpdf.lib" , , }, ;
|
||||
{ "libmysql" , "HB_WITH_MYSQL" , "..\bin\libmySQL.dll" , .F. , "..\lib\opt\libmySQL.lib" , , }, ;
|
||||
{ "ociliba" , "HB_WITH_OCILIB" , "..\lib32\ociliba.dll" , .F. , "..\lib32\ociliba.lib" , "..\lib64\ociliba.lib" , "..\lib32\libociliba.a" }, ;
|
||||
{ "ocilibm" , "HB_WITH_OCILIB" , "..\lib32\ocilibm.dll" , .F. , "..\lib32\ocilibm.lib" , "..\lib64\ocilibm.lib" , "..\lib32\libocilibm.a" }, ;
|
||||
{ "ocilibw" , "HB_WITH_OCILIB" , "..\lib32\ocilibw.dll" , .F. , "..\lib32\ocilibw.lib" , "..\lib64\ocilibw.lib" , "..\lib32\libocilibw.a" }, ;
|
||||
{ "libeay32" , "HB_WITH_OPENSSL" , "..\out32dll\libeay32.dll" , .T. , "..\out32dll\libeay32.lib" , , }, ;
|
||||
{ "ssleay32" , "HB_WITH_OPENSSL" , "..\out32dll\ssleay32.dll" , .T. , "..\out32dll\ssleay32.lib" , , }, ;
|
||||
{ "libeay32" , "HB_WITH_OPENSSL" , "..\dll\libeay32.dll" , .T. , "..\dll\libeay32.lib" , , }, ;
|
||||
{ "ssleay32" , "HB_WITH_OPENSSL" , "..\dll\ssleay32.dll" , .T. , "..\dll\ssleay32.lib" , , }, ;
|
||||
{ "libeay32" , "HB_WITH_OPENSSL" , "..\libeay32.dll" , .T. , "..\libeay32.lib" , , }, ;
|
||||
{ "ssleay32" , "HB_WITH_OPENSSL" , "..\ssleay32.dll" , .T. , "..\ssleay32.lib" , , }, ;
|
||||
{ "libpq" , "HB_WITH_PGSQL" , "..\lib\libpq.dll" , .T. , "..\lib\libpq.lib" , , } }
|
||||
|
||||
#define _C_LIBPREFIX 1
|
||||
#define _C_LIBEXT 2
|
||||
#define _C_PROC_DLL 3
|
||||
#define _C_PROC_LIBMS 4
|
||||
#define _C_PROC_LIBMS64 5
|
||||
#define _C_PROC_LIBA 6
|
||||
|
||||
hComps := {;
|
||||
"mingw" => { "lib", ".a" , {| s, t | hb_FCopy( s, t ) != F_ERROR }, {| s, t | hb_FCopy( s, t ) != F_ERROR }, NIL, {| s, t | hb_FCopy( s, t ) != F_ERROR } }, ;
|
||||
"mingw64" => { "lib", ".a" , {| s, t | hb_FCopy( s, t ) != F_ERROR }, NIL, {| s, t | hb_FCopy( s, t ) != F_ERROR }, {| s, t | hb_FCopy( s, t ) != F_ERROR } }, ;
|
||||
"msvc" => { "" , ".lib", {| s, t | MSVC_implib( s, t, "x86" ) }, {| s, t | hb_FCopy( s, t ) != F_ERROR }, NIL, NIL }, ;
|
||||
"msvc64" => { "" , ".lib", {| s, t | MSVC_implib( s, t, "x64" ) }, NIL, {| s, t | hb_FCopy( s, t ) != F_ERROR }, NIL }, ;
|
||||
"msvcia64" => { "" , ".lib", {| s, t | MSVC_implib( s, t, "ia86" ) }, NIL, NIL, NIL }, ;
|
||||
"msvcarm" => { "" , ".lib", {| s, t | MSVC_implib( s, t, "arm" ) }, NIL, NIL, NIL }, ;
|
||||
"xcc" => { "" , ".lib", {| s, t | hb_processRun( "xLib " + FN_Escape( s ) + " /out:" + FN_Escape( t ) ) == 0 }, {| s, t | hb_FCopy( s, t ) != F_ERROR }, NIL, NIL }, ;
|
||||
"pocc" => { "" , ".lib", {| s, t | hb_processRun( "polib " + FN_Escape( s ) + " /out:" + FN_Escape( t ) ) == 0 }, {| s, t | hb_FCopy( s, t ) != F_ERROR }, NIL, NIL }, ;
|
||||
"pocc64" => { "" , ".lib", {| s, t | hb_processRun( "polib " + FN_Escape( s ) + " /out:" + FN_Escape( t ) ) == 0 }, NIL, {| s, t | hb_FCopy( s, t ) != F_ERROR }, NIL }, ;
|
||||
"watcom" => { "" , ".lib", {| s, t | hb_processRun( "wlib -q -o=" + FN_Escape( t ) + " " + FN_Escape( s ) ) == 0 }, NIL, NIL, NIL }, ;
|
||||
"bcc" => { "" , ".lib", {| s, t, lib | hb_processRun( "implib " + iif( lib[ _L_DLLMS ], "-a", "" ) + " " + FN_Escape( t ) + " " + FN_Escape( s ) ) == 0 }, NIL, NIL, NIL } }
|
||||
|
||||
IF Lower( cCompiler ) $ hComps
|
||||
|
||||
comp := hb_HGet( hComps, Lower( cCompiler ) )
|
||||
|
||||
FOR EACH lib IN aLibs
|
||||
lDone := .F.
|
||||
cSource := ""
|
||||
IF ! Empty( cBase := GetEnv( lib[ _L_BASE ] ) )
|
||||
cTarget := DirAddPathSep( cLibDir ) + comp[ _C_LIBPREFIX ] + lib[ _L_NAME ] + comp[ _C_LIBEXT ]
|
||||
IF ! lDone .AND. ! Empty( comp[ _C_PROC_LIBA ] ) .AND. ! Empty( lib[ _L_LIBA ] )
|
||||
cSource := DirAddPathSep( cBase ) + lib[ _L_LIBA ]
|
||||
IF hb_FileExists( cSource )
|
||||
lDone := Eval( comp[ _C_PROC_LIBA ], cSource, cTarget, lib )
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF ! lDone .AND. ! Empty( comp[ _C_PROC_LIBMS64 ] ) .AND. ! Empty( lib[ _L_LIBMS64 ] )
|
||||
cSource := DirAddPathSep( cBase ) + lib[ _L_LIBMS64 ]
|
||||
IF hb_FileExists( cSource )
|
||||
lDone := Eval( comp[ _C_PROC_LIBMS64 ], cSource, cTarget, lib )
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF ! lDone .AND. ! Empty( comp[ _C_PROC_LIBMS ] ) .AND. ! Empty( lib[ _L_LIBMS ] )
|
||||
cSource := DirAddPathSep( cBase ) + lib[ _L_LIBMS ]
|
||||
IF hb_FileExists( cSource )
|
||||
lDone := Eval( comp[ _C_PROC_LIBMS ], cSource, cTarget, lib )
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF ! lDone .AND. ! Empty( comp[ _C_PROC_DLL ] ) .AND. ! Empty( lib[ _L_DLL ] )
|
||||
cSource := DirAddPathSep( cBase ) + lib[ _L_DLL ]
|
||||
IF hb_FileExists( cSource )
|
||||
lDone := Eval( comp[ _C_PROC_DLL ], cSource, cTarget, lib )
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF lDone
|
||||
OutStd( "! Import library created: " + cTarget )
|
||||
OutStd( " <= " + cSource )
|
||||
OutStd( hb_osNewLine() )
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC FUNCTION MSVC_implib( s, t, cMode )
|
||||
LOCAL lSuccess := .F.
|
||||
|
||||
LOCAL cExports
|
||||
LOCAL fhnd
|
||||
LOCAL cDef
|
||||
LOCAL cLine
|
||||
LOCAL tmp
|
||||
LOCAL aCols
|
||||
|
||||
LOCAL cFuncList
|
||||
|
||||
IF hb_processRun( "dumpbin -exports " + FN_Escape( s ),, @cExports ) == 0
|
||||
|
||||
cFuncList := "LIBRARY " + Chr( 34 ) + FN_NameExtGet( s ) + Chr( 34 ) + hb_osNewLine() +;
|
||||
"EXPORTS" + hb_osNewLine()
|
||||
|
||||
cExports := StrTran( cExports, Chr( 13 ) + Chr( 10 ), Chr( 10 ) )
|
||||
|
||||
tmp := At( "ordinal hint", cExports )
|
||||
IF tmp > 0
|
||||
cExports := SubStr( cExports, tmp + Len( "ordinal hint" ) )
|
||||
ENDIF
|
||||
|
||||
FOR EACH cLine IN hb_ATokens( cExports, Chr( 10 ) )
|
||||
IF ! Empty( cLine )
|
||||
aCols := hb_ATokens( cLine )
|
||||
IF Len( aCols ) >= 4
|
||||
cFuncList += aCols[ 4 ] + hb_osNewLine()
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
fhnd := hb_FTempCreateEx( @cDef )
|
||||
IF fhnd != F_ERROR
|
||||
FWrite( fhnd, cFuncList )
|
||||
FClose( fhnd )
|
||||
|
||||
lSuccess := ( hb_processRun( "lib -nologo -machine:" + cMode + " -def:" + FN_Escape( cDef ) + " -out:" + FN_Escape( t ) ) == 0 )
|
||||
|
||||
FErase( cDef )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN lSuccess
|
||||
|
||||
STATIC FUNCTION FN_Escape( cFileName )
|
||||
RETURN Chr( 34 ) + cFileName + Chr( 34 )
|
||||
|
||||
STATIC FUNCTION FN_NameExtGet( cFileName )
|
||||
LOCAL cName, cExt
|
||||
|
||||
hb_FNameSplit( cFileName,, @cName, @cExt )
|
||||
|
||||
RETURN hb_FNameMerge( NIL, cName, cExt )
|
||||
|
||||
STATIC FUNCTION DirAddPathSep( cDir )
|
||||
|
||||
IF ! Empty( cDir ) .AND. !( Right( cDir, 1 ) == hb_osPathSeparator() )
|
||||
cDir += hb_osPathSeparator()
|
||||
ENDIF
|
||||
|
||||
RETURN cDir
|
||||
@@ -81,34 +81,37 @@ if "%HB_SHELL%" == "nt" goto _SH_NT
|
||||
|
||||
if not "%HB_BUILD_IMPLIB%" == "yes" goto _NO_IMPLIB
|
||||
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=ace32 "%HB_WITH_ADS%\Redistribute\ace32.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=ace32 "%HB_WITH_ADS%\ace32.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=ace32 "%HB_WITH_ADS%\32bit\ace32.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=alleg "%HB_WITH_ALLEGRO%\..\bin\alleg42.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=sde61 "%HB_WITH_APOLLO%\..\sde61.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=sde7 "%HB_WITH_APOLLO%\..\sde7.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=blat "%HB_WITH_BLAT%\..\blat.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=cairo "%HB_WITH_CAIRO%\..\..\bin\libcairo-2.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=libcurl "%HB_WITH_CURL%\..\libcurl.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=libcurl "%HB_WITH_CURL%\..\bin\libcurl.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=fbclient "%HB_WITH_FIREBIRD%\..\bin\fbclient.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=FreeImage "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=bgd "%HB_WITH_GD%\..\bin\bgd.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=libhpdf "%HB_WITH_LIBHARU%\..\libhpdf.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=libhpdf "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=libmysql "%HB_WITH_MYSQL%\..\bin\libmySQL.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=ociliba "%HB_WITH_OCILIB%\..\lib32\ociliba.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=ocilibm "%HB_WITH_OCILIB%\..\lib32\ocilibm.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=ocilibw "%HB_WITH_OCILIB%\..\lib32\ocilibw.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=libeay32 "%HB_WITH_OPENSSL%\..\out32dll\libeay32.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=ssleay32 "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=libeay32 "%HB_WITH_OPENSSL%\..\dll\libeay32.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=ssleay32 "%HB_WITH_OPENSSL%\..\dll\ssleay32.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=libeay32 "%HB_WITH_OPENSSL%\..\libeay32.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=ssleay32 "%HB_WITH_OPENSSL%\..\ssleay32.dll"
|
||||
rem "%HB_HOST_BIN_DIR%\hbmk2" -mkimplib=libpq "%HB_WITH_PGSQL%..\lib\libpq.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\ace32" "%HB_WITH_ADS%\Redistribute\ace32.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\ace32" "%HB_WITH_ADS%\ace32.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\ace32" "%HB_WITH_ADS%\32bit\ace32.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\alleg" "%HB_WITH_ALLEGRO%\..\bin\alleg42.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\sde61" "%HB_WITH_APOLLO%\..\sde61.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\sde7" "%HB_WITH_APOLLO%\..\sde7.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\blat" "%HB_WITH_BLAT%\..\blat.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\cairo" "%HB_WITH_CAIRO%\..\..\bin\libcairo-2.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\libcurl" "%HB_WITH_CURL%\..\libcurl.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\libcurl" "%HB_WITH_CURL%\..\bin\libcurl.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\fbclient" "%HB_WITH_FIREBIRD%\..\bin\fbclient.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\FreeImage" "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\bgd" "%HB_WITH_GD%\..\bin\bgd.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\libhpdf" "%HB_WITH_LIBHARU%\..\libhpdf.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\libhpdf" "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\libmysql" "%HB_WITH_MYSQL%\..\bin\libmySQL.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\ociliba" "%HB_WITH_OCILIB%\..\lib32\ociliba.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\ocilibm" "%HB_WITH_OCILIB%\..\lib32\ocilibm.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\ocilibw" "%HB_WITH_OCILIB%\..\lib32\ocilibw.dll"
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\libeay32" "%HB_WITH_OPENSSL%\..\out32dll\libeay32.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\ssleay32" "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\libeay32" "%HB_WITH_OPENSSL%\..\dll\libeay32.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\ssleay32" "%HB_WITH_OPENSSL%\..\dll\ssleay32.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\libeay32" "%HB_WITH_OPENSSL%\..\libeay32.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\ssleay32" "%HB_WITH_OPENSSL%\..\ssleay32.dll" -mkimplibms
|
||||
"%HB_HOST_BIN_DIR%\hbmk2" "-mkimplib=%HB_LIB_INSTALL%\libpq" "%HB_WITH_PGSQL%..\lib\libpq.dll" -mkimplibms
|
||||
|
||||
"%HB_HOST_BIN_DIR%\hbrun" --hb:gtcgi "%~dp0hb-mkimp.prg"
|
||||
rem ; Exception: We use static libs with mingw.
|
||||
if "%HB_COMPILER%" == "mingw" copy /b /y "%HB_WITH_OCILIB%\..\lib32\libociliba.a" "%HB_LIB_INSTALL%\libociliba.a"
|
||||
if "%HB_COMPILER%" == "mingw" copy /b /y "%HB_WITH_OCILIB%\..\lib32\libocilibm.a" "%HB_LIB_INSTALL%\libocilibm.a"
|
||||
if "%HB_COMPILER%" == "mingw" copy /b /y "%HB_WITH_OCILIB%\..\lib32\libocilibw.a" "%HB_LIB_INSTALL%\libocilibw.a"
|
||||
|
||||
:_NO_IMPLIB
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@ echo "hb20\INSTALL" >> _hbfiles
|
||||
echo "hb20\COPYING" >> _hbfiles
|
||||
echo "hb20\TODO" >> _hbfiles
|
||||
echo "hb20\ChangeLog*" >> _hbfiles
|
||||
echo "hb20\bin\hb-mkimp.prg" >> _hbfiles
|
||||
echo "hb20\bin\harbour-20.dll" >> _hbfiles
|
||||
echo "hb20\bin\harbourmt-20.dll" >> _hbfiles
|
||||
echo "hb20\bin\harbour.exe" >> _hbfiles
|
||||
|
||||
@@ -106,7 +106,6 @@ Section "Main components" hb_main
|
||||
File "$%HB_ROOT%hb20\bin\hbrun.exe"
|
||||
File "$%HB_ROOT%hb20\bin\hbtest.exe"
|
||||
File "$%HB_ROOT%hb20\bin\hbformat.exe"
|
||||
File "$%HB_ROOT%hb20\bin\hb-mkimp.prg"
|
||||
File "$%HB_ROOT%hb20\bin\hbmk.cfg"
|
||||
File "$%HB_ROOT%hb20\bin\upx*.*"
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
xcopy /y RELNOTES F:\hb\hb20\
|
||||
xcopy /y /s ..\..\examples\*.* F:\hb\hb20\examples\
|
||||
xcopy /y /s ..\..\tests\*.* F:\hb\hb20\tests\
|
||||
xcopy /y ..\..\bin\hb-mkimp.prg F:\hb\hb20\bin\
|
||||
xcopy /y HARBOUR_README_ADDONS F:\hb\hb20\addons\
|
||||
xcopy /y HARBOUR_README_DJGPP F:\hb\hb20\comp\djgpp\
|
||||
xcopy /y HARBOUR_README_MINGW F:\hb\hb20\comp\mingw\
|
||||
|
||||
@@ -702,6 +702,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
LOCAL lMakeImpLib := .F.
|
||||
LOCAL cMakeImpLibDLL := NIL
|
||||
LOCAL cMakeImpLibLib := NIL
|
||||
LOCAL lMakeImpLibMS_bcc := .F.
|
||||
|
||||
LOCAL cWorkDir := NIL
|
||||
|
||||
@@ -1750,6 +1751,13 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
lMakeImpLib := .T.
|
||||
cMakeImpLibLib := SubStr( cParam, Len( "-mkimplib=" ) + 1 )
|
||||
|
||||
/* NOTE: Undocumented option to enable -a option when calling bcc implib tool.
|
||||
This is needed for some .dlls to make them work with bcc, because
|
||||
bcc chose not to follow name-mangling/callconv standard. */
|
||||
CASE cParamL == "-mkimplibms"
|
||||
|
||||
lMakeImpLibMS_bcc := .T.
|
||||
|
||||
CASE lMakeImpLib .AND. Empty( cMakeImpLibDLL )
|
||||
|
||||
cMakeImpLibDLL := PathProc( cParam, aParam[ _PAR_cFileName ] )
|
||||
@@ -3120,8 +3128,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
cBin_Dyn := cBin_Link
|
||||
cOpt_Link := '-Gn -Tpe -L{DL} {FL} ' + iif( hbmk[ _HBMK_lGUI ], "c0w32.obj", "c0x32.obj" ) + " {LO}, {OE}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} cw32mt.lib import32.lib,, {LS}{SCRIPT}"
|
||||
cOpt_Dyn := '-Gn -Tpd -L{DL} {FD} ' + "c0d32.obj" + " {LO}, {OD}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} cw32mt.lib import32.lib,, {LS}{SCRIPT}"
|
||||
/* TODO: Add support for idiotic BCC -a option. */
|
||||
bBlk_ImpLib := {| s, t | win_implib_command( "implib {FI} {OL} {ID}", nCmd_Esc, s, t, "" ) }
|
||||
bBlk_ImpLib := {| s, t | win_implib_command( "implib {FI} {OL} {ID}", nCmd_Esc, s, t, iif( lMakeImpLibMS_bcc, "-a", "" ) ) }
|
||||
cLibPathPrefix := ""
|
||||
cLibPathSep := ";"
|
||||
IF hbmk[ _HBMK_lMAP ]
|
||||
|
||||
Reference in New Issue
Block a user