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.
This commit is contained in:
Viktor Szakats
2009-03-05 16:30:13 +00:00
parent 75e15add2f
commit 0fc19c1773
6 changed files with 87 additions and 269 deletions

View File

@@ -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

View File

@@ -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=<DIR>
$ ./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=<DIR>
> 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

View File

@@ -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

View File

@@ -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

View File

@@ -116,16 +116,16 @@ Lines starting with '#' char are ignored
Platform filters are accepted in each .hbp line and with -l options.
Filter format: {[!][<arch|comp>]}. 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 <comp> values for each supported <arch> 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

View File

@@ -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: {[!][<arch|comp>]}. 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 <comp> values for each supported <arch> 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.