From e8ce33706989fe7dc8c71912b19291c66af1d2d3 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 22 Jul 2009 17:33:12 +0000 Subject: [PATCH] 2009-07-22 19:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * INSTALL * make_gnu.bat * Tweak to previous fix, it didn't work. Falling back to less elegant solution. * external/libhpdf/Makefile + external/libhpdf/_hbhbpdf.c + Added ugly hack to make it build on mingwarm targets. * contrib/hbssl/Makefile * contrib/hbssl/ssl.c * contrib/hbssl/bio.c * contrib/hbssl/evpmd.c * Changed to make it build on darwin. It's be better to control feature automatically by OPENSSL_VERSION_NUMBER, but documentation is very scarce. * utils/hbmk2/hbmk2.prg ! Temp fix to not pass runflags to darwin GUI programs (started via 'open'), until we find out how to make it. Prevsiously 'open' considered extra options as its own, and failed. --- harbour/ChangeLog | 24 ++++++++++++++++++++++++ harbour/INSTALL | 1 + harbour/contrib/hbssl/Makefile | 4 ++++ harbour/contrib/hbssl/bio.c | 6 ++++++ harbour/contrib/hbssl/evpmd.c | 4 ++++ harbour/contrib/hbssl/ssl.c | 2 ++ harbour/external/libhpdf/Makefile | 1 + harbour/external/libhpdf/_hbhbpdf.c | 26 ++++++++++++++++++++++++++ harbour/make_gnu.bat | 8 ++++---- harbour/utils/hbmk2/hbmk2.prg | 2 ++ 10 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 harbour/external/libhpdf/_hbhbpdf.c diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 6c5b2f428b..f6981954bf 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,30 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-07-22 19:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * INSTALL + * make_gnu.bat + * Tweak to previous fix, it didn't work. Falling back to + less elegant solution. + + * external/libhpdf/Makefile + + external/libhpdf/_hbhbpdf.c + + Added ugly hack to make it build on mingwarm targets. + + * contrib/hbssl/Makefile + * contrib/hbssl/ssl.c + * contrib/hbssl/bio.c + * contrib/hbssl/evpmd.c + * Changed to make it build on darwin. + It's be better to control feature automatically by + OPENSSL_VERSION_NUMBER, but documentation is very scarce. + + * utils/hbmk2/hbmk2.prg + ! Temp fix to not pass runflags to darwin GUI programs + (started via 'open'), until we find out how to make it. + Prevsiously 'open' considered extra options as its own, + and failed. + 2009-07-22 17:51 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * make_gnu.bat ! Added SHLVL=0 to make commands to force native shell diff --git a/harbour/INSTALL b/harbour/INSTALL index c4ce5a02e1..839bfa62cf 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -376,6 +376,7 @@ EXAMPLES --- --- MinGW GCC for WinCE/ARM (requires native x86 Harbour binaries + Cygwin) + set SHLVL=0 set PATH=C:\mingwce\opt\mingw32ce\bin;C:\cygwin\bin;%PATH% rem set HB_BIN_COMPILE=C:\hb-mingw\bin diff --git a/harbour/contrib/hbssl/Makefile b/harbour/contrib/hbssl/Makefile index 3ff8e60d51..0f21c89e3a 100644 --- a/harbour/contrib/hbssl/Makefile +++ b/harbour/contrib/hbssl/Makefile @@ -21,6 +21,10 @@ HB_INC_OPENSSL_OK += $(foreach d, $(HB_INC_OPENSSL), $(if $(wildcard $(d)/openss endif +ifeq ($(HB_ARCHITECTURE),darwin) +HB_USER_CFLAGS += -DOPENSSL_NO_SHA256 -DOPENSSL_NO_SHA512 -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_DGRAM -DHB_OPENSSL_OLD_OSX_ +endif + ifneq ($(strip $(HB_INC_OPENSSL_OK)),) HB_USER_CFLAGS += $(foreach d, $(HB_INC_OPENSSL_OK), -I$(d)) diff --git a/harbour/contrib/hbssl/bio.c b/harbour/contrib/hbssl/bio.c index 1643aac518..30dfe299c0 100644 --- a/harbour/contrib/hbssl/bio.c +++ b/harbour/contrib/hbssl/bio.c @@ -186,6 +186,7 @@ HB_FUNC( BIO_GET_FLAGS ) hb_errRT_BASE( EG_ARG, 2010, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); } +#if ! defined( HB_OPENSSL_OLD_OSX_ ) HB_FUNC( BIO_TEST_FLAGS ) { BIO * bio = hb_BIO_par( 1 ); @@ -195,6 +196,7 @@ HB_FUNC( BIO_TEST_FLAGS ) else hb_errRT_BASE( EG_ARG, 2010, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); } +#endif HB_FUNC( BIO_SET_FD ) { @@ -406,10 +408,14 @@ HB_FUNC( BIO_NEW_SOCKET ) HB_FUNC( BIO_NEW_DGRAM ) { +#ifndef OPENSSL_NO_DGRAM if( HB_ISNUM( 1 ) ) hb_retptr( BIO_new_dgram( hb_parni( 1 ), HB_ISNUM( 2 ) ? hb_parni( 2 ) : BIO_NOCLOSE ) ); else hb_errRT_BASE( EG_ARG, 2010, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); +#else + hb_errRT_BASE( EG_NOFUNC, 2010, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); +#endif } HB_FUNC( BIO_NEW_FD ) diff --git a/harbour/contrib/hbssl/evpmd.c b/harbour/contrib/hbssl/evpmd.c index e30af22ea4..d603a82d75 100644 --- a/harbour/contrib/hbssl/evpmd.c +++ b/harbour/contrib/hbssl/evpmd.c @@ -121,8 +121,10 @@ const EVP_MD * hb_EVP_MD_par( int iParam ) case HB_EVP_MD_SHA1 : p = EVP_sha1(); break; case HB_EVP_MD_DSS : p = EVP_dss(); break; case HB_EVP_MD_DSS1 : p = EVP_dss1(); break; +#if ! defined( HB_OPENSSL_OLD_OSX_ ) case HB_EVP_MD_ECDSA : p = EVP_ecdsa(); break; #endif +#endif #ifndef OPENSSL_NO_SHA256 case HB_EVP_MD_SHA224 : p = EVP_sha224(); break; case HB_EVP_MD_SHA256 : p = EVP_sha256(); break; @@ -162,8 +164,10 @@ static int hb_EVP_MD_ptr_to_id( const EVP_MD * p ) else if( p == EVP_sha1() ) n = HB_EVP_MD_SHA1; else if( p == EVP_dss() ) n = HB_EVP_MD_DSS; else if( p == EVP_dss1() ) n = HB_EVP_MD_DSS1; +#if ! defined( HB_OPENSSL_OLD_OSX_ ) else if( p == EVP_ecdsa() ) n = HB_EVP_MD_ECDSA; #endif +#endif #ifndef OPENSSL_NO_SHA256 else if( p == EVP_sha224() ) n = HB_EVP_MD_SHA224; else if( p == EVP_sha256() ) n = HB_EVP_MD_SHA256; diff --git a/harbour/contrib/hbssl/ssl.c b/harbour/contrib/hbssl/ssl.c index d393196e4c..f73ebb41be 100644 --- a/harbour/contrib/hbssl/ssl.c +++ b/harbour/contrib/hbssl/ssl.c @@ -1208,6 +1208,7 @@ HB_FUNC( SSL_GET_MODE ) hb_errRT_BASE( EG_ARG, 2010, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); } +#if ! defined( HB_OPENSSL_OLD_OSX_ ) HB_FUNC( SSL_SET_MTU ) { if( hb_SSL_is( 1 ) ) @@ -1220,6 +1221,7 @@ HB_FUNC( SSL_SET_MTU ) else hb_errRT_BASE( EG_ARG, 2010, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); } +#endif HB_FUNC( SSL_GET_CERTIFICATE ) { diff --git a/harbour/external/libhpdf/Makefile b/harbour/external/libhpdf/Makefile index f0cbad4a16..33a202929c 100644 --- a/harbour/external/libhpdf/Makefile +++ b/harbour/external/libhpdf/Makefile @@ -58,6 +58,7 @@ ifneq ($(strip $(HB_INC_LIBPNG_OK)),) HB_USER_CFLAGS += $(foreach d, $(HB_INC_LIBPNG_OK), -I$(d)) C_SOURCES = \ + _hbhbpdf.c \ hpdf_annotation.c \ hpdf_array.c \ hpdf_binary.c \ diff --git a/harbour/external/libhpdf/_hbhbpdf.c b/harbour/external/libhpdf/_hbhbpdf.c new file mode 100644 index 0000000000..84b9f2f2db --- /dev/null +++ b/harbour/external/libhpdf/_hbhbpdf.c @@ -0,0 +1,26 @@ +/* + * $Id$ + */ + +#include "hbapi.h" + +#if defined( HB_OS_WIN_CE ) + +/* NOTE: Ugly hack to make this lib work on WinCE/CEGCC platforms. [vszakats] */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +_CRTIMP int* __cdecl _errno() +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/harbour/make_gnu.bat b/harbour/make_gnu.bat index 78e90b1f3d..e2cdfa57a0 100644 --- a/harbour/make_gnu.bat +++ b/harbour/make_gnu.bat @@ -183,7 +183,7 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp set HB_CONTRIB_ADDONS= set HB_EXTERNALLIBS=no set HB_EXTERNAL_ADDONS= - %_HB_MAKE% SHLVL=0 clean install %HB_USER_MAKEFLAGS% %_HB_BUILD_LOG% + %_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %_HB_BUILD_LOG% if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL% if errorlevel 1 goto MAKE_DONE set HB_DYNLIB=no @@ -195,14 +195,14 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp set _HB_CONTRIB_ADDONS= set _HB_EXTERNALLIBS= set _HB_EXTERNAL_ADDONS= - %_HB_MAKE% SHLVL=0 clean install %HB_USER_MAKEFLAGS% %_HB_BUILD_LOG% + %_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %_HB_BUILD_LOG% if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL% goto MAKE_DONE :DO_GCC set HB_DYNLIB=no - %_HB_MAKE% SHLVL=0 clean install %HB_USER_MAKEFLAGS% %_HB_BUILD_LOG% + %_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %_HB_BUILD_LOG% if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL% goto MAKE_DONE @@ -217,7 +217,7 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp if "%HB_COMPILER%" == "cygwin" goto SKIP_WINDLL_CYG - %_HB_MAKE% SHLVL=0 %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9 %_HB_BUILD_LOG% + %_HB_MAKE% %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9 %_HB_BUILD_LOG% if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL% goto MAKE_DONE diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 30acb46d96..2df5bda385 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -4208,6 +4208,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF #elif defined( __PLATFORM__DARWIN ) IF hbmk[ _HBMK_lGUI ] + /* TOFIX: Find a way to pass arbitrary options to an .app. */ + l_aOPTRUN := {} cCommand := "open " + FN_Escape( cCommand + ".app", _ESC_NIX ) ENDIF #endif