2009-09-08 23:23 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* utils/hbmk2/hbmk2.prg
    ! Fixed to use 'rc' AR cmd on sunos. (instead of 'rcs')
    + Added -hbdyn support for gcc family of compilers. (very light testing with mingw)
    + Added sunpro compiler support. (not tested, bazaar style)
    ! Basic CPU detection fixed for clang.
    + Added TOFIX for CPU detection for *nix based gcc, icc, clang, sunpro
      compilers.

  * config/wce/mingwarm.mk
  * config/hpux/gcc.mk
  * config/win/mingw.mk
  * config/linux/gcc.mk
  * config/linux/icc.mk
  * config/linux/sunpro.mk
  * config/sunos/gcc.mk
  * config/sunos/sunpro.mk
    * Minor: AR cmd chars reordered to be in sync with hbmk2.
This commit is contained in:
Viktor Szakats
2009-09-08 21:25:24 +00:00
parent 331fa07679
commit 5eb7150cfe
10 changed files with 174 additions and 30 deletions

View File

@@ -17,6 +17,25 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-09-08 23:23 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
! Fixed to use 'rc' AR cmd on sunos. (instead of 'rcs')
+ Added -hbdyn support for gcc family of compilers. (very light testing with mingw)
+ Added sunpro compiler support. (not tested, bazaar style)
! Basic CPU detection fixed for clang.
+ Added TOFIX for CPU detection for *nix based gcc, icc, clang, sunpro
compilers.
* config/wce/mingwarm.mk
* config/hpux/gcc.mk
* config/win/mingw.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/linux/sunpro.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
* Minor: AR cmd chars reordered to be in sync with hbmk2.
2009-09-08 14:56 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* config/darwin/clang.mk
+ Added comment with option to force C++ mode with clang.

View File

@@ -48,7 +48,7 @@ LDFLAGS += $(foreach dir,$(LIBPATHS) $(SYSLIBPATHS),-L$(dir))
AR := $(HB_CCPREFIX)ar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) cr $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) rc $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
DY := $(CC)
DFLAGS := -shared -fPIC $(foreach dir,$(SYSLIBPATHS),-L$(dir))

View File

@@ -46,7 +46,7 @@ LDFLAGS += $(foreach dir,$(LIBPATHS) $(SYSLIBPATHS),-L$(dir))
AR := $(HB_CCPREFIX)ar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) crs $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
DY := $(CC)
DFLAGS := -shared -fPIC $(foreach dir,$(SYSLIBPATHS),-L$(dir))

View File

@@ -51,7 +51,7 @@ LDFLAGS += $(foreach dir,$(LIBPATHS) $(SYSLIBPATHS),-L$(dir))
AR := xiar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) crs $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
DY := $(CC)
DFLAGS := -shared -fPIC $(foreach dir,$(SYSLIBPATHS),-L$(dir))

View File

@@ -71,7 +71,7 @@ LDFLAGS += $(foreach dir,$(LIBPATHS) $(SYSLIBPATHS),-L$(dir))
AR := ar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) crs $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
DY := $(CC)
DFLAGS := -G -KPIC $(HB_ISAOPT) $(foreach dir,$(SYSLIBPATHS),-L$(dir))

View File

@@ -46,7 +46,7 @@ LDFLAGS += $(foreach dir,$(LIBPATHS) $(SYSLIBPATHS),-L$(dir))
AR := $(HB_CCPREFIX)ar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) cr $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) rc $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
DY := $(CC)
DFLAGS := -shared -fPIC $(foreach dir,$(SYSLIBPATHS),-L$(dir))

View File

@@ -77,7 +77,7 @@ LDFLAGS += $(foreach dir,$(LIBPATHS) $(SYSLIBPATHS),-L$(dir))
AR := ar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) cr $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) rc $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false )
DY := $(CC)
DFLAGS := -G $(HB_ISAOPT) $(foreach dir,$(SYSLIBPATHS),-L$(dir))

View File

@@ -44,7 +44,7 @@ LDFLAGS += $(LIBPATHS)
AR := $(HB_CCPATH)$(HB_CCPREFIX)ar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) crs $(LIB_DIR)/$@ $(^F) || $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F) || $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)
DY := $(CC)
DFLAGS := -shared

View File

