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.