From 0fc19c17730a1870bda7c15911ec31ae0f435577 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Thu, 5 Mar 2009 16:30:13 +0000 Subject: [PATCH] 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. --- harbour/ChangeLog | 20 +++++ harbour/INSTALL | 10 +-- harbour/config/os2/icc.cf | 77 ------------------ harbour/config/win/dmc.cf | 97 ----------------------- harbour/doc/man/hbmk.1 | 8 +- harbour/utils/hbmk2/hbmk2.prg | 144 ++++++++++++++-------------------- 6 files changed, 87 insertions(+), 269 deletions(-) delete mode 100644 harbour/config/os2/icc.cf delete mode 100644 harbour/config/win/dmc.cf 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.