diff --git a/harbour/ChangeLog b/harbour/ChangeLog
index ba8dedb4c7..6aaf2ecdc7 100644
--- a/harbour/ChangeLog
+++ b/harbour/ChangeLog
@@ -8,6 +8,26 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
+2009-03-05 16:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
+ * doc/man/hbmk.1
+ * INSTALL
+ * utils/hbmk2/hbmk2.prg
+ - config/win/dmc.cf
+ - config/os2/icc.cf
+ - Removed win/dmc (Digital Marc C) C compiler from supported
+ compiler list. The compiler was added last year, but
+ it turned out to be too buggy for any kind of production
+ work, and the compiler's development seem to have been
+ stalled year ago.
+ This is part of the pruning effort to leave here what's
+ really needed and beneficiary for users. This will
+ reduce the test matrix and give way to more important
+ things.
+ - Removed os2/icc. IBM Visual Age isn't available for OS/2
+ since very long, and no one seems to use this compiler
+ on this platform. Harbour support also wasn't tested
+ since long.
+
2009-03-05 16:16 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* doc/man/hbmk.1
* INSTALL
diff --git a/harbour/INSTALL b/harbour/INSTALL
index e22553c42d..01eea61fd4 100644
--- a/harbour/INSTALL
+++ b/harbour/INSTALL
@@ -23,7 +23,7 @@ HOW TO BUILD AND INSTALL HARBOUR
Linux/Darwin/BSD/HP-UX/Solaris
------------------------------
- $ export HB_COMPILER=<[gcc]|owatcom|icc|...>
+ $ export HB_COMPILER=<[gcc]|owatcom|icc|gpp>
$ export HB_INSTALL_PREFIX=
$ ./make_gnu.sh
$ sudo ./make_gnu.sh install
@@ -107,7 +107,7 @@ HOW TO BUILD AND INSTALL HARBOUR
OS/2
----
- > set HB_COMPILER=<[gcc]|owatcom|icc>
+ > set HB_COMPILER=<[gcc]|owatcom>
> set HB_INSTALL_PREFIX=
> make_gnu_os2.cmd install
@@ -175,16 +175,15 @@ SUPPORTED C COMPILERS UNDER DIFFERENT PLATFORMS
msvc - Microsoft Visual C++
owatcom - Open Watcom C++
bcc - Borland/CodeGear C++ 4.x and above
- cygwin - Cygwin GNU C
- dmc - Digital Mars C
msvc64 - Microsoft Visual C++ x64
- msvcia64 - Microsoft Visual C++ ia64
+ msvcia64 - Microsoft Visual C++ IA64
mingwce - MinGW GNU C (Windows CE / ARM)
msvcce - Microsoft Visual C++ (Windows CE / ARM)
pocc - Pelles C 4.5 and above
pocc64 - Pelles C 5.0 x64
poccce - Pelles C 5.0 (Windows CE / ARM)
xcc - Pelles C for xhb
+ cygwin - Cygwin GNU C
DOS (32-bit)
---
@@ -195,7 +194,6 @@ SUPPORTED C COMPILERS UNDER DIFFERENT PLATFORMS
----
gcc - EMX GNU C
owatcom - Open Watcom C++
- icc - IBM Visual Age C++ 3.0
OPTIONS AVAILABLE WHEN BUILDING HARBOUR
diff --git a/harbour/config/os2/icc.cf b/harbour/config/os2/icc.cf
deleted file mode 100644
index c2dd8f4e71..0000000000
--- a/harbour/config/os2/icc.cf
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# $Id$
-#
-
-include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf
-
-OBJ_EXT = .obj
-EXE_EXT = .exe
-LIB_PREF =
-LIB_EXT = .lib
-
-CC = icc
-CC_IN = /C+ /Tp
-CC_OUT = /Fo
-CPPFLAGS = /I$(GRANDP) /I$(HB_INC_COMPILE)
-#CFLAGS = /Gs+ /W2 /Se /Sd+ /Ti+
-CFLAGS = /Gs+ /W2 /Se /Sd+ -DHB_LONG_LONG_OFF
-
-LD = icc
-LD_OUT = /Fe
-LDFLAGS = /C- /B"/NOIgnoreCase"
-ifeq ($(HB_MAIN),)
-else
-ifeq ($(C_MAIN),)
-ifeq ($(HB_GT_LIB),os2pm)
-LDFLAGS +=/B"/PMtype:PM" $(TOP)$(ROOT)source/vm/$(HB_ARCH)/mainpm.obj
-else
-LDFLAGS += $(TOP)$(ROOT)source/vm/$(HB_ARCH)/mainstd.obj
-endif
-endif
-endif
-ifeq ($(HB_LIB_COMPILE),)
-LINKLIBS = $(foreach lib, $(CONTRIBS), $(LIB_DIR)/$(lib)$(LIB_EXT))
-LINKLIBS += $(foreach lib, $(LIBS), $(LIB_DIR)/$(lib)$(LIB_EXT))
-# If LIBS specifies the rdd library, add all DB drivers.
-ifeq ($(findstring rdd,$(LIBS)),rdd)
-LINKLIBS += $(foreach lib, $(HB_DB_DRIVERS), $(LIB_DIR)/$(lib)$(LIB_EXT))
-endif
-else
-LINKLIBS = $(foreach lib, $(LIBS), $(lib)$(LIB_EXT))
-# If LIBS specifies the rdd library, add all DB drivers.
-ifeq ($(findstring rdd,$(LIBS)),rdd)
-LINKLIBS += $(foreach lib, $(HB_DB_DRIVERS), $(lib)$(LIB_EXT))
-endif
-endif
-
-# Add the specified GT driver library
-ifeq ($(C_MAIN),)
-ifeq ($(findstring rtl,$(LIBS)),rtl)
-ifeq ($(HB_GT_LIB),hbgfos2pm)
-# Special handling for PM mode
-LINKLIBS += $(LIB_DIR)/hbgfos2pm.lib
-LINKLIBS += $(LIB_DIR)/gtos2.lib
-else
-ifeq ($(HB_LIB_COMPILE),)
-LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(LIB_DIR)/$(gt)$(LIB_EXT))
-else
-LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT))
-endif
-endif
-endif
-endif
-
-# HB_SCREEN_LIB: empty, or one of ncurses, slang
-# HB_SCREEN_LIB=ncurses
-# HB_SCREEN_LIB=slang
-
-ifneq ($(HB_SCREEN_LIB),)
-LINKLIBS += $(HB_SCREEN_LIB)
-endif
-
-AR = ilib
-ARFLAGS = /NOE /NOIgnoreCase $(HB_USER_AFLAGS)
-AROBJS = $(foreach file, $(^F), -+$(file))
-AR_RULE = $(AR) $(ARFLAGS) $(LIB_DIR)/$@ $(AROBJS),,
-
-include $(TOP)$(ROOT)config/rules.cf
diff --git a/harbour/config/win/dmc.cf b/harbour/config/win/dmc.cf
deleted file mode 100644
index 3fcc9202ce..0000000000
--- a/harbour/config/win/dmc.cf
+++ /dev/null
@@ -1,97 +0,0 @@
-#
-# $Id$
-#
-
-# GNU MAKE file for Digital Mars Compiler
-
-include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf
-
-OBJ_EXT = .obj
-EXE_EXT = .exe
-LIB_PREF =
-LIB_EXT = .lib
-
-CC = dmc.exe
-CC_IN = -c
-CC_OUT = -o
-CPPFLAGS = -I. -I$(HB_INC_COMPILE)
-
-CFLAGS = -6 -cpp -mn -x
-# disabled - it causes that wrong code is generated
-#CFLAGS += -o+time
-# Suppressing "possible extraneous ';'" warnings. [vszakats]
-#CFLAGS += -w7
-
-# Add all libraries specified in CONTRIBS and LIBS.
-ifeq ($(HB_LIB_COMPILE),)
-LINKLIBS += $(foreach lib, $(CONTRIBS), $(LIB_DIR)\$(lib)$(LIB_EXT))
-LINKLIBS += $(foreach lib, $(LIBS), $(LIB_DIR)\$(lib)$(LIB_EXT))
-else
-LINKLIBS += $(foreach lib, $(CONTRIBS), $(HB_LIB_COMPILE)\$(lib)$(LIB_EXT))
-LINKLIBS += $(foreach lib, $(LIBS), $(HB_LIB_COMPILE)\$(lib)$(LIB_EXT))
-endif
-
-# If LIBS specifies the rdd library, add all DB drivers.
-ifeq ($(findstring rdd,$(LIBS)),rdd)
-LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), $(LIB_DIR)/$(drv)$(LIB_EXT))
-endif
-
-# Add the specified GT driver library and other RTLs
-ifeq ($(findstring rtl,$(LIBS)),rtl)
-LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(LIB_DIR)/$(gt)$(LIB_EXT))
-endif
-
-ifneq ($(HB_SCREEN_LIB),)
-LINKLIBS += $(HB_SCREEN_LIB)
-endif
-
-# Add the optional user path(s)
-#ifneq ($(LNK_USR_PATH),)
-#LINKPATHS += $(foreach path, $(LNK_USR_PATH), -L$(path))
-#endif
-
-# Add the optional user libarary (or libraries)
-ifneq ($(LNK_USR_LIB),)
-LINKLIBS += $(foreach lib, $(LNK_USR_LIB), $(lib)$(LIB_EXT))
-endif
-
-SYSLIBS = kernel32 user32 gdi32 wsock32 advapi32
-SYSLIBS += winspool comctl32 comdlg32 ole32 oleaut32 uuid
-LINKLIBS += $(SYSLIBS)
-
-
-define link_exe_file
-echo $(subst /,\,$(^F)) > __link__.tmp
-echo $@ >> __link__.tmp
-echo. >> __link__.tmp
-echo $(subst /,\,$(LINKLIBS)) >> __link__.tmp
-$(LD) $(LDFLAGS) @__link__.tmp
-endef
-
-LD = link.exe
-LDFLAGS = /NOMAP /EXETYPE:NT /SUBSYSTEM:CONSOLE $(LINKPATHS) $(HB_USER_LDFLAGS)
-ifeq ($(SHLVL),)
-LNKLIBS=$(subst /,\,$(LINKLIBS))
-else
-LNKLIBS=$(subst /,\\,$(subst \,/,$(LINKLIBS)))
-endif
-LD_RULE = $(LD) $(LDFLAGS) $(^F), $@,, $(LNKLIBS)
-
-define create_library
-echo $@ > __lib__.tmp
-echo $(^F) >> __lib__.tmp
-$(AR) $(ARFLAGS) @__lib__.tmp
-endef
-
-AR = lib.exe
-ARFLAGS = -c $(HB_USER_AFLAGS)
-AROBJS = $(foreach file, $(^F), $(file))
-AR_RULE = $(AR) $(ARFLAGS) $(LIB_DIR)/$@ $(AROBJS)
-
-ifeq ($(COMMAND_COM),yes)
-# workaround for command line size limit
-LD_RULE = $(link_exe_file)
-AR_RULE = $(create_library)
-endif
-
-include $(TOP)$(ROOT)config/rules.cf
diff --git a/harbour/doc/man/hbmk.1 b/harbour/doc/man/hbmk.1
index 24ceef73c3..4f2d676984 100644
--- a/harbour/doc/man/hbmk.1
+++ b/harbour/doc/man/hbmk.1
@@ -116,16 +116,16 @@ Lines starting with '#' char are ignored
Platform filters are accepted in each .hbp line and with -l options.
Filter format: {[!][]}. Filters can be combined
using '&', '|' operators and grouped by parantheses.
-Ex.: {win}, {gcc}, {linux|darwin}, {win&!dmc}, {(win|linux)&!owatcom}
+Ex.: {win}, {gcc}, {linux|darwin}, {win&!pocc}, {(win|linux)&!owatcom}
Defaults and feature support vary by architecture/compiler.
Supported values for each supported value:
linux: gcc, gpp, owatcom, icc, mingw, mingwce
darwin: gcc
-win: mingw, msvc, bcc, owatcom, pocc, dmc, cygwin mingwce, msvc64, msvcia64, msvcce, pocc64, poccce, xcc
-os2: gcc, owatcom, icc
-dos: gcc, djgpp, owatcom
+win: mingw, msvc, bcc, owatcom, pocc, cygwin, mingwce, msvc64, msvcia64, msvcce, pocc64, poccce
+os2: gcc, owatcom
+dos: djgpp, owatcom
bsd, hpux, sunos: gcc
.SH FILES
diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg
index c2ea1b7e02..a443661703 100644
--- a/harbour/utils/hbmk2/hbmk2.prg
+++ b/harbour/utils/hbmk2/hbmk2.prg
@@ -385,7 +385,6 @@ FUNCTION Main( ... )
CASE "bcc"
CASE "xcc"
CASE "pocc"
- CASE "dmc"
t_cARCH := "win"
EXIT
CASE "djgpp"
@@ -434,9 +433,8 @@ FUNCTION Main( ... )
cOptPrefix := "-/"
CASE t_cARCH == "os2"
aCOMPDET := { { {|| FindInPath( "gcc" ) != NIL }, "gcc" },;
- { {|| FindInPath( "wpp386" ) != NIL }, "owatcom" },; /* TODO: Add full support for wcc386 */
- { {|| FindInPath( "icc" ) != NIL }, "icc" } }
- aCOMPSUP := { "gcc", "owatcom", "icc" }
+ { {|| FindInPath( "wpp386" ) != NIL }, "owatcom" } } /* TODO: Add full support for wcc386 */
+ aCOMPSUP := { "gcc", "owatcom" }
cBin_CompPRG := "harbour.exe"
s_aLIBHBGT := { "gtos2" }
t_cGTDEFAULT := "gtos2"
@@ -456,10 +454,9 @@ FUNCTION Main( ... )
{ {|| FindInPath( "bcc32" ) != NIL }, "bcc" },;
{ {|| FindInPath( "porc64" ) != NIL }, "pocc64" },;
{ {|| FindInPath( "pocc" ) != NIL }, "pocc" },;
- { {|| FindInPath( "dmc" ) != NIL }, "dmc" },;
{ {|| FindInPath( "cygstart" ) != NIL }, "cygwin" },;
{ {|| FindInPath( "xcc" ) != NIL }, "xcc" } }
- aCOMPSUP := { "mingw", "msvc", "bcc", "owatcom", "pocc", "xcc", "dmc", "cygwin",;
+ aCOMPSUP := { "mingw", "msvc", "bcc", "owatcom", "pocc", "xcc", "cygwin",;
"msvc64", "msvcia64", "pocc64",;
"mingwce", "msvcce", "poccce" }
cBin_CompPRG := "harbour.exe"
@@ -1259,6 +1256,38 @@ FUNCTION Main( ... )
ENDIF
ENDIF
+ CASE t_cARCH == "os2" .AND. t_cCOMP == "gcc"
+ cLibPrefix := "-l"
+ cLibExt := ""
+ cObjExt := ".o"
+ cBin_CompC := "gcc.exe"
+ /* OS/2 needs a space between -o and file name following it */
+ cOpt_CompC := "{LC} {LO} -O3 {FC} -I{DI} {DL}"
+ cLibPathPrefix := "-L"
+ cLibPathSep := " "
+ IF s_lMAP
+ cOpt_CompC += " -Wl,-Map {OM}"
+ ENDIF
+ IF s_lSHARED
+ AAdd( s_aLIBPATH, "{DB}" )
+ ENDIF
+ cOpt_CompC += " {LL}"
+ aLIB_BASE2 := ArrayAJoin( { aLIB_BASE2, { "hbcommon", "hbrtl" }, s_aLIBVM } )
+ IF ! s_lSHARED
+ s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "socket" } )
+ ENDIF
+ IF s_lSTRIP
+ AAdd( s_aOPTC, "-s" )
+ ENDIF
+ IF lStopAfterCComp
+ AAdd( s_aOPTC, "-c" )
+ IF ( Len( s_aPRG ) + Len( s_aC ) ) == 1
+ AAdd( s_aOPTC, "-o {OO}" )
+ ENDIF
+ ELSE
+ AAdd( s_aOPTC, "-o {OE}" )
+ ENDIF
+
CASE t_cARCH == "dos" .AND. t_cCOMP == "djgpp"
cLibPrefix := "-l"
@@ -1354,80 +1383,26 @@ FUNCTION Main( ... )
ENDIF
ENDIF
- /* OS/2 compilers */
- CASE t_cARCH == "os2"
-
- DO CASE
- CASE t_cCOMP == "gcc"
- cLibPrefix := "-l"
- cLibExt := ""
- cObjExt := ".o"
- cBin_CompC := "gcc.exe"
- /* OS/2 needs a space between -o and file name following it */
- cOpt_CompC := "{LC} {LO} -O3 {FC} -I{DI} {DL}"
- cLibPathPrefix := "-L"
- cLibPathSep := " "
- IF s_lMAP
- cOpt_CompC += " -Wl,-Map {OM}"
- ENDIF
- IF s_lSHARED
- AAdd( s_aLIBPATH, "{DB}" )
- ENDIF
- cOpt_CompC += " {LL}"
- aLIB_BASE2 := ArrayAJoin( { aLIB_BASE2, { "hbcommon", "hbrtl" }, s_aLIBVM } )
- IF ! s_lSHARED
- s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "socket" } )
- ENDIF
- IF s_lSTRIP
- AAdd( s_aOPTC, "-s" )
- ENDIF
- IF lStopAfterCComp
- AAdd( s_aOPTC, "-c" )
- IF ( Len( s_aPRG ) + Len( s_aC ) ) == 1
- AAdd( s_aOPTC, "-o {OO}" )
- ENDIF
- ELSE
- AAdd( s_aOPTC, "-o {OE}" )
- ENDIF
-
- CASE t_cCOMP == "owatcom"
- cLibPrefix := "LIB "
- cLibExt := ".lib"
- cObjPrefix := "FILE "
- cObjExt := ".obj"
- cLibPathPrefix := "LIBPATH "
- cLibPathSep := " "
- cBin_CompC := "wpp386.exe"
- cOpt_CompC := "-j -w3 -5s -5r -fp5 -oxehtz -zq -zt0 -mf -bt=OS2 {FC} {LC}"
- cBin_Link := "wlink"
- cOpt_Link := "OP stack=65536 OP CASEEXACT {FL} NAME {OE} {LO} {DL} {LL}{SCRIPT}"
- IF s_lDEBUG
- cOpt_Link := "DEBUG " + cOpt_Link
- ENDIF
- IF s_lMT
- AAdd( s_aOPTC, "-bm" )
- ENDIF
- IF s_lMAP
- AAdd( s_aOPTL, "OP MAP" )
- ENDIF
-
- CASE t_cCOMP == "icc"
- cLibPrefix := NIL
- cLibExt := ".lib"
- cObjExt := ".obj"
- cLibPathPrefix := NIL /* TODO */
- cLibPathSep := NIL /* TODO */
- cBin_CompC := "icc.exe"
- cOpt_CompC := "/Gs+ /W2 /Se /Sd+ /Ti+ /C- /Tp {FC} -I{DI} {LC}" /* TODO: {DL} */
- IF s_lDEBUG
- AAdd( s_aOPTC, "-MTd -Zi" )
- ENDIF
- IF s_lGUI
- AAdd( s_aOPTL, "/subsystem:windows" )
- ELSE
- AAdd( s_aOPTL, "/subsystem:console" )
- ENDIF
- ENDCASE
+ CASE t_cARCH == "os2" .AND. t_cCOMP == "owatcom"
+ cLibPrefix := "LIB "
+ cLibExt := ".lib"
+ cObjPrefix := "FILE "
+ cObjExt := ".obj"
+ cLibPathPrefix := "LIBPATH "
+ cLibPathSep := " "
+ cBin_CompC := "wpp386.exe"
+ cOpt_CompC := "-j -w3 -5s -5r -fp5 -oxehtz -zq -zt0 -mf -bt=OS2 {FC} {LC}"
+ cBin_Link := "wlink"
+ cOpt_Link := "OP stack=65536 OP CASEEXACT {FL} NAME {OE} {LO} {DL} {LL}{SCRIPT}"
+ IF s_lDEBUG
+ cOpt_Link := "DEBUG " + cOpt_Link
+ ENDIF
+ IF s_lMT
+ AAdd( s_aOPTC, "-bm" )
+ ENDIF
+ IF s_lMAP
+ AAdd( s_aOPTL, "OP MAP" )
+ ENDIF
CASE t_cARCH == "linux" .AND. t_cCOMP == "owatcom"
cLibPrefix := "LIB "
@@ -1594,7 +1569,6 @@ FUNCTION Main( ... )
CASE t_cARCH == "linux" .AND. t_cCOMP == "icc"
CASE t_cARCH == "win" .AND. t_cCOMP == "pocc64" /* NOTE: Cross-platform: win/amd64 on win/x86 */
CASE t_cARCH == "win" .AND. t_cCOMP == "poccce" /* NOTE: Cross-platform: wince/ARM on win/x86 */
- CASE t_cARCH == "win" .AND. t_cCOMP == "dmc"
CASE t_cARCH $ "win|linux" .AND. t_cCOMP == "mingwce" /* NOTE: Cross-platform: wince/ARM on win/x86 */
IF ! s_lSHARED
s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "wininet", "ws2", "commdlg", "commctrl", "uuid", "ole32" } )
@@ -2862,15 +2836,15 @@ STATIC PROCEDURE ShowHelp( lLong )
" - Platform filters are accepted in each .hbp line and with -l options." ,;
" Filter format: {[!][]}. Filters can be combined " ,;
" using '&', '|' operators and grouped by parantheses." ,;
- " Ex.: {win}, {gcc}, {linux|darwin}, {win&!dmc}, {(win|linux)&!owatcom}" ,;
+ " Ex.: {win}, {gcc}, {linux|darwin}, {win&!pocc}, {(win|linux)&!owatcom}" ,;
" - Defaults and feature support vary by architecture/compiler." ,;
" - Supported values for each supported value:" ,;
" linux : gcc, gpp, owatcom, icc, mingw, mingwce" ,;
" darwin : gcc" ,;
- " win : mingw, msvc, bcc, owatcom, pocc, dmc, cygwin" ,;
+ " win : mingw, msvc, bcc, owatcom, pocc, cygwin," ,;
" mingwce, msvc64, msvcia64, msvcce, pocc64, poccce, xcc" ,;
- " os2 : gcc, owatcom, icc" ,;
- " dos : gcc, djgpp, owatcom" ,;
+ " os2 : gcc, owatcom" ,;
+ " dos : djgpp, owatcom" ,;
" bsd, hpux, sunos: gcc" }
DEFAULT lLong TO .F.