diff --git a/harbour/ChangeLog b/harbour/ChangeLog index aab437820d..37f3ddf32f 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,29 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-09-28 22:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * INSTALL + + Added new section: LINKS TO EXTERNAL TOOL, with actual (mostly complete) content. + + Added OS/2 TCP/IP stack selection info. + + Added OS/2 gcc 3.3.x build example. + ! Minor typo. + + Added linux hosted win/mingw64 target to compatibility matrix. + + * Makefile + * Swapped shell postinst and .prg postinst invocation order. + + Executing shell specific postinst command only if it exists. + + * bin/postinst.prg + * bin/postinst.bat + - bin/postinst.cmd + + Started to migrate shell specific tasks to postinst .prg code. + ; NOTE: Please review and test, this may cause regressions in + build process. I did't actually test most of these. + + * contrib/xhb/hbcompat.ch + ! Minor typo in comment. + * Updated copyright year. + 2009-09-28 12:57 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/contrib/hbnetio/netio.h * harbour/contrib/hbnetio/netiocli.c diff --git a/harbour/INSTALL b/harbour/INSTALL index 6b84731214..887a56e8ca 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -106,6 +106,10 @@ HARBOUR > hello You should see 'Hello world!' on screen. + NOTE: To select alternative TCP/IP stack, use these commands: + set HB_USER_CFLAGS=-DTCPV40HDRS %HB_USER_CFLAGS% + set HB_USER_LDFLAGS=-LC:\usr\lib\tcpipv4 %HB_USER_LDFLAGS% + on Linux hosts -------------- (possible cross-build targets: Windows, Windows CE, MS-DOS, OS/2) @@ -551,7 +555,7 @@ HARBOUR - HB_EXTERNAL_ADDONS= Build space separated of additional libraries stored in the external directory. - HB_UTIL_ADDONS= Build space separated of additional - utilities stored in the utils directoty. + utilities stored in the utils directory. - HB_VISUALC_VER_PRE80=yes Set this if you're using a pre-8.0 (= pre-MSVS 2005) version of MSVC compiler. Default: no @@ -831,6 +835,10 @@ HARBOUR for OS/2 hosts -------------- + --- GCC 3.3.x + C:\usr\bin\gccenv.cmd + os2-make + --- Open Watcom C++ SET WATCOM=C:\watcom SET PATH=%WATCOM%\BINP;%WATCOM%\BINW;%PATH% @@ -839,7 +847,7 @@ HARBOUR SET INCLUDE=%WATCOM%\H;%WATCOM%\H\OS2 SET HELP=%WATCOM%\BINP\HELP;%HELP% SET BOOKSHELF=%WATCOM%\BINP\HELP;%BOOKSHELF% - make + os2-make --- for Linux hosts @@ -1041,6 +1049,7 @@ HARBOUR x linux -> wce/mingwarm arm x linux -> wce/mingw x86 x linux -> win/mingw x86 + x linux -> win/mingw64 x86-64 x linux -> win/watcom x86 x linux -> os2/watcom x86 x linux -> dos/watcom x86 @@ -1084,7 +1093,96 @@ HARBOUR *nix / POSIX shell (* not supported: HB_BUILD_PKG - implemented as standalone scripts) -12. HOW TO PARTICIPATE +12. LINKS TO EXTERNAL TOOLS +=========================== + + C/C++ Compilers/Shells: + + MinGW [win, *nix, free, open-soource] + http://www.tdragon.net/recentgcc/ (unofficial, recommended) + http://www.mingw.org/ (official, rarely updated, MSYS home) + MinGW x64 [win, *nix, free, open-source] + http://mingw-w64.org/ + http://mingw-w64.sourceforge.net/ + http://sourceforge.net/projects/mingw-w64/ + MinGW CEGCC [win, *nix, free, open-source] + http://cegcc.sourceforge.net/ + Cygwin [win, free, open-source] + http://www.cygwin.com/ + OS/2 GCC [os2, free, open-source] + ftp://ftp.netlabs.org/pub/gcc/ + ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip + ftp://ftp.netlabs.org/pub/gcc/libc-0_6_3-csd3.exe + DJGPP [dos, *nix, free, open-source] + http://www.delorie.com/djgpp/ + Open Watcom [win, dos, os2, linux, free, open-source] + http://www.openwatcom.org/ + XCode [darwin, free, closed-source] + http://developer.apple.com/TOOLS/Xcode/ + MS Visual Studio Express [win, free, closed-source] + http://www.microsoft.com/express/ + MS Windows SDK [win, free]: + http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx + MS Windows Mobile SDK [wce, free]: + http://www.microsoft.com/downloads/details.aspx?familyid=83A52AF2-F524-4EC5-9155-717CBE5D25ED + Pelles C [win, wce, free, closed-source] + http://www.smorgasbordet.com/pellesc/ + Borland/CodeGear/Embarcadero Compiler [win, free, closed-source] + https://downloads.embarcadero.com/free/c_builder + Intel Compiler [win, linux, darwin, commercial, closed-source] + http://software.intel.com/en-us/intel-compilers/ + + + Libraries: + + HB_WITH_ADS - Advantage Client Engine API [win, linux, free, closed-source] + http://www.sybase.com/products/databasemanagement/advantagedatabaseserver/client-engine-api + HB_WITH_ALLEGRO - Allegro [multiplatform, free, open-source] + http://alleg.sourceforge.net/ + HB_WITH_BLAT - Blat [win, free, open-source] + http://www.blat.net/ + HB_WITH_CURL - libcurl [multiplatform, free, open-source] + http://curl.haxx.se/ + HB_WITH_FIREBIRD - firebird SQL [multiplatform, free, open-source] + http://www.firebirdsql.org/ + HB_WITH_FREEIMAGE - FreeImage [multiplatform, free, open-source] + http://freeimage.sourceforge.net/ + HB_WITH_GD - GD Graphics Library [multiplatform, free, open-source] + http://www.boutell.com/gd/ + HB_WITH_LIBHARU - libharu [multiplatform, free, open-source] + http://libharu.org/ + HB_WITH_MYSQL - MySQL [multiplatform, free, open-source] + http://dev.mysql.com/downloads/ + HB_WITH_OPENSSL - OpenSSL [multiplatform, free, open-source] + http://www.openssl.org/ + HB_WITH_PCRE - Perl Compatible Regular Expressions [multiplatform, free, open-source] + http://www.pcre.org/ + HB_WITH_PGSQL - PostgreSQL [multiplatform, free, open-source] + http://www.postgresql.org/ + HB_WITH_PNG - libpng [multiplatform, free, open-source] + http://www.libpng.org/pub/png/libpng.html + HB_WITH_QT - Nokia QT [win, wce, darwin, linux, free, open-source] + http://qt.nokia.com/products + HB_WITH_SQLITE3 - sqlite3 [multiplatform, free, open-source] + http://www.sqlite.org/ + HB_WITH_WATT - Watt-32 TCP/IP [dos, free, open-source] + http://www.bgnett.no/~giva/ + HB_WITH_ZLIB - zlib [multiplatform, free, open-source] + http://www.zlib.net/ + + Tools: + + Nullsoft Installer [win, FOSS] + http://nsis.sourceforge.net/ + 7-Zip [multiplatform, FOSS] + http://www.7-zip.org/ + Info-ZIP [multiplatform, FOSS] + http://www.info-zip.org/ + UPX [win, dos, linux, FOSS] + http://upx.sourceforge.net/ + + +13. HOW TO PARTICIPATE ====================== There are several ways to help making Harbour better: @@ -1105,7 +1203,7 @@ HARBOUR various environments, etc. -13. FOR MORE INFORMATION +14. FOR MORE INFORMATION ======================== Homepage: diff --git a/harbour/Makefile b/harbour/Makefile index 57bc05da78..4cc79a9513 100644 --- a/harbour/Makefile +++ b/harbour/Makefile @@ -43,5 +43,5 @@ else endif install:: - +$(HB_POSTINST) +$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)bin/postinst.prg + $(if $(wildcard $(HB_POSTINST)),+$(HB_POSTINST),) diff --git a/harbour/bin/postinst.bat b/harbour/bin/postinst.bat index c3885a39d8..de845d4c7f 100644 --- a/harbour/bin/postinst.bat +++ b/harbour/bin/postinst.bat @@ -27,31 +27,8 @@ rem --------------------------------------------------------------- if "%HB_BIN_INSTALL%" == "" echo ! HB_BIN_INSTALL needs to be set. if "%HB_BIN_INSTALL%" == "" goto END -echo ! Making %HB_BIN_INSTALL%\hbmk.cfg... -echo # hbmk2 configuration>%HB_BIN_INSTALL%\hbmk.cfg -echo # Generated by Harbour build process>>%HB_BIN_INSTALL%\hbmk.cfg -echo.>>%HB_BIN_INSTALL%\hbmk.cfg -echo libpaths=../contrib/%%{hb_name}>>%HB_BIN_INSTALL%\hbmk.cfg -echo libpaths=../contrib/rddsql/%%{hb_name}>>%HB_BIN_INSTALL%\hbmk.cfg -echo libpaths=../addons/%%{hb_name}>>%HB_BIN_INSTALL%\hbmk.cfg -echo libpaths=../examples/%%{hb_name}>>%HB_BIN_INSTALL%\hbmk.cfg - -if not "%HB_HAS_WATT%" == "" echo.>>%HB_BIN_INSTALL%\hbmk.cfg -if not "%HB_HAS_WATT%" == "" echo {dos&djgpp}syslibs=watt>>%HB_BIN_INSTALL%\hbmk.cfg -if not "%HB_HAS_WATT%" == "" echo {dos&watcom}syslibs=wattcpwf>>%HB_BIN_INSTALL%\hbmk.cfg -if not "%HB_HAS_WATT%" == "" echo {dos}libpaths=${WATT_ROOT}/lib>>%HB_BIN_INSTALL%\hbmk.cfg - if "%HB_SHELL%" == "nt" goto _SH_NT - if "%HB_INSTALL_PREFIX%" == "" goto _NO_COPYD - - copy CHANG* %HB_INSTALL_PREFIX%\CHANGES > nul - copy COPYING %HB_INSTALL_PREFIX% > nul - copy INSTALL %HB_INSTALL_PREFIX% > nul - copy TODO %HB_INSTALL_PREFIX% > nul - - if "%HB_PLATFORM%" == "win" copy bin\hb-mkimp.bat %HB_BIN_INSTALL% > nul - :_NO_COPYD if "%HB_PLATFORM%" == "linux" goto _NO_PKG @@ -68,20 +45,6 @@ if "%HB_SHELL%" == "nt" goto _SH_NT :_SH_NT - if "%HB_INSTALL_PREFIX%" == "" goto _NO_COPY - - if "%HB_PLATFORM%" == "dos" copy ChangeLog* "%HB_INSTALL_PREFIX%\CHANGES" > nul - if not "%HB_PLATFORM%" == "dos" copy ChangeLog* "%HB_INSTALL_PREFIX%\" > nul - - copy COPYING "%HB_INSTALL_PREFIX%\" > nul - copy INSTALL "%HB_INSTALL_PREFIX%\" > nul - copy TODO "%HB_INSTALL_PREFIX%\" > nul - - if "%HB_PLATFORM%" == "win" copy bin\hb-mkimp.bat "%HB_BIN_INSTALL%\" > nul - if "%HB_PLATFORM%" == "wce" copy bin\hb-mkimp.bat "%HB_BIN_INSTALL%\" > nul - -:_NO_COPY - if "%HB_PLATFORM%" == "dos" goto _NO_DLL_BIN if "%HB_PLATFORM%" == "linux" goto _NO_DLL_BIN if "%HB_BUILD_DLL%" == "no" goto _NO_DLL_BIN diff --git a/harbour/bin/postinst.cmd b/harbour/bin/postinst.cmd deleted file mode 100644 index d63fd7bda3..0000000000 --- a/harbour/bin/postinst.cmd +++ /dev/null @@ -1,34 +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 run after Harbour make install to finish install process -rem (for OS/2) -rem --------------------------------------------------------------- - -if "%HB_BIN_INSTALL%" == "" echo ! HB_BIN_INSTALL needs to be set. -if "%HB_BIN_INSTALL%" == "" goto END - -echo ! Making %HB_BIN_INSTALL%\hbmk.cfg... -echo # hbmk2 configuration> %HB_BIN_INSTALL%\hbmk.cfg -echo # Generated by Harbour build process>> %HB_BIN_INSTALL%\hbmk.cfg -echo.>> %HB_BIN_INSTALL%\hbmk.cfg -echo libpaths=../contrib/%%{hb_name}>> %HB_BIN_INSTALL%\hbmk.cfg -echo libpaths=../contrib/rddsql/%%{hb_name}>> %HB_BIN_INSTALL%\hbmk.cfg -echo libpaths=../addons/%%{hb_name}>> %HB_BIN_INSTALL%\hbmk.cfg -echo libpaths=../examples/%%{hb_name}>> %HB_BIN_INSTALL%\hbmk.cfg - -if "%HB_INSTALL_PREFIX%" == "" goto END - -xcopy /y ChangeLog* %HB_INSTALL_PREFIX%\ > nul -xcopy /y COPYING %HB_INSTALL_PREFIX%\ > nul -xcopy /y INSTALL %HB_INSTALL_PREFIX%\ > nul -xcopy /y TODO %HB_INSTALL_PREFIX%\ > nul - -:END diff --git a/harbour/bin/postinst.prg b/harbour/bin/postinst.prg index 06b9ac7054..9e5eda14b3 100644 --- a/harbour/bin/postinst.prg +++ b/harbour/bin/postinst.prg @@ -9,8 +9,55 @@ PROCEDURE Main() LOCAL nErrorLevel := 0 + LOCAL cFile - OutStd( "! Hello from postinst.prg" + hb_osNewLine() ) + IF Empty( GetEnv( "HB_PLATFORM" ) ) .OR. ; + Empty( GetEnv( "HB_COMPILER" ) ) .OR. ; + Empty( GetEnv( "HB_BIN_INSTALL" ) ) .OR. ; + Empty( GetEnv( "HB_LIB_INSTALL" ) ) .OR. ; + Empty( GetEnv( "HB_INC_INSTALL" ) ) + + OutStd( "! Error: This program has to be called from the GNU Make process." + hb_osNewLine() ) + ErrorLevel( 1 ) + RETURN + ENDIF + + OutStd( "! Making " + GetEnv( "HB_BIN_INSTALL" ) + hb_osPathSeparator() + "hbmk.cfg..." + hb_osNewLine() ) + + cFile := "" + cFile += "# hbmk2 configuration" + hb_osNewLine() ) + cFile += "# Generated by Harbour build process" + hb_osNewLine() ) + cFile += hb_osNewLine() + cFile += "libpaths=../contrib/%{hb_name}" + hb_osNewLine() ) + cFile += "libpaths=../contrib/rddsql/%{hb_name}" + hb_osNewLine() ) + cFile += "libpaths=../addons/%{hb_name}" + hb_osNewLine() ) + cFile += "libpaths=../examples/%{hb_name}" + hb_osNewLine() ) + + IF GetEnv( "HB_PLATFORM" ) == "dos" .AND. ; + ! Empty( GetEnv( "HB_HAS_WATT" ) ) + cFile += hb_osNewLine() + cFile += "{dos&djgpp}syslibs=watt" + hb_osNewLine() ) + cFile += "{dos&watcom}syslibs=wattcpwf" + hb_osNewLine() ) + cFile += "{dos}libpaths=${WATT_ROOT}/lib" + hb_osNewLine() ) + ENDIF + + hb_MemoWrit( GetEnv( "HB_BIN_INSTALL" ) + hb_osPathSeparator() + "hbmk.cfg" ) + + IF GetEnv( "HB_PLATFORM" ) $ "win|wce|os2|dos" .AND. ; + ! Empty( GetEnv( "HB_INSTALL_PREFIX" ) ) + + FOR EACH cFile IN Directory( "Change*" ) + hb_FCopy( cFile, GetEnv( "HB_INSTALL_PREFIX" ) + hb_osPathSeparator() + iif( GetEnv( "HB_PLATFORM" ) == "dos", "CHANGES", cFile ) ) + NEXT + + hb_FCopy( "COPYING", GetEnv( "HB_INSTALL_PREFIX" ) + hb_osPathSeparator() + "COPYING" ) + hb_FCopy( "INSTALL", GetEnv( "HB_INSTALL_PREFIX" ) + hb_osPathSeparator() + "INSTALL" ) + hb_FCopy( "TODO" , GetEnv( "HB_INSTALL_PREFIX" ) + hb_osPathSeparator() + "TODO" ) + + IF GetEnv( "HB_PLATFORM" ) $ "win|wce" + hb_FCopy( "bin" + hb_osNewLine() + "hb-mkimp.bat", GetEnv( "HB_BIN_INSTALL" ) + hb_osPathSeparator() + "hb-mkimp.bat" ) + ENDIF + ENDIF ErrorLevel( nErrorLevel ) diff --git a/harbour/contrib/xhb/hbcompat.ch b/harbour/contrib/xhb/hbcompat.ch index 5e49e93f5d..b2f688df91 100644 --- a/harbour/contrib/xhb/hbcompat.ch +++ b/harbour/contrib/xhb/hbcompat.ch @@ -6,7 +6,7 @@ * Harbour Project source code: * Header file for cross-compatibility between different Harbour flavours * - * Copyright 1999-2007 {list of individual authors and e-mail addresses} + * Copyright 1999-2009 {list of individual authors and e-mail addresses} * www - http://www.harbour-project.org * * This program is free software; you can redistribute it and/or modify @@ -368,7 +368,7 @@ hb_threadStart( {|...| ():&()( ... ) } [, ] ), ; hb_threadStart( , [, ] ) ) - /* not possible to well replicate xHarbour behavior because its buggy + /* not possible to well replicate xHarbour behavior because it's buggy these function results are different on different platform, chosen translation which returns compatible types (numeric) */ #xtranslate ThreadGetCurrent() => hb_threadId()