diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 0c734dc5b0..af5af7f250 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,15 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-09-29 18:49 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/config/os2/gcc.cf + * harbour/make_gnu_os2.cmd + * moved -DTCPV40HDRS to make_gnu_os2.cmd and added small description + about this macro. By default is enabled, can be disabled by + setting environment variable HB_OS2_TCP32 to 'yes', f.e. + SET HB_OS2_TCP32=yes + David and Maurilio, please check me. + 2008-09-29 13:11 UTC-0300 Antonio Carlos Pantaglione * contrib/xhb/common.mak * contrib/xhb/makefile diff --git a/harbour/config/os2/gcc.cf b/harbour/config/os2/gcc.cf index f716c2c35d..38376bddfa 100644 --- a/harbour/config/os2/gcc.cf +++ b/harbour/config/os2/gcc.cf @@ -15,19 +15,11 @@ CC_OUT = -o CPPFLAGS = -I. -I$(HB_INC_COMPILE) CFLAGS = -Wall -W -O3 -# 26/03/2004 - -# added -DTCPV40HDRS to compile with GCC 3.2.2 on OS/2 v4.0 with mixed -# 16/32 bit tcp/ip stack -# can be removed if compiled on a tcp/ip stack >= 4.1 (eComStation, -# for example), if you do not need it please use HB_OS2_NEW_TCP=yes -# environment variable. -ifneq ($(HB_OS2_NEW_TCP),yes) - CFLAGS += -DTCPV40HDRS -endif - LD = gcc LDFLAGS = -LD_OUT = -o $(SPACE) +# NOTE: The ending space after -o is important, please preserve it. +# Now solved with '$(subst x,x, )' expression. +LD_OUT = -o$(subst x,x, ) ifeq ($(C_MAIN),) ifeq ($(HB_GT_LIB),os2pm) diff --git a/harbour/make_gnu_os2.cmd b/harbour/make_gnu_os2.cmd index d31f48c8db..1404a10a68 100644 --- a/harbour/make_gnu_os2.cmd +++ b/harbour/make_gnu_os2.cmd @@ -9,4 +9,29 @@ rem for further information about see make_gnu.bat if "%HB_ARCHITECTURE%" == "" set HB_ARCHITECTURE=os2 if "%HB_COMPILER%" == "" set HB_COMPILER=gcc + +rem In GCC3.2.2 the TCP/IP headers and libraries scheme have been changed. +rem The default is the current OS/2 tcpip toolkit (BSD 4.4 based). +rem To target the older OS/2 tcpip stack (BSD 4.3 based) and create +rem binaries which can be executed also on older OS2 versions you must +rem define TCPV40HDRS before including any TCP/IP headers and make +rem sure usr/lib/tcpipv4 is searched before usr/lib (this is to +rem get the right libsocket). It is recommended to use the -D +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 L_USR environment variable, +rem f.e. +rem SET L_USR=-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 + +if "%HB_OS2_TCP32%" == "yes" goto tcp32 +if "%HB_OS2_TCP32%" == "YES" goto tcp32 + set C_USR=-DTCPV40HDRS %C_USR% +:tcp32 + make -r %1 %2 %3 %4 %5 %6 %7 %8 %9 > make_gnu.log