From f985d48f95056589ae37d1bd76725607d3f4e8c2 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sun, 21 Mar 2010 11:31:52 +0000 Subject: [PATCH] 2010-03-21 12:26 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * bin/hb-mkimp.prg + Finished, tested. This version also adds pocc64 support. It also gives proper feedback. * INSTALL * bin/postinst.bat - bin/hb-mkimp.bat * package/winuni/mpkg_win_uni_extra_copy.bat * package/winuni/mpkg_win_uni.bat * package/winuni/mpkg_win_uni.nsi + Switched to use hb-mkimp.prg instead of .bat. 25KB less of non-portable .bat file in Harbour SVN. Remains only ~100 lines of .bat stuff in core parts. + Deleted GNU Sed requirement. + Lifted Windows NT requirement for implib creation. + Lifted NT shell requirement for implib creation. --- harbour/ChangeLog | 18 ++ harbour/INSTALL | 18 +- harbour/bin/hb-mkimp.bat | 245 ------------------ harbour/bin/hb-mkimp.prg | 210 ++++++++------- harbour/bin/postinst.bat | 2 +- harbour/package/winuni/mpkg_win_uni.bat | 2 +- harbour/package/winuni/mpkg_win_uni.nsi | 2 +- .../winuni/mpkg_win_uni_extra_copy.bat | 2 +- 8 files changed, 148 insertions(+), 351 deletions(-) delete mode 100644 harbour/bin/hb-mkimp.bat diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 9090b8da7d..2af504d00f 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,24 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-03-21 12:26 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * bin/hb-mkimp.prg + + Finished, tested. This version also adds pocc64 support. + It also gives proper feedback. + + * INSTALL + * bin/postinst.bat + - bin/hb-mkimp.bat + * package/winuni/mpkg_win_uni_extra_copy.bat + * package/winuni/mpkg_win_uni.bat + * package/winuni/mpkg_win_uni.nsi + + Switched to use hb-mkimp.prg instead of .bat. + 25KB less of non-portable .bat file in Harbour SVN. + Remains only ~100 lines of .bat stuff in core parts. + + Deleted GNU Sed requirement. + + Lifted Windows NT requirement for implib creation. + + Lifted NT shell requirement for implib creation. + 2010-03-21 12:00 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + bin/hb-mkimp.prg + Added .prg rewrite for implib generation. This highly diff --git a/harbour/INSTALL b/harbour/INSTALL index 0358b5c431..2ecdcbafff 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -610,8 +610,7 @@ HARBOUR to a *nix system location, otherwise no. - HB_BUILD_IMPLIB=yes Create import libraries for external .dll dependencies (including contribs). Default: no - (for Windows targets created from Windows NT - shells only. Needs GNU Sed.) + (for Windows targets only.) - HB_BUILD_DEBUG=yes Create a debug build. Default: no - HB_BUILD_STRIP= [all|bin|lib|no] Strip symbols and debug information from binaries. @@ -1261,12 +1260,12 @@ HARBOUR Supported shells per host platforms: win / NT shell (cmd.exe) - win / POSIX shell (MSYS or Cygwin sh.exe) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) - win / MS-DOS shell (command.com) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) - dos / MS-DOS shell (command.com) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) - dos / POSIX shell (bash.exe) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) - os/2 / OS/2 shell (cmd.exe) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) - os/2 / POSIX shell (bash.exe) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) + win / POSIX shell (MSYS or Cygwin sh.exe) (* not supported: HB_BUILD_PKG) + win / MS-DOS shell (command.com) (* not supported: HB_BUILD_PKG) + dos / MS-DOS shell (command.com) (* not supported: HB_BUILD_PKG) + dos / POSIX shell (bash.exe) (* not supported: HB_BUILD_PKG) + os/2 / OS/2 shell (cmd.exe) (* not supported: HB_BUILD_PKG) + os/2 / POSIX shell (bash.exe) (* not supported: HB_BUILD_PKG) *nix / POSIX shell (* not supported: HB_BUILD_PKG - implemented as standalone scripts) @@ -1394,9 +1393,6 @@ HARBOUR Windows binary: http://gnuwin32.sourceforge.net/packages/bison.htm (not verified with current Harbour version) - GNU Sed (stream editor) [multiplatform, free, open-source] - Windows binary: - http://gnuwin32.sourceforge.net/packages/sed.htm Valgrind (dynamic executable analysis tool) [linux, darwin-x86, free, open-source] http://valgrind.org/ UPX (executable compressor) [win, dos, *nix, free, open-source] diff --git a/harbour/bin/hb-mkimp.bat b/harbour/bin/hb-mkimp.bat deleted file mode 100644 index f0a8a47d93..0000000000 --- a/harbour/bin/hb-mkimp.bat +++ /dev/null @@ -1,245 +0,0 @@ -@rem -@rem $Id$ -@rem - -@echo off - -rem --------------------------------------------------------------- -rem Copyright 2009 Viktor Szakats (harbour.01 syenar.hu) -rem See COPYING for licensing terms. -rem -rem script to create import libs for various compilers -rem -rem This script requires: -rem - Windows NT or upper -rem - C compiler in PATH -rem - HB_COMPILER and HB_LIB_INSTALL envvars set -rem - HB_WITH_* envvars pointing to installed 3rd party _headers_ -rem - GNU Sed (sed.exe) for some msvc and msvc64 targets -rem --------------------------------------------------------------- - -if not "%OS%" == "Windows_NT" echo ! hb-mkimp.bat Harbour build script requires Windows NT or upper. -if not "%OS%" == "Windows_NT" goto END - -if not "%HB_LIB_INSTALL%" == "" ( - - echo ! Making import libs... - - if "%HB_COMPILER%" == "mingw" ( - - if exist "%HB_WITH_ADS%\Redistribute\ace32.lib" copy /b /y "%HB_WITH_ADS%\Redistribute\ace32.lib" "%HB_LIB_INSTALL%\libace32.a" - if exist "%HB_WITH_ADS%\ace32.lib" copy /b /y "%HB_WITH_ADS%\ace32.lib" "%HB_LIB_INSTALL%\libace32.a" - if exist "%HB_WITH_ADS%\32bit\ace32.lib" copy /b /y "%HB_WITH_ADS%\32bit\ace32.lib" "%HB_LIB_INSTALL%\libace32.a" - if exist "%HB_WITH_ALLEGRO%\..\lib\alleg.lib" copy /b /y "%HB_WITH_ALLEGRO%\..\lib\alleg.lib" "%HB_LIB_INSTALL%\liballeg.a" - if exist "%HB_WITH_BLAT%\..\blat.lib" copy /b /y "%HB_WITH_BLAT%\..\blat.lib" "%HB_LIB_INSTALL%\libblat.a" - if exist "%HB_WITH_CAIRO%\..\..\lib\libcairo.dll.a" copy /b /y "%HB_WITH_CAIRO%\..\..\lib\libcairo.dll.a" "%HB_LIB_INSTALL%\libcairo.a" - if exist "%HB_WITH_CURL%\..\lib\libcurl.a" copy /b /y "%HB_WITH_CURL%\..\lib\libcurl.a" "%HB_LIB_INSTALL%\libcurl.a" - if exist "%HB_WITH_CURL%\..\lib\libcurldll.a" copy /b /y "%HB_WITH_CURL%\..\lib\libcurldll.a" "%HB_LIB_INSTALL%\libcurldll.a" - if exist "%HB_WITH_FIREBIRD%\..\lib\fbclient_ms.lib" copy /b /y "%HB_WITH_FIREBIRD%\..\lib\fbclient_ms.lib" "%HB_LIB_INSTALL%\libfbclient.a" - if exist "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.lib" copy /b /y "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.lib" "%HB_LIB_INSTALL%\libFreeImage.a" - if exist "%HB_WITH_GD%\..\lib\bgd.lib" copy /b /y "%HB_WITH_GD%\..\lib\bgd.lib" "%HB_LIB_INSTALL%\libbgd.a" - if exist "%HB_WITH_LIBHARU%\..\libhpdf.lib" copy /b /y "%HB_WITH_LIBHARU%\..\libhpdf.lib" "%HB_LIB_INSTALL%\liblibhpdf.a" - if exist "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.lib" copy /b /y "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.lib" "%HB_LIB_INSTALL%\liblibhpdf.a" - if exist "%HB_WITH_MYSQL%\..\lib\opt\libmySQL.lib" copy /b /y "%HB_WITH_MYSQL%\..\lib\opt\libmySQL.lib" "%HB_LIB_INSTALL%\liblibmysql.a" - if exist "%HB_WITH_OCILIB%\..\lib32\libociliba.a" copy /b /y "%HB_WITH_OCILIB%\..\lib32\libociliba.a" "%HB_LIB_INSTALL%\libociliba.a" - if exist "%HB_WITH_OCILIB%\..\lib32\libocilibm.a" copy /b /y "%HB_WITH_OCILIB%\..\lib32\libocilibm.a" "%HB_LIB_INSTALL%\libocilibm.a" - if exist "%HB_WITH_OCILIB%\..\lib32\libocilibw.a" copy /b /y "%HB_WITH_OCILIB%\..\lib32\libocilibw.a" "%HB_LIB_INSTALL%\libocilibw.a" - if exist "%HB_WITH_OPENSSL%\..\out32dll\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\out32dll\libeay32.lib" "%HB_LIB_INSTALL%\liblibeay32.a" - if exist "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.lib" "%HB_LIB_INSTALL%\libssleay32.a" - if exist "%HB_WITH_OPENSSL%\..\dll\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\dll\libeay32.lib" "%HB_LIB_INSTALL%\liblibeay32.a" - if exist "%HB_WITH_OPENSSL%\..\dll\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\dll\ssleay32.lib" "%HB_LIB_INSTALL%\libssleay32.a" - if exist "%HB_WITH_OPENSSL%\..\lib\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\lib\libeay32.lib" "%HB_LIB_INSTALL%\liblibeay32.a" - if exist "%HB_WITH_OPENSSL%\..\lib\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\lib\ssleay32.lib" "%HB_LIB_INSTALL%\libssleay32.a" - if exist "%HB_WITH_OPENSSL%\..\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\libeay32.lib" "%HB_LIB_INSTALL%\liblibeay32.a" - if exist "%HB_WITH_OPENSSL%\..\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\ssleay32.lib" "%HB_LIB_INSTALL%\libssleay32.a" - if exist "%HB_WITH_PGSQL%\..\lib\libpq.lib" copy /b /y "%HB_WITH_PGSQL%\..\lib\libpq.lib" "%HB_LIB_INSTALL%\liblibpq.a" - - goto END - ) - - if "%HB_COMPILER%" == "mingw64" ( - - if exist "%HB_WITH_CURL%\..\lib\libcurl.a" copy /b /y "%HB_WITH_CURL%\..\lib\libcurl.a" "%HB_LIB_INSTALL%\libcurl.a" - if exist "%HB_WITH_CURL%\..\lib\libcurldll.a" copy /b /y "%HB_WITH_CURL%\..\lib\libcurldll.a" "%HB_LIB_INSTALL%\libcurldll.a" - if exist "%HB_WITH_FIREBIRD%\..\lib\fbclient_ms.lib" copy /b /y "%HB_WITH_FIREBIRD%\..\lib\fbclient_ms.lib" "%HB_LIB_INSTALL%\libfbclient.a" - if exist "%HB_WITH_MYSQL%\..\lib\opt\libmySQL.lib" copy /b /y "%HB_WITH_MYSQL%\..\lib\opt\libmySQL.lib" "%HB_LIB_INSTALL%\liblibmysql.a" - if exist "%HB_WITH_OCILIB%\..\lib64\ociliba.lib" copy /b /y "%HB_WITH_OCILIB%\..\lib64\ociliba.lib" "%HB_LIB_INSTALL%\libociliba.a" - if exist "%HB_WITH_OCILIB%\..\lib64\ocilibm.lib" copy /b /y "%HB_WITH_OCILIB%\..\lib64\ocilibm.lib" "%HB_LIB_INSTALL%\libocilibm.a" - if exist "%HB_WITH_OCILIB%\..\lib64\ocilibw.lib" copy /b /y "%HB_WITH_OCILIB%\..\lib64\ocilibw.lib" "%HB_LIB_INSTALL%\libocilibw.a" - - goto END - ) - - if "%HB_COMPILER%" == "msvc" ( - - if exist "%HB_WITH_ADS%\Redistribute\ace32.lib" copy /b /y "%HB_WITH_ADS%\Redistribute\ace32.lib" "%HB_LIB_INSTALL%\ace32.lib" - if exist "%HB_WITH_ADS%\ace32.lib" copy /b /y "%HB_WITH_ADS%\ace32.lib" "%HB_LIB_INSTALL%\ace32.lib" - if exist "%HB_WITH_ADS%\32bit\ace32.lib" copy /b /y "%HB_WITH_ADS%\32bit\ace32.lib" "%HB_LIB_INSTALL%\ace32.lib" - if exist "%HB_WITH_ALLEGRO%\..\lib\alleg.lib" copy /b /y "%HB_WITH_ALLEGRO%\..\lib\alleg.lib" "%HB_LIB_INSTALL%\alleg.lib" - if exist "%HB_WITH_APOLLO%\..\sde61.dll" call :P_MSVC_IMPLIB x86 "%HB_WITH_APOLLO%\..\sde61.dll" "%HB_LIB_INSTALL%\sde61.lib" - if exist "%HB_WITH_APOLLO%\..\sde7.dll" call :P_MSVC_IMPLIB x86 "%HB_WITH_APOLLO%\..\sde7.dll" "%HB_LIB_INSTALL%\sde7.lib" - if exist "%HB_WITH_BLAT%\..\blat.lib" copy /b /y "%HB_WITH_BLAT%\..\blat.lib" "%HB_LIB_INSTALL%\blat.lib" - if exist "%HB_WITH_CAIRO%\..\..\lib\cairo.lib" copy /b /y "%HB_WITH_CAIRO%\..\..\lib\cairo.lib" "%HB_LIB_INSTALL%\cairo.lib" - if exist "%HB_WITH_CURL%\..\libcurl.dll" call :P_MSVC_IMPLIB x86 "%HB_WITH_CURL%\..\libcurl.dll" "%HB_LIB_INSTALL%\libcurl.lib" - if exist "%HB_WITH_CURL%\..\bin\libcurl.dll" call :P_MSVC_IMPLIB x86 "%HB_WITH_CURL%\..\bin\libcurl.dll" "%HB_LIB_INSTALL%\libcurl.lib" - if exist "%HB_WITH_FIREBIRD%\..\lib\fbclient_ms.lib" copy /b /y "%HB_WITH_FIREBIRD%\..\lib\fbclient_ms.lib" "%HB_LIB_INSTALL%\fbclient.lib" - if exist "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.lib" copy /b /y "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.lib" "%HB_LIB_INSTALL%\FreeImage.lib" - if exist "%HB_WITH_GD%\..\lib\bgd.lib" copy /b /y "%HB_WITH_GD%\..\lib\bgd.lib" "%HB_LIB_INSTALL%\bgd.lib" - if exist "%HB_WITH_LIBHARU%\..\libhpdf.lib" copy /b /y "%HB_WITH_LIBHARU%\..\libhpdf.lib" "%HB_LIB_INSTALL%\libhpdf.lib" - if exist "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.lib" copy /b /y "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.lib" "%HB_LIB_INSTALL%\libhpdf.lib" - if exist "%HB_WITH_MYSQL%\..\lib\opt\libmySQL.lib" copy /b /y "%HB_WITH_MYSQL%\..\lib\opt\libmySQL.lib" "%HB_LIB_INSTALL%\libmySQL.lib" - if exist "%HB_WITH_OCILIB%\..\lib32\ociliba.lib" copy /b /y "%HB_WITH_OCILIB%\..\lib32\ociliba.lib" "%HB_LIB_INSTALL%\ociliba.lib" - if exist "%HB_WITH_OCILIB%\..\lib32\ocilibm.lib" copy /b /y "%HB_WITH_OCILIB%\..\lib32\ocilibm.lib" "%HB_LIB_INSTALL%\ocilibm.lib" - if exist "%HB_WITH_OCILIB%\..\lib32\ocilibw.lib" copy /b /y "%HB_WITH_OCILIB%\..\lib32\ocilibw.lib" "%HB_LIB_INSTALL%\ocilibw.lib" - if exist "%HB_WITH_OPENSSL%\..\out32dll\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\out32dll\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib" - if exist "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib" - if exist "%HB_WITH_OPENSSL%\..\dll\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\dll\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib" - if exist "%HB_WITH_OPENSSL%\..\dll\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\dll\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib" - if exist "%HB_WITH_OPENSSL%\..\lib\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\lib\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib" - if exist "%HB_WITH_OPENSSL%\..\lib\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\lib\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib" - if exist "%HB_WITH_OPENSSL%\..\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib" - if exist "%HB_WITH_OPENSSL%\..\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib" - if exist "%HB_WITH_PGSQL%\..\bin\libpq.dll" call :P_MSVC_IMPLIB x86 "%HB_WITH_PGSQL%\..\bin\libpq.dll" "%HB_LIB_INSTALL%\libpq.lib" - if exist "%HB_WITH_PGSQL%\..\lib\libpq.lib" copy /b /y "%HB_WITH_PGSQL%\..\lib\libpq.lib" "%HB_LIB_INSTALL%\libpq.lib" - - goto END - ) - - if "%HB_COMPILER%" == "pocc" ( - - if exist "%HB_WITH_ADS%\Redistribute\ace32.lib" copy /b /y "%HB_WITH_ADS%\Redistribute\ace32.lib" "%HB_LIB_INSTALL%\ace32.lib" - if exist "%HB_WITH_ADS%\ace32.lib" copy /b /y "%HB_WITH_ADS%\ace32.lib" "%HB_LIB_INSTALL%\ace32.lib" - if exist "%HB_WITH_ADS%\32bit\ace32.lib" copy /b /y "%HB_WITH_ADS%\32bit\ace32.lib" "%HB_LIB_INSTALL%\ace32.lib" - if exist "%HB_WITH_ALLEGRO%\..\lib\alleg.lib" copy /b /y "%HB_WITH_ALLEGRO%\..\lib\alleg.lib" "%HB_LIB_INSTALL%\alleg.lib" - if exist "%HB_WITH_APOLLO%\..\sde61.dll" polib "%HB_WITH_APOLLO%\..\sde61.dll" /out:"%HB_LIB_INSTALL%\sde61.lib" - if exist "%HB_WITH_APOLLO%\..\sde7.dll" polib "%HB_WITH_APOLLO%\..\sde7.dll" /out:"%HB_LIB_INSTALL%\sde7.lib" - if exist "%HB_WITH_BLAT%\..\blat.lib" copy /b /y "%HB_WITH_BLAT%\..\blat.lib" "%HB_LIB_INSTALL%\blat.lib" - if exist "%HB_WITH_CAIRO%\..\..\lib\cairo.lib" copy /b /y "%HB_WITH_CAIRO%\..\..\lib\cairo.lib" "%HB_LIB_INSTALL%\cairo.lib" - if exist "%HB_WITH_CURL%\..\libcurl.dll" polib "%HB_WITH_CURL%\..\libcurl.dll" /out:"%HB_LIB_INSTALL%\libcurl.lib" - if exist "%HB_WITH_CURL%\..\bin\libcurl.dll" polib "%HB_WITH_CURL%\..\bin\libcurl.dll" /out:"%HB_LIB_INSTALL%\libcurl.lib" - if exist "%HB_WITH_FIREBIRD%\..\lib\fbclient_ms.lib" copy /b /y "%HB_WITH_FIREBIRD%\..\lib\fbclient_ms.lib" "%HB_LIB_INSTALL%\fbclient.lib" - if exist "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.lib" copy /b /y "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.lib" "%HB_LIB_INSTALL%\FreeImage.lib" - if exist "%HB_WITH_GD%\..\lib\bgd.lib" copy /b /y "%HB_WITH_GD%\..\lib\bgd.lib" "%HB_LIB_INSTALL%\bgd.lib" - if exist "%HB_WITH_LIBHARU%\..\libhpdf.lib" copy /b /y "%HB_WITH_LIBHARU%\..\libhpdf.lib" "%HB_LIB_INSTALL%\libhpdf.lib" - if exist "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.lib" copy /b /y "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.lib" "%HB_LIB_INSTALL%\libhpdf.lib" - if exist "%HB_WITH_MYSQL%\..\lib\opt\libmySQL.lib" copy /b /y "%HB_WITH_MYSQL%\..\lib\opt\libmySQL.lib" "%HB_LIB_INSTALL%\libmySQL.lib" - if exist "%HB_WITH_OCILIB%\..\lib32\ociliba.lib" copy /b /y "%HB_WITH_OCILIB%\ociliba.lib" "%HB_LIB_INSTALL%\ociliba.lib" - if exist "%HB_WITH_OCILIB%\..\lib32\ocilibm.lib" copy /b /y "%HB_WITH_OCILIB%\ocilibm.lib" "%HB_LIB_INSTALL%\ocilibm.lib" - if exist "%HB_WITH_OCILIB%\..\lib32\ocilibw.lib" copy /b /y "%HB_WITH_OCILIB%\ocilibw.lib" "%HB_LIB_INSTALL%\ocilibw.lib" - if exist "%HB_WITH_OPENSSL%\..\out32dll\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\out32dll\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib" - if exist "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib" - if exist "%HB_WITH_OPENSSL%\..\dll\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\dll\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib" - if exist "%HB_WITH_OPENSSL%\..\dll\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\dll\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib" - if exist "%HB_WITH_OPENSSL%\..\lib\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\lib\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib" - if exist "%HB_WITH_OPENSSL%\..\lib\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\lib\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib" - if exist "%HB_WITH_OPENSSL%\..\libeay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib" - if exist "%HB_WITH_OPENSSL%\..\ssleay32.lib" copy /b /y "%HB_WITH_OPENSSL%\..\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib" - if exist "%HB_WITH_PGSQL%\..\lib\libpq.lib" copy /b /y "%HB_WITH_PGSQL%\..\lib\libpq.lib" "%HB_LIB_INSTALL%\libpq.lib" - - goto END - ) - - if "%HB_COMPILER%" == "msvc64" ( - - if exist "%HB_WITH_CURL%\..\libcurl.dll" call :P_MSVC_IMPLIB x64 "%HB_WITH_CURL%\..\libcurl.dll" "%HB_LIB_INSTALL%\libcurl.lib" - if exist "%HB_WITH_CURL%\..\bin\libcurl.dll" call :P_MSVC_IMPLIB x64 "%HB_WITH_CURL%\..\bin\libcurl.dll" "%HB_LIB_INSTALL%\libcurl.lib" - if exist "%HB_WITH_FIREBIRD%\..\lib\fbclient_ms.lib" copy /b /y "%HB_WITH_FIREBIRD%\..\lib\fbclient_ms.lib" "%HB_LIB_INSTALL%\fbclient.lib" - if exist "%HB_WITH_MYSQL%\..\lib\opt\libmySQL.lib" copy /b /y "%HB_WITH_MYSQL%\..\lib\opt\libmySQL.lib" "%HB_LIB_INSTALL%\libmySQL.lib" - if exist "%HB_WITH_OCILIB%\..\lib64\ociliba.lib" copy /b /y "%HB_WITH_OCILIB%\..\lib64\ociliba.lib" "%HB_LIB_INSTALL%\ociliba.lib" - if exist "%HB_WITH_OCILIB%\..\lib64\ocilibm.lib" copy /b /y "%HB_WITH_OCILIB%\..\lib64\ocilibm.lib" "%HB_LIB_INSTALL%\ocilibm.lib" - if exist "%HB_WITH_OCILIB%\..\lib64\ocilibw.lib" copy /b /y "%HB_WITH_OCILIB%\..\lib64\ocilibw.lib" "%HB_LIB_INSTALL%\ocilibw.lib" - - goto END - ) - - if "%HB_COMPILER%" == "bcc" ( - - if exist "%HB_WITH_ADS%\Redistribute\ace32.dll" implib "%HB_LIB_INSTALL%\ace32.lib" "%HB_WITH_ADS%\Redistribute\ace32.dll" - if exist "%HB_WITH_ADS%\ace32.dll" implib "%HB_LIB_INSTALL%\ace32.lib" "%HB_WITH_ADS%\ace32.dll" - if exist "%HB_WITH_ADS%\32bit\ace32.dll" implib "%HB_LIB_INSTALL%\ace32.lib" "%HB_WITH_ADS%\32bit\ace32.dll" - if exist "%HB_WITH_ALLEGRO%\..\bin\alleg42.dll" implib -a "%HB_LIB_INSTALL%\alleg.lib" "%HB_WITH_ALLEGRO%\..\bin\alleg42.dll" - if exist "%HB_WITH_APOLLO%\..\sde61.dll" implib "%HB_LIB_INSTALL%\sde61.lib" "%HB_WITH_APOLLO%\..\sde61.dll" - if exist "%HB_WITH_APOLLO%\..\sde7.dll" implib "%HB_LIB_INSTALL%\sde7.lib" "%HB_WITH_APOLLO%\..\sde7.dll" - if exist "%HB_WITH_BLAT%\..\blat.dll" implib -a "%HB_LIB_INSTALL%\blat.lib" "%HB_WITH_BLAT%\..\blat.dll" - if exist "%HB_WITH_CAIRO%\..\..\bin\libcairo-2.dll" implib -a "%HB_LIB_INSTALL%\cairo.lib" "%HB_WITH_CAIRO%\..\..\bin\libcairo-2.dll" - if exist "%HB_WITH_CURL%\..\libcurl.dll" implib -a "%HB_LIB_INSTALL%\libcurl.lib" "%HB_WITH_CURL%\..\libcurl.dll" - if exist "%HB_WITH_CURL%\..\bin\libcurl.dll" implib -a "%HB_LIB_INSTALL%\libcurl.lib" "%HB_WITH_CURL%\..\bin\libcurl.dll" - if exist "%HB_WITH_FIREBIRD%\..\bin\fbclient.dll" implib "%HB_LIB_INSTALL%\fbclient.lib" "%HB_WITH_FIREBIRD%\..\bin\fbclient.dll" - if exist "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.dll" implib "%HB_LIB_INSTALL%\FreeImage.lib" "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.dll" - if exist "%HB_WITH_GD%\..\bin\bgd.dll" implib "%HB_LIB_INSTALL%\bgd.lib" "%HB_WITH_GD%\..\bin\bgd.dll" - if exist "%HB_WITH_LIBHARU%\..\libhpdf.dll" implib "%HB_LIB_INSTALL%\libhpdf.lib" "%HB_WITH_LIBHARU%\..\libhpdf.dll" - if exist "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.dll" implib "%HB_LIB_INSTALL%\libhpdf.lib" "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.dll" - if exist "%HB_WITH_MYSQL%\..\bin\libmySQL.dll" implib "%HB_LIB_INSTALL%\libmysql.lib" "%HB_WITH_MYSQL%\..\bin\libmySQL.dll" - if exist "%HB_WITH_OCILIB%\..\lib32\ociliba.dll" implib "%HB_LIB_INSTALL%\ociliba.lib" "%HB_WITH_OCILIB%\..\lib32\ociliba.dll" - if exist "%HB_WITH_OCILIB%\..\lib32\ocilibm.dll" implib "%HB_LIB_INSTALL%\ocilibm.lib" "%HB_WITH_OCILIB%\..\lib32\ocilibm.dll" - if exist "%HB_WITH_OCILIB%\..\lib32\ocilibw.dll" implib "%HB_LIB_INSTALL%\ocilibw.lib" "%HB_WITH_OCILIB%\..\lib32\ocilibw.dll" - if exist "%HB_WITH_OPENSSL%\..\out32dll\libeay32.dll" implib -a "%HB_LIB_INSTALL%\libeay32.lib" "%HB_WITH_OPENSSL%\..\out32dll\libeay32.dll" - if exist "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.dll" implib -a "%HB_LIB_INSTALL%\ssleay32.lib" "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.dll" - if exist "%HB_WITH_OPENSSL%\..\dll\libeay32.dll" implib -a "%HB_LIB_INSTALL%\libeay32.lib" "%HB_WITH_OPENSSL%\..\dll\libeay32.dll" - if exist "%HB_WITH_OPENSSL%\..\dll\ssleay32.dll" implib -a "%HB_LIB_INSTALL%\ssleay32.lib" "%HB_WITH_OPENSSL%\..\dll\ssleay32.dll" - if exist "%HB_WITH_OPENSSL%\..\libeay32.dll" implib -a "%HB_LIB_INSTALL%\libeay32.lib" "%HB_WITH_OPENSSL%\..\libeay32.dll" - if exist "%HB_WITH_OPENSSL%\..\ssleay32.dll" implib -a "%HB_LIB_INSTALL%\ssleay32.lib" "%HB_WITH_OPENSSL%\..\ssleay32.dll" - if exist "%HB_WITH_PGSQL%\..\lib\libpq.dll" implib -a "%HB_LIB_INSTALL%\libpq.lib" "%HB_WITH_PGSQL%\..\lib\libpq.dll" - - goto END - ) - - if "%HB_COMPILER%" == "watcom" ( - - if exist "%HB_WITH_ADS%\Redistribute\ace32.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\ace32.lib" "%HB_WITH_ADS%\Redistribute\ace32.dll" - if exist "%HB_WITH_ADS%\ace32.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\ace32.lib" "%HB_WITH_ADS%\ace32.dll" - if exist "%HB_WITH_ADS%\32bit\ace32.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\ace32.lib" "%HB_WITH_ADS%\32bit\ace32.dll" - if exist "%HB_WITH_ALLEGRO%\..\bin\alleg42.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\alleg.lib" "%HB_WITH_ALLEGRO%\..\bin\alleg42.dll" - if exist "%HB_WITH_APOLLO%\..\sde61.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\sde61.lib" "%HB_WITH_APOLLO%\..\sde61.dll" - if exist "%HB_WITH_APOLLO%\..\sde7.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\sde7.lib" "%HB_WITH_APOLLO%\..\sde7.dll" - if exist "%HB_WITH_BLAT%\..\blat.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\blat.lib" "%HB_WITH_BLAT%\..\blat.dll" - if exist "%HB_WITH_CAIRO%\..\..\bin\libcairo-2.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\cairo.lib" "%HB_WITH_CAIRO%\..\..\bin\libcairo-2.dll" - if exist "%HB_WITH_CURL%\..\libcurl.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libcurl.lib" "%HB_WITH_CURL%\..\libcurl.dll" - if exist "%HB_WITH_CURL%\..\bin\libcurl.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libcurl.lib" "%HB_WITH_CURL%\..\bin\libcurl.dll" - if exist "%HB_WITH_FIREBIRD%\..\bin\fbclient.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\fbclient.lib" "%HB_WITH_FIREBIRD%\..\bin\fbclient.dll" - if exist "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\FreeImage.lib" "%HB_WITH_FREEIMAGE%\..\Dist\FreeImage.dll" - if exist "%HB_WITH_GD%\..\bin\bgd.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\bgd.lib" "%HB_WITH_GD%\..\bin\bgd.dll" - if exist "%HB_WITH_LIBHARU%\..\libhpdf.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libhpdf.lib" "%HB_WITH_LIBHARU%\..\libhpdf.dll" - if exist "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libhpdf.lib" "%HB_WITH_LIBHARU%\..\lib_dll\libhpdf.dll" - if exist "%HB_WITH_MYSQL%\..\bin\libmySQL.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libmySQL.lib" "%HB_WITH_MYSQL%\..\bin\libmySQL.dll" - if exist "%HB_WITH_OCILIB%\..\lib32\ociliba.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\ociliba.lib" "%HB_WITH_OCILIB%\..\lib32\ociliba.dll" - if exist "%HB_WITH_OCILIB%\..\lib32\ocilibm.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\ocilibm.lib" "%HB_WITH_OCILIB%\..\lib32\ocilibm.dll" - if exist "%HB_WITH_OCILIB%\..\lib32\ocilibw.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\ocilibw.lib" "%HB_WITH_OCILIB%\..\lib32\ocilibw.dll" - if exist "%HB_WITH_OPENSSL%\..\out32dll\libeay32.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libeay32.lib" "%HB_WITH_OPENSSL%\..\out32dll\libeay32.dll" - if exist "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\ssleay32.lib" "%HB_WITH_OPENSSL%\..\out32dll\ssleay32.dll" - if exist "%HB_WITH_OPENSSL%\..\dll\libeay32.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libeay32.lib" "%HB_WITH_OPENSSL%\..\dll\libeay32.dll" - if exist "%HB_WITH_OPENSSL%\..\dll\ssleay32.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\ssleay32.lib" "%HB_WITH_OPENSSL%\..\dll\ssleay32.dll" - if exist "%HB_WITH_OPENSSL%\..\libeay32.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libeay32.lib" "%HB_WITH_OPENSSL%\..\libeay32.dll" - if exist "%HB_WITH_OPENSSL%\..\ssleay32.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\ssleay32.lib" "%HB_WITH_OPENSSL%\..\ssleay32.dll" - if exist "%HB_WITH_PGSQL%\..\lib\libpq.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libpq.lib" "%HB_WITH_PGSQL%\..\lib\libpq.dll" - - goto END - ) -) - -goto END - -rem --------------------------------------------------------------- -rem These .dll to .lib conversions need GNU sed.exe in the path -rem --------------------------------------------------------------- - -:P_MSVC_IMPLIB - - echo /[ \t]*ordinal hint/,/^^[ \t]*Summary/{> _hbtemp.sed - echo /^^[ \t]\+[0-9]\+/{>> _hbtemp.sed - echo s/^^[ \t]\+[0-9]\+[ \t]\+[0-9A-Fa-f]\+[ \t]\+[0-9A-Fa-f]\+[ \t]\+\(.*\)/\1/p>> _hbtemp.sed - echo }>> _hbtemp.sed - echo }>> _hbtemp.sed - dumpbin -exports "%2" > _dump.tmp - echo LIBRARY "%~n2" > _temp.def - echo EXPORTS >> _temp.def - sed -nf _hbtemp.sed < _dump.tmp >> _temp.def - lib -nologo -machine:%1 -def:_temp.def -out:"%3" - del _dump.tmp - del _temp.def - del _hbtemp.sed - rem --------------------------------------------------------------- - - goto END - -:END diff --git a/harbour/bin/hb-mkimp.prg b/harbour/bin/hb-mkimp.prg index d46eda144e..a8f7f44ae1 100644 --- a/harbour/bin/hb-mkimp.prg +++ b/harbour/bin/hb-mkimp.prg @@ -1,111 +1,139 @@ -@rem -@rem $Id$ -@rem +/* + * $Id$ + */ -@echo off - -rem --------------------------------------------------------------- -rem Copyright 2009-2010 Viktor Szakats (harbour.01 syenar.hu) -rem See COPYING for licensing terms. -rem -rem Create import libs for various Windows compilers -rem -rem This script requires: -rem - C compiler in PATH -rem - HB_COMPILER and HB_LIB_INSTALL envvars set -rem - HB_WITH_* envvars pointing to installed 3rd party _headers_ -rem --------------------------------------------------------------- +/* + * 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 FS_ERROR ( -1 ) -LOCAL cLibDir +PROCEDURE Main( cCompiler, cLibDir ) + LOCAL aLibs + LOCAL hComps -LOCAL aLibs -LOCAL aComps + LOCAL lib + LOCAL comp -IF ! Empty( cLibDir := GetEnv( "HB_LIB_INSTALL" ) ) + LOCAL cBase + LOCAL cSource + LOCAL cTarget + LOCAL lDone - OutStd( "! Making import libs...", hb_osNewLine() ) + IF ! hb_isString( cCompiler ) + cCompiler := GetEnv( "HB_COMPILER" ) + ENDIF + IF ! hb_isString( cLibDir ) + cLibDir := GetEnv( "HB_LIB_INSTALL" ) + ENDIF - #define _L_NAME 1 - #define _L_BASE 2 - #define _L_DLL 3 - #define _L_DLLMS 4 - #define _L_LIBMS 5 - #define _L_LIBMS64 6 - #define _L_LIBA 7 + IF ! Empty( cLibDir ) - 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. , "..\sde61.dll" , , }, ; - { "sde7" , "HB_WITH_APOLLO" , "..\sde7.dll" , .F. , "..\sde7.dll" , , }, ; - { "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. , "..\libcurl.dll" , , "..\lib\libcurl.a" }, ; - { "libcurl" , "HB_WITH_CURL" , "..\bin\libcurl.dll" , .T. , "..\bin\libcurl.dll" , , "..\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" , , } } + OutStd( "! Making import libs...", hb_osNewLine() ) - #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 + #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 - hComps := {; - "mingw" => { "lib", ".a" , {| s, t | hb_fsCopy( s, t ) != FS_ERROR }, {| s, t | hb_fsCopy( s, t ) != FS_ERROR }, NIL, {| s, t | hb_fsCopy( s, t ) != FS_ERROR } }, ; - "mingw64" => { "lib", ".a" , {| s, t | hb_fsCopy( s, t ) != FS_ERROR }, NIL, {| s, t | hb_fsCopy( s, t ) != FS_ERROR }, {| s, t | hb_fsCopy( s, t ) != FS_ERROR } }, ; - "msvc" => { "" , ".lib", {| s, t | MSVC_implib( s, t, "x86" ) }, {| s, t | hb_fsCopy( s, t ) != FS_ERROR }, NIL, NIL }, ; - "msvc64" => { "" , ".lib", {| s, t | MSVC_implib( s, t, "x64" ) }, NIL, {| s, t | hb_fsCopy( s, t ) != FS_ERROR }, NIL }, ; - "pocc" => { "" , ".lib", {| s, t | hb_processRun( "polib " + FN_Escape( s ) + " /out:" + FN_Escape( t ) ) == 0 }, {| s, t | hb_fsCopy( s, t ) != FS_ERROR }, NIL, NIL }, ; - "pocc64" => { "" , ".lib", {| s, t | hb_processRun( "polib " + FN_Escape( s ) + " /out:" + FN_Escape( t ) ) == 0 }, NIL, {| s, t | hb_fsCopy( s, t ) != FS_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 } } + 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. , "..\sde61.dll" , , }, ; + { "sde7" , "HB_WITH_APOLLO" , "..\sde7.dll" , .F. , "..\sde7.dll" , , }, ; + { "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. , "..\libcurl.dll" , , "..\lib\libcurl.a" }, ; + { "libcurl" , "HB_WITH_CURL" , "..\bin\libcurl.dll" , .T. , "..\bin\libcurl.dll" , , "..\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" , , } } - IF GetEnv( "HB_COMPILER" ) $ hComps + #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 - comp := hb_HGet( hComps, GetEnv( "HB_COMPILER" ) ) + hComps := {; + "mingw" => { "lib", ".a" , {| s, t | hb_FCopy( s, t ) != FS_ERROR }, {| s, t | hb_FCopy( s, t ) != FS_ERROR }, NIL, {| s, t | hb_FCopy( s, t ) != FS_ERROR } }, ; + "mingw64" => { "lib", ".a" , {| s, t | hb_FCopy( s, t ) != FS_ERROR }, NIL, {| s, t | hb_FCopy( s, t ) != FS_ERROR }, {| s, t | hb_FCopy( s, t ) != FS_ERROR } }, ; + "msvc" => { "" , ".lib", {| s, t | MSVC_implib( s, t, "x86" ) }, {| s, t | hb_FCopy( s, t ) != FS_ERROR }, NIL, NIL }, ; + "msvc64" => { "" , ".lib", {| s, t | MSVC_implib( s, t, "x64" ) }, NIL, {| s, t | hb_FCopy( s, t ) != FS_ERROR }, NIL }, ; + "pocc" => { "" , ".lib", {| s, t | hb_processRun( "polib " + FN_Escape( s ) + " /out:" + FN_Escape( t ) ) == 0 }, {| s, t | hb_FCopy( s, t ) != FS_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 ) != FS_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 } } - FOR EACH lib IN aLibs - lDone := .F. - 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 ] ) - lDone := Eval( comp[ _C_PROC_LIBA ], DirAddPathSep( cBase ) + lib[ _L_LIBA ], cTarget, lib ) + 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 .AND. ! Empty( comp[ _C_PROC_LIBMS64 ] ) - lDone := Eval( comp[ _C_PROC_LIBMS64 ], DirAddPathSep( cBase ) + lib[ _L_LIBMS64 ], cTarget, lib ) + IF lDone + OutStd( "! Import library created: " + cTarget ) + OutStd( " <= " + cSource ) + OutStd( hb_osNewLine() ) ENDIF - IF ! lDone .AND. ! Empty( comp[ _C_PROC_LIBMS ] ) - lDone := Eval( comp[ _C_PROC_LIBMS ], DirAddPathSep( cBase ) + lib[ _L_LIBMS ], cTarget, lib ) - ENDIF - IF ! lDone .AND. ! Empty( comp[ _C_PROC_DLL ] ) - lDone := Eval( comp[ _C_PROC_DLL ], DirAddPathSep( cBase ) + lib[ _L_DLL ], cTarget, lib ) - ENDIF - ENDIF - IF lDone - OutStd( "! Import library created: " + cTarget, hb_osNewLine() ) - ENDIF - NEXT + NEXT + ENDIF ENDIF RETURN diff --git a/harbour/bin/postinst.bat b/harbour/bin/postinst.bat index eba00b8c1b..a4a600c5be 100644 --- a/harbour/bin/postinst.bat +++ b/harbour/bin/postinst.bat @@ -79,7 +79,7 @@ if "%HB_SHELL%" == "nt" goto _SH_NT :_NO_ICON_BIN - if "%HB_BUILD_IMPLIB%" == "yes" call "%~dp0hb-mkimp.bat" + if "%HB_BUILD_IMPLIB%" == "yes" "%HB_HOST_BIN_DIR%\hbrun" --hb:gtcgi "%~dp0hb-mkimp.prg" :_NO_IMPLIB diff --git a/harbour/package/winuni/mpkg_win_uni.bat b/harbour/package/winuni/mpkg_win_uni.bat index 75db29bec9..31e2d0dd68 100644 --- a/harbour/package/winuni/mpkg_win_uni.bat +++ b/harbour/package/winuni/mpkg_win_uni.bat @@ -19,7 +19,7 @@ echo "hb20\INSTALL" >> _hbfiles echo "hb20\COPYING" >> _hbfiles echo "hb20\TODO" >> _hbfiles echo "hb20\ChangeLog*" >> _hbfiles -echo "hb20\bin\hb-mkimp.bat" >> _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 diff --git a/harbour/package/winuni/mpkg_win_uni.nsi b/harbour/package/winuni/mpkg_win_uni.nsi index e64602ec43..12c4b52439 100644 --- a/harbour/package/winuni/mpkg_win_uni.nsi +++ b/harbour/package/winuni/mpkg_win_uni.nsi @@ -106,7 +106,7 @@ 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.bat" + File "$%HB_ROOT%hb20\bin\hb-mkimp.prg" File "$%HB_ROOT%hb20\bin\hbmk.cfg" File "$%HB_ROOT%hb20\bin\upx*.*" diff --git a/harbour/package/winuni/mpkg_win_uni_extra_copy.bat b/harbour/package/winuni/mpkg_win_uni_extra_copy.bat index 8e7b7563c9..cb6c9acd4b 100644 --- a/harbour/package/winuni/mpkg_win_uni_extra_copy.bat +++ b/harbour/package/winuni/mpkg_win_uni_extra_copy.bat @@ -10,7 +10,7 @@ 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.bat F:\hb\hb20\bin\ +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\