@@ -53,7 +53,7 @@ LDFLAGS += $(LIBPATHS)
AR := $(HB_CCPATH)$(HB_CCPREFIX)ar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) crs $(LIB_DIR)/$@ $(^F) || $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F) || $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)
DY := $(CC)
DFLAGS := -shared

View File

@@ -2060,7 +2060,11 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
ELSE
cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "ar"
ENDIF
cOpt_Lib := "{FA} rcs {OL} {LO}"
IF hbmk[ _HBMK_cPLAT ] == "sunos"
cOpt_Lib := "{FA} rc {OL} {LO}"
ELSE
cOpt_Lib := "{FA} rcs {OL} {LO}"
ENDIF
ENDIF
DO CASE
CASE hbmk[ _HBMK_cCOMP ] == "icc"
@@ -2082,20 +2086,22 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
ELSE
cOpt_CompC += " {LC}"
ENDIF
cBin_Dyn := cBin_CompC
cOpt_Dyn := "-shared -fPIC {FD} -o {OD} {DL} {LO} {LS}"
cBin_Link := cBin_CompC
cOpt_Link := "{LO} {LA} {FL} {DL}"
cLibPathPrefix := "-L"
cLibPathSep := " "
cLibLibExt := ".a"
IF ! lStopAfterCComp
IF l_lLIBGROUPING .AND. ;
( hbmk[ _HBMK_cPLAT ] == "linux" .OR. ;
hbmk[ _HBMK_cPLAT ] == "bsd" )
AAdd( hbmk[ _HBMK_aOPTL ], "-Wl,--start-group {LL} {LB} -Wl,--end-group" )
ELSE
AAdd( hbmk[ _HBMK_aOPTL ], "{LL} {LB}" )
l_aLIBHBBASE_2 := iif( hbmk[ _HBMK_lMT ], aLIB_BASE_2_MT, aLIB_BASE_2 )
ENDIF
IF l_lLIBGROUPING .AND. ;
( hbmk[ _HBMK_cPLAT ] == "linux" .OR. ;
hbmk[ _HBMK_cPLAT ] == "bsd" )
AAdd( hbmk[ _HBMK_aOPTL ], "-Wl,--start-group {LL} {LB} -Wl,--end-group" )
AAdd( hbmk[ _HBMK_aOPTD ], "-Wl,--start-group {LL} {LB} -Wl,--end-group" )
ELSE
AAdd( hbmk[ _HBMK_aOPTL ], "{LL} {LB}" )
AAdd( hbmk[ _HBMK_aOPTD ], "{LL} {LB}" )
l_aLIBHBBASE_2 := iif( hbmk[ _HBMK_lMT ], aLIB_BASE_2_MT, aLIB_BASE_2 )
ENDIF
IF hbmk[ _HBMK_lMAP ]
IF hbmk[ _HBMK_cPLAT ] == "darwin"
@@ -2242,6 +2248,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
ELSE
cOpt_CompC += " {LC}"
ENDIF
cBin_Dyn := cBin_CompC
cOpt_Dyn := "-shared {FD} -o {OD} {DL} {LO} {LS}"
cBin_Link := cBin_CompC
cOpt_Link := "{LO} {LA} {LS} {FL} {DL}"
cLibPathPrefix := "-L"
@@ -2274,13 +2282,13 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
IF hbmk[ _HBMK_lSHARED ]
AAdd( hbmk[ _HBMK_aLIBPATH ], l_cHB_BIN_INSTALL )
ENDIF
IF ! lStopAfterCComp
IF l_lLIBGROUPING .AND. hbmk[ _HBMK_cCOMP ] $ "mingw|mingw64|mingwarm"
AAdd( hbmk[ _HBMK_aOPTL ], "-Wl,--start-group {LL} {LB} -Wl,--end-group" )
ELSE
AAdd( hbmk[ _HBMK_aOPTL ], "{LL} {LB}" )
l_aLIBHBBASE_2 := iif( hbmk[ _HBMK_lMT ], aLIB_BASE_2_MT, aLIB_BASE_2 )
ENDIF
IF l_lLIBGROUPING .AND. hbmk[ _HBMK_cCOMP ] $ "mingw|mingw64|mingwarm"
AAdd( hbmk[ _HBMK_aOPTL ], "-Wl,--start-group {LL} {LB} -Wl,--end-group" )
AAdd( hbmk[ _HBMK_aOPTD ], "-Wl,--start-group {LL} {LB} -Wl,--end-group" )
ELSE
AAdd( hbmk[ _HBMK_aOPTL ], "{LL} {LB}" )
AAdd( hbmk[ _HBMK_aOPTD ], "{LL} {LB}" )
l_aLIBHBBASE_2 := iif( hbmk[ _HBMK_lMT ], aLIB_BASE_2_MT, aLIB_BASE_2 )
ENDIF
IF hbmk[ _HBMK_lSTRIP ]
AAdd( hbmk[ _HBMK_aOPTL ], "-s" )
@@ -2339,6 +2347,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
ELSE
cOpt_CompC += " {LC}"
ENDIF
cBin_Dyn := cBin_CompC
cOpt_Dyn := "-shared {FD} -o {OD} {DL} {LO} {LL} {LB} {LS}"
cBin_Link := cBin_CompC
cOpt_Link := "{LO} {LA} {FL} {DL}"
cLibPathPrefix := "-L"
@@ -2904,7 +2914,119 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
CASE ( hbmk[ _HBMK_cPLAT ] == "sunos" .AND. hbmk[ _HBMK_cCOMP ] == "sunpro" ) .OR. ;
( hbmk[ _HBMK_cPLAT ] == "linux" .AND. hbmk[ _HBMK_cCOMP ] == "sunpro" )
/* TODO */
nCmd_Esc := _ESC_NIX
IF hbmk[ _HBMK_lDEBUG ]
AAdd( hbmk[ _HBMK_aOPTC ], "-g" )
ENDIF
cLibLibPrefix := "lib"
cLibPrefix := "-l"
cLibExt := ""
cObjExt := ".o"
cBin_Lib := "ar"
IF hbmk[ _HBMK_cPLAT ] == "linux"
cOpt_Lib := "{FA} rcs {OL} {LO}"
ELSE
cOpt_Lib := "{FA} rc {OL} {LO}"
ENDIF
cBin_CompC := hbmk[ _HBMK_cCCPREFIX ] + iif( hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ], "sunCC", "suncc" ) + hbmk[ _HBMK_cCCPOSTFIX ]
cOpt_CompC := "-c {FC}"
IF hbmk[ _HBMK_lOPTIM ]
AAdd( hbmk[ _HBMK_aOPTC ], "-fast" )
AAdd( hbmk[ _HBMK_aOPTC ], "-xnolibmopt" )
AAdd( hbmk[ _HBMK_aOPTD ], "-fast" )
AAdd( hbmk[ _HBMK_aOPTD ], "-xnolibmopt" )
ENDIF
AAdd( hbmk[ _HBMK_aOPTC ], "-KPIC" )
IF hbmk[ _HBMK_lINC ] .AND. ! Empty( cWorkDir )
cOpt_CompC += " {IC} -o {OO}"
ELSE
cOpt_CompC += " {LC}"
ENDIF
cBin_Link := cBin_CompC
cOpt_Link := "{LO} {LA} {FL} {DL}"
cLibPathPrefix := "-L"
cLibPathSep := " "
cLibLibExt := ".a"
cBin_Dyn := cBin_CompC
cOpt_Dyn := "-G {FD} -o {OD} {DL} {LO} {LL} {LB} {LS}"
IF hbmk[ _HBMK_cPLAT ] == "linux"
AAdd( hbmk[ _HBMK_aOPTD ], "-KPIC" )
ENDIF
IF ! lStopAfterCComp
AAdd( hbmk[ _HBMK_aOPTL ], "{LL} {LB}" )
l_aLIBHBBASE_2 := iif( hbmk[ _HBMK_lMT ], aLIB_BASE_2_MT, aLIB_BASE_2 )
ENDIF
IF hbmk[ _HBMK_lMAP ]
AAdd( hbmk[ _HBMK_aOPTL ], "-M{OM}" )
ENDIF
/*
IF hbmk[ _HBMK_lSTATICFULL ]
AAdd( hbmk[ _HBMK_aOPTL ], "-static" )
ENDIF
*/
IF hbmk[ _HBMK_lSTRIP ]
AAdd( hbmk[ _HBMK_aOPTL ], "-s" )
ENDIF
IF lStopAfterCComp
IF ! lCreateLib .AND. ! lCreateDyn .AND. ( Len( hbmk[ _HBMK_aPRG ] ) + Len( hbmk[ _HBMK_aC ] ) ) == 1
AAdd( hbmk[ _HBMK_aOPTC ], "-o {OO}" )
ENDIF
ELSE
AAdd( hbmk[ _HBMK_aOPTL ], "-o {OE}" )
ENDIF
DO CASE
CASE "-DHB_PCRE_REGEX" $ cSelfFlagC
AAdd( l_aLIBSYS, "pcre" )
l_lHB_PCRE := .F.
CASE "-DHB_POSIX_REGEX" $ cSelfFlagC
l_lHB_PCRE := .F.
ENDCASE
IF "-DHB_EXT_ZLIB" $ cSelfFlagC
AAdd( l_aLIBSYS, "z" )
l_lHB_ZLIB := .F.
ENDIF
IF "-DHB_HAS_GPM" $ cSelfFlagC
AAdd( l_aLIBSYS, "gpm" )
ENDIF
/* Add system libraries */
IF ! hbmk[ _HBMK_lSHARED ]
AAdd( l_aLIBSYS, "m" )
IF hbmk[ _HBMK_lMT ]
AAdd( l_aLIBSYS, "pthread" )
ENDIF
DO CASE
CASE hbmk[ _HBMK_cPLAT ] == "linux"
AAdd( l_aLIBSYS, "rt" )
AAdd( l_aLIBSYS, "dl" )
CASE hbmk[ _HBMK_cPLAT ] == "sunos"
AAdd( l_aLIBSYS, "rt" )
AAdd( l_aLIBSYS, "socket" )
AAdd( l_aLIBSYS, "nsl" )
AAdd( l_aLIBSYS, "resolv" )
ENDCASE
ENDIF
IF IsGTRequested( hbmk, "gtcrs" )
/* TOFIX: Sometimes 'ncur194' is needed. */
AAdd( l_aLIBSYS, IIF( hbmk[ _HBMK_cPLAT ] == "sunos", "curses", "ncurses" ) )
ENDIF
IF IsGTRequested( hbmk, "gtsln" )
AAdd( l_aLIBSYS, "slang" )
ENDIF
IF IsGTRequested( hbmk, "gtxwc" )
IF hbmk[ _HBMK_cPLAT ] == "linux" .AND. hb_DirExists( "/usr/X11R6/lib64" )
AAdd( hbmk[ _HBMK_aLIBPATH ], "/usr/X11R6/lib64" )
ENDIF
AAdd( hbmk[ _HBMK_aLIBPATH ], "/usr/X11R6/lib" )
AAdd( l_aLIBSYS, "X11" )
ENDIF
IF ! Empty( hbmk[ _HBMK_cCCPATH ] )
cBin_CompC := FN_Escape( hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_CompC, nCmd_Esc )
cBin_Link := FN_Escape( hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_Link, nCmd_Esc )
ENDIF
ENDCASE
@@ -6580,10 +6702,13 @@ FUNCTION hbmk_CPU( hbmk )
DO CASE
CASE hbmk[ _HBMK_cPLAT ] $ "dos|os2" .OR. ;
hbmk[ _HBMK_cCOMP ] $ "gcc|cygwin|watcom|bcc|icc|xcc" .OR. ;
hbmk[ _HBMK_cCOMP ] == "mingw" .OR. ;
hbmk[ _HBMK_cCOMP ] == "msvc" .OR. ;
hbmk[ _HBMK_cCOMP ] == "pocc"
hbmk[ _HBMK_cCOMP ] $ "mingw|cygwin|msvc|pocc|watcom|bcc|xcc" .OR. ;
( hbmk[ _HBMK_cPLAT ] == "win" .AND. hbmk[ _HBMK_cCOMP ] == "icc" )
RETURN "x86"
CASE hbmk[ _HBMK_cCOMP ] $ "gcc|icc|clang|sunpro"
/* TOFIX: This isn't necessarily correct, since these inherit the
default CPU architecture from OS default, by and large,
and targets can be overridden using user options. */
RETURN "x86"
CASE hbmk[ _HBMK_cCOMP ] == "mingw64" .OR. ;
hbmk[ _HBMK_cCOMP ] == "msvc64" .OR. ;