From b3de6192cb16cfec14075725d4c6fb68bb17a08d Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 7 Aug 2009 00:54:59 +0000 Subject: [PATCH] 2009-08-07 02:48 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.prg ! Fixed to ignore filtered -gt switches (like -gtxwc{unix}) without warning message. + Some small steps towards adding sunpro[64] support to hbmk2. % Merged watcom compiler support code for different platforms. (option casing also synced) ! Added "{LS}" (resources) to os2/watcom compiler cmdline. ! Added -bt=os2/nt to resource compiler cmdline for watcom. + Added '-p=64' option to win|os2|dos/watcom lib cmdline. + Added '-q' option to watcom wlib/wrc cmdlines. ! Fixed debug linker option for watcom. * config/dos/watcom.cf * config/win/watcom.cf * config/linux/watcom.cf * config/os2/watcom.cf + Added doc link to wlib tool. * Synced link option casing with each other and hbmk2. % Deleted 'export DOS4G=quiet' for win and os2. * config/global.cf + Minor cosmetic. --- harbour/ChangeLog | 24 +++ harbour/config/dos/watcom.cf | 7 +- harbour/config/global.cf | 3 +- harbour/config/linux/watcom.cf | 5 +- harbour/config/os2/watcom.cf | 10 +- harbour/config/win/watcom.cf | 10 +- harbour/utils/hbmk2/hbmk2.prg | 326 +++++++++++---------------------- 7 files changed, 147 insertions(+), 238 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 6b9297c3b4..2c3ad7f713 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,30 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-08-07 02:48 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * utils/hbmk2/hbmk2.prg + ! Fixed to ignore filtered -gt switches (like -gtxwc{unix}) + without warning message. + + Some small steps towards adding sunpro[64] support to hbmk2. + % Merged watcom compiler support code for different platforms. + (option casing also synced) + ! Added "{LS}" (resources) to os2/watcom compiler cmdline. + ! Added -bt=os2/nt to resource compiler cmdline for watcom. + + Added '-p=64' option to win|os2|dos/watcom lib cmdline. + + Added '-q' option to watcom wlib/wrc cmdlines. + ! Fixed debug linker option for watcom. + + * config/dos/watcom.cf + * config/win/watcom.cf + * config/linux/watcom.cf + * config/os2/watcom.cf + + Added doc link to wlib tool. + * Synced link option casing with each other and hbmk2. + % Deleted 'export DOS4G=quiet' for win and os2. + + * config/global.cf + + Minor cosmetic. + 2009-08-06 15:39 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.prg + In incremental (-inc) mode .c and .rc stubs are now created diff --git a/harbour/config/dos/watcom.cf b/harbour/config/dos/watcom.cf index 1ce13e7109..49b5302d02 100644 --- a/harbour/config/dos/watcom.cf +++ b/harbour/config/dos/watcom.cf @@ -8,6 +8,7 @@ # See option docs here: # http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/cpopts.html # http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/wlink.html +# http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/wlib.html # --------------------------------------------------------------- OBJ_EXT = .obj @@ -28,7 +29,7 @@ endif CC_IN = CC_OUT = -fo= -CPPFLAGS = -zq -bt=DOS +CPPFLAGS = -zq -bt=dos ifneq ($(HB_BUILD_WARN),no) CPPFLAGS += -w3 @@ -98,10 +99,10 @@ ifeq ($(LIBNAME),hbpp) # we force causeway here as workaround for reduced command line size in dos4g LDFLAGS = SYS causeway else -LDFLAGS = SYS dos4g op stub=wstubq.exe +LDFLAGS = SYS dos4g OP STUB=wstubq.exe endif ifeq ($(HB_BUILD_DEBUG),yes) -LDFLAGS := debug all $(LDFLAGS) +LDFLAGS := DEBUG ALL $(LDFLAGS) endif LINKLIBS = $(foreach lib, $(LIBS), $(LIB_DIR)/$(lib)) diff --git a/harbour/config/global.cf b/harbour/config/global.cf index e4e5cd304f..ed571aee41 100644 --- a/harbour/config/global.cf +++ b/harbour/config/global.cf @@ -111,8 +111,9 @@ ifeq ($(HB_CONFIG_SHOWN),) # HB_HOST_BUILD, HB_XBUILD, HB_WITHOUT_*, HB_REBUILD_PARSER ifeq ($(HB_DYNLIB),yes) - $(info Dynamic library creation phase) + $(info Harbour GNU Make: Dynamic library creation phase) endif + $(info Harbour GNU Make: Configuration:) ifneq ($(HB_USER_PRGFLAGS),) $(info HB_USER_PRGFLAGS: $(HB_USER_PRGFLAGS)) endif diff --git a/harbour/config/linux/watcom.cf b/harbour/config/linux/watcom.cf index 2f7863ab6b..6334013079 100644 --- a/harbour/config/linux/watcom.cf +++ b/harbour/config/linux/watcom.cf @@ -8,6 +8,7 @@ # See option docs here: # http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/cpopts.html # http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/wlink.html +# http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/wlib.html # --------------------------------------------------------------- OBJ_EXT = .o @@ -64,9 +65,9 @@ space:= $(empty) $(empty) comma:= , LD = wlink -LDFLAGS = sys Linux +LDFLAGS = SYS linux ifeq ($(HB_BUILD_DEBUG),yes) -LDFLAGS := debug all $(LDFLAGS) +LDFLAGS := DEBUG ALL $(LDFLAGS) endif LINKLIBS = $(foreach lib, $(LIBS), $(LIB_DIR)/$(lib)) diff --git a/harbour/config/os2/watcom.cf b/harbour/config/os2/watcom.cf index cd4d10ac5b..760ec3c9af 100644 --- a/harbour/config/os2/watcom.cf +++ b/harbour/config/os2/watcom.cf @@ -8,6 +8,7 @@ # See option docs here: # http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/cpopts.html # http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/wlink.html +# http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/wlib.html # --------------------------------------------------------------- OBJ_EXT = .obj @@ -28,7 +29,7 @@ endif CC_IN = CC_OUT = -fo= -CPPFLAGS = -zq -bt=OS2 +CPPFLAGS = -zq -bt=os2 ifneq ($(HB_BUILD_WARN),no) CPPFLAGS += -w3 @@ -67,9 +68,9 @@ space:= $(empty) $(empty) comma:= , LD = wlink -LDFLAGS = sys OS2V2 +LDFLAGS = SYS os2v2 ifeq ($(HB_BUILD_DEBUG),yes) -LDFLAGS := debug all $(LDFLAGS) +LDFLAGS := DEBUG ALL $(LDFLAGS) endif LINKLIBS = $(foreach lib, $(LIBS), $(LIB_DIR)/$(lib)) @@ -107,7 +108,4 @@ AR = wlib ARFLAGS = -p=64 -c -n $(HB_USER_AFLAGS) AR_RULE = $(create_library) -# disable DOS/4GW Banner -export DOS4G=quiet - include $(TOP)$(ROOT)config/rules.cf diff --git a/harbour/config/win/watcom.cf b/harbour/config/win/watcom.cf index 5d913b641f..e3de173393 100644 --- a/harbour/config/win/watcom.cf +++ b/harbour/config/win/watcom.cf @@ -8,6 +8,7 @@ # See option docs here: # http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/cpopts.html # http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/wlink.html +# http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/wlib.html # --------------------------------------------------------------- OBJ_EXT = .obj @@ -28,7 +29,7 @@ endif CC_IN = CC_OUT = -fo= -CPPFLAGS = -zq -bt=NT -bm +CPPFLAGS = -zq -bt=nt -bm ifneq ($(HB_BUILD_WARN),no) CPPFLAGS += -w3 @@ -88,9 +89,9 @@ $(foreach lib, $(GTLIBS), $(link_lib)) endef LD = wlink -LDFLAGS = SYS NT +LDFLAGS = SYS nt ifeq ($(HB_BUILD_DEBUG),yes) -LDFLAGS := debug all $(LDFLAGS) +LDFLAGS := DEBUG ALL $(LDFLAGS) endif LINKLIBS = $(foreach lib, $(LIBS), $(LIB_DIR)/$(lib)) @@ -122,7 +123,4 @@ AR = wlib ARFLAGS = -p=64 -c -n $(HB_USER_AFLAGS) AR_RULE = $(create_library) -# disable DOS/4GW Banner -export DOS4G=quiet - include $(TOP)$(ROOT)config/rules.cf diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 7f8a72da75..567b90078a 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -929,11 +929,14 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) DO CASE CASE hbmk[ _HBMK_cARCH ] $ "bsd|hpux|sunos|linux" .OR. hbmk[ _HBMK_cARCH ] == "darwin" /* Separated to avoid match with 'win' */ - IF hbmk[ _HBMK_cARCH ] == "linux" - aCOMPSUP := { "gcc", "watcom", "icc" } - ELSE + DO CASE + CASE hbmk[ _HBMK_cARCH ] == "linux" + aCOMPSUP := { "gcc", "watcom", "icc", "sunpro", "sunpro64" } + CASE hbmk[ _HBMK_cARCH ] == "sunos" + aCOMPSUP := { "gcc", "sunpro", "sunpro64" } + OTHERWISE aCOMPSUP := { "gcc" } - ENDIF + ENDCASE l_aLIBHBGT := { "gttrm" } hbmk[ _HBMK_cGTDEFAULT ] := "gttrm" cDynLibNamePrefix := "lib" @@ -1561,16 +1564,18 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) CASE Left( cParamL, 3 ) == "-gt" cParam := ArchCompFilter( hbmk, SubStr( cParam, 2 ) ) - IF hbmk[ _HBMK_cGT ] == NIL - IF ! SetupForGT( cParam, @hbmk[ _HBMK_cGT ], @hbmk[ _HBMK_lGUI ] ) - hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Invalid -gt value ignored: %1$s" ), cParam ) ) - cParam := NIL + IF ! Empty( cParam ) + IF hbmk[ _HBMK_cGT ] == NIL + IF ! SetupForGT( cParam, @hbmk[ _HBMK_cGT ], @hbmk[ _HBMK_lGUI ] ) + hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Invalid -gt value ignored: %1$s" ), cParam ) ) + cParam := NIL + ENDIF ENDIF - ENDIF - IF ! Empty( cParam ) .AND. !( Lower( cParam ) == "gtnul" ) - IF AScan( hbmk[ _HBMK_aLIBCOREGT ], {|tmp| Lower( tmp ) == cParamL } ) == 0 .AND. ; - AScan( hbmk[ _HBMK_aLIBUSERGT ], {|tmp| Lower( tmp ) == cParamL } ) == 0 - AAddNotEmpty( hbmk[ _HBMK_aLIBUSERGT ], PathSepToTarget( hbmk, cParam ) ) + IF !( Lower( cParam ) == "gtnul" ) + IF AScan( hbmk[ _HBMK_aLIBCOREGT ], {|tmp| Lower( tmp ) == cParamL } ) == 0 .AND. ; + AScan( hbmk[ _HBMK_aLIBUSERGT ], {|tmp| Lower( tmp ) == cParamL } ) == 0 + AAddNotEmpty( hbmk[ _HBMK_aLIBUSERGT ], PathSepToTarget( hbmk, cParam ) ) + ENDIF ENDIF ENDIF @@ -2043,10 +2048,6 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF ENDIF - IF hbmk[ _HBMK_cCOMP ] == "watcom" .AND. hbmk[ _HBMK_lCPP ] == NIL - hbmk[ _HBMK_lCPP ] := .T. - ENDIF - DO CASE /* GCC family */ CASE ( hbmk[ _HBMK_cARCH ] == "bsd" .AND. hbmk[ _HBMK_cCOMP ] == "gcc" ) .OR. ; @@ -2433,206 +2434,33 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF /* Watcom family */ - CASE hbmk[ _HBMK_cARCH ] == "dos" .AND. hbmk[ _HBMK_cCOMP ] == "watcom" + CASE hbmk[ _HBMK_cCOMP ] == "watcom" + + IF hbmk[ _HBMK_lCPP ] == NIL + hbmk[ _HBMK_lCPP ] := .T. + ENDIF + + IF hbmk[ _HBMK_cARCH ] == "win" + nCmd_Esc := _ESC_DBLQUOTE + nScr_Esc := _ESC_SGLQUOTE_WATCOM + ENDIF + cLibPrefix := "LIB " cLibExt := ".lib" cObjPrefix := "FILE " - cObjExt := ".obj" - cLibPathPrefix := "LIBPATH " - cLibPathSep := " " - IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ] - cBin_CompC := "wpp386" + cCCEXT + IF hbmk[ _HBMK_cARCH ] == "linux" + #if defined( __PLATFORM__UNIX ) + cObjExt := ".o" + #else + /* NOTE: This extension is used when building Linux targets on non-Linux hosts. [vszakats] */ + cObjExt := ".obj" + /* NOTE: Hack to force no extension for binaries. Otherwise they become '.elf'. [vszakats] */ + cBinExt := "." + #endif ELSE - cBin_CompC := "wcc386" + cCCEXT - ENDIF - cOpt_CompC := "" - IF hbmk[ _HBMK_lOPTIM ] - cOpt_CompC += " -5r -fp5" - cOpt_CompC += " -onaehtr -s -ei -zp4 -zt0" - IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ] - cOpt_CompC += " -oi+" - ELSE - cOpt_CompC += " -oi" - ENDIF - ENDIF - cOpt_CompC += " -zq -bt=DOS {FC}" - cOptIncMask := "-i{DI}" - IF hbmk[ _HBMK_lINC ] .AND. ! Empty( cWorkDir ) - cOpt_CompC += " {IC} -fo={OO}" - ELSE - cOpt_CompC += " {LC}" - ENDIF - IF lStopAfterCComp .AND. ! lCreateLib .AND. ! lCreateDyn - IF ( Len( hbmk[ _HBMK_aPRG ] ) + Len( hbmk[ _HBMK_aC ] ) ) == 1 - AAdd( hbmk[ _HBMK_aOPTC ], "-fo={OO}" ) - ELSE - AAdd( hbmk[ _HBMK_aOPTC ], "-fo={OD}" ) - ENDIF - ENDIF - cBin_Link := "wlink" + cCCEXT - cOpt_Link := "SYS dos4g op stub=wstubq.exe {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}" - cBin_Lib := "wlib" + cCCEXT - cOpt_Lib := "{FA} {OL} {LO}{SCRIPT}" - cLibLibExt := cLibExt - cLibObjPrefix := "-+ " - IF hbmk[ _HBMK_lDEBUG ] - AAdd( hbmk[ _HBMK_aOPTC ], "-d2" ) - cOpt_Link := "DEBUG ALL" + cOpt_Link - ENDIF - IF hbmk[ _HBMK_lMAP ] - AAdd( hbmk[ _HBMK_aOPTL ], "OP MAP" ) - ENDIF - - CASE hbmk[ _HBMK_cARCH ] == "win" .AND. hbmk[ _HBMK_cCOMP ] == "watcom" - nCmd_Esc := _ESC_DBLQUOTE - nScr_Esc := _ESC_SGLQUOTE_WATCOM - cLibPrefix := "LIB " - cLibExt := ".lib" - cObjPrefix := "FILE " - cObjExt := ".obj" - cLibPathPrefix := "LIBPATH " - cLibPathSep := " " - IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ] - cBin_CompC := "wpp386" + cCCEXT - ELSE - cBin_CompC := "wcc386" + cCCEXT - ENDIF - cOpt_CompC := "" - IF hbmk[ _HBMK_lOPTIM ] - cOpt_CompC += " -6s -fp6" - cOpt_CompC += " -onaehtr -s -ei -zp4 -zt0" - IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ] - cOpt_CompC += " -oi+" - ELSE - cOpt_CompC += " -oi" - ENDIF - ELSE - cOpt_CompC += " -3s" - ENDIF - cOpt_CompC += " -zq -bt=NT {FC}" - cOptIncMask := "-i{DI}" - IF hbmk[ _HBMK_lINC ] .AND. ! Empty( cWorkDir ) - cOpt_CompC += " {IC} -fo={OO}" - ELSE - cOpt_CompC += " {LC}" - ENDIF - IF lStopAfterCComp .AND. ! lCreateLib .AND. ! lCreateDyn - IF ( Len( hbmk[ _HBMK_aPRG ] ) + Len( hbmk[ _HBMK_aC ] ) ) == 1 - AAdd( hbmk[ _HBMK_aOPTC ], "-fo={OO}" ) - ELSE - AAdd( hbmk[ _HBMK_aOPTC ], "-fo={OD}" ) - ENDIF - ENDIF - cBin_Link := "wlink" + cCCEXT - cOpt_Link := "{FL} NAME {OE} {LO} {DL} {LL} {LB} {LS}{SCRIPT}" - cBin_Lib := "wlib" + cCCEXT - cOpt_Lib := "{FA} {OL} {LO}{SCRIPT}" - cLibLibExt := cLibExt - cLibObjPrefix := "-+ " - IF hbmk[ _HBMK_lMT ] - AAdd( hbmk[ _HBMK_aOPTC ], "-bm" ) - ENDIF - IF hbmk[ _HBMK_lGUI ] - /* NOTE: These could probably be optimized */ - AAdd( hbmk[ _HBMK_aOPTC ], "-bg" ) - AAdd( hbmk[ _HBMK_aOPTL ], "RU NAT" ) - AAdd( hbmk[ _HBMK_aOPTL ], "SYSTEM NT_WIN" ) - ELSE - /* NOTE: These could probably be optimized */ - AAdd( hbmk[ _HBMK_aOPTC ], "-bc" ) - AAdd( hbmk[ _HBMK_aOPTL ], "RU CON" ) - AAdd( hbmk[ _HBMK_aOPTL ], "SYSTEM NT" ) - ENDIF - IF hbmk[ _HBMK_lDEBUG ] - AAdd( hbmk[ _HBMK_aOPTC ], "-d2" ) - cOpt_Link := "DEBUG ALL" + cOpt_Link - ENDIF - IF hbmk[ _HBMK_lMAP ] - AAdd( hbmk[ _HBMK_aOPTL ], "OP MAP" ) - ENDIF - l_aLIBSYS := ArrayAJoin( { l_aLIBSYS, l_aLIBSYSCORE, l_aLIBSYSMISC } ) - l_aLIBSHARED := { iif( hbmk[ _HBMK_lMT ], "harbourmt" + cDL_Version_Alter + cLibExt,; - "harbour" + cDL_Version_Alter + cLibExt ) } - - IF hbmk[ _HBMK_lSHARED ] - AAdd( hbmk[ _HBMK_aOPTL ], "FILE " + FN_ExtSet( l_cHB_LIB_INSTALL + hb_osPathSeparator() + iif( hbmk[ _HBMK_lGUI ], "hbmainwin", "hbmainstd" ), cLibExt ) ) - ENDIF - - cBin_Res := "wrc" + cCCEXT - cResExt := ".res" - cOpt_Res := "-r {FR} -zm {IR} -fo={OS}" - cResPrefix := "OP res=" - - CASE hbmk[ _HBMK_cARCH ] == "os2" .AND. hbmk[ _HBMK_cCOMP ] == "watcom" - cLibPrefix := "LIB " - cLibExt := ".lib" - cObjPrefix := "FILE " - cObjExt := ".obj" - cLibPathPrefix := "LIBPATH " - cLibPathSep := " " - IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ] - cBin_CompC := "wpp386" + cCCEXT - ELSE - cBin_CompC := "wcc386" + cCCEXT - ENDIF - cOpt_CompC := "" - IF hbmk[ _HBMK_lOPTIM ] - cOpt_CompC += " -5r -fp5" - cOpt_CompC += " -onaehtr -s -ei -zp4 -zt0" - IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ] - cOpt_CompC += " -oi+" - ELSE - cOpt_CompC += " -oi" - ENDIF - ENDIF - cOpt_CompC += " -zq -bt=OS2 {FC}" - cOptIncMask := "-i{DI}" - IF hbmk[ _HBMK_lINC ] .AND. ! Empty( cWorkDir ) - cOpt_CompC += " {IC} -fo={OO}" - ELSE - cOpt_CompC += " {LC}" - ENDIF - IF lStopAfterCComp .AND. ! lCreateLib .AND. ! lCreateDyn - IF ( Len( hbmk[ _HBMK_aPRG ] ) + Len( hbmk[ _HBMK_aC ] ) ) == 1 - AAdd( hbmk[ _HBMK_aOPTC ], "-fo={OO}" ) - ELSE - AAdd( hbmk[ _HBMK_aOPTC ], "-fo={OD}" ) - ENDIF - ENDIF - cBin_Link := "wlink" + cCCEXT - cOpt_Link := "SYS OS2V2 {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}" - cBin_Lib := "wlib" + cCCEXT - cOpt_Lib := "{FA} {OL} {LO}{SCRIPT}" - cLibLibExt := cLibExt - cLibObjPrefix := "-+ " - IF hbmk[ _HBMK_lDEBUG ] - AAdd( hbmk[ _HBMK_aOPTC ], "-d2" ) - cOpt_Link := "DEBUG ALL" + cOpt_Link - ENDIF - IF hbmk[ _HBMK_lMT ] - AAdd( hbmk[ _HBMK_aOPTC ], "-bm" ) - ENDIF - IF hbmk[ _HBMK_lMAP ] - AAdd( hbmk[ _HBMK_aOPTL ], "OP MAP" ) - ENDIF - - cBin_Res := "wrc" + cCCEXT - cResExt := ".res" - cOpt_Res := "-r {FR} -zm {IR} -fo={OS}" - cResPrefix := "OP res=" - - CASE hbmk[ _HBMK_cARCH ] == "linux" .AND. hbmk[ _HBMK_cCOMP ] == "watcom" - cLibPrefix := "LIB " - cLibExt := ".lib" - cObjPrefix := "FILE " - #if defined( __PLATFORM__UNIX ) - cObjExt := ".o" - #else - /* NOTE: This extension is used when building Linux targets on non-Linux hosts. [vszakats] */ cObjExt := ".obj" - /* NOTE: Hack to force no extension for binaries. Otherwise they become '.elf'. [vszakats] */ - cBinExt := "." - #endif + ENDIF + cLibPathPrefix := "LIBPATH " cLibPathSep := " " IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ] @@ -2642,15 +2470,28 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF cOpt_CompC := "" IF hbmk[ _HBMK_lOPTIM ] - cOpt_CompC += " -6r -fp6" + DO CASE + CASE hbmk[ _HBMK_cARCH ] == "linux" ; cOpt_CompC += " -6r -fp6" + CASE hbmk[ _HBMK_cARCH ] == "win" ; cOpt_CompC += " -6s -fp6" + CASE hbmk[ _HBMK_cARCH ] $ "dos|os2" ; cOpt_CompC += " -5r -fp5" + ENDCASE cOpt_CompC += " -onaehtr -s -ei -zp4 -zt0" IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ] cOpt_CompC += " -oi+" ELSE cOpt_CompC += " -oi" ENDIF + ELSE + IF hbmk[ _HBMK_cARCH ] == "win" + cOpt_CompC += " -3s" + ENDIF ENDIF - cOpt_CompC += " -zq -bt=linux {FC}" + DO CASE + CASE hbmk[ _HBMK_cARCH ] == "linux" ; cOpt_CompC += " -zq -bt=linux {FC}" + CASE hbmk[ _HBMK_cARCH ] == "win" ; cOpt_CompC += " -zq -bt=nt {FC}" + CASE hbmk[ _HBMK_cARCH ] == "dos" ; cOpt_CompC += " -zq -bt=dos {FC}" + CASE hbmk[ _HBMK_cARCH ] == "os2" ; cOpt_CompC += " -zq -bt=os2 {FC}" + ENDCASE cOptIncMask := "-i{DI}" IF hbmk[ _HBMK_lINC ] .AND. ! Empty( cWorkDir ) cOpt_CompC += " {IC} -fo={OO}" @@ -2665,21 +2506,61 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF ENDIF cBin_Link := "wlink" + cCCEXT - cOpt_Link := "SYS LINUX {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}" + DO CASE + CASE hbmk[ _HBMK_cARCH ] == "linux" ; cOpt_Link := "SYS linux {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}" + CASE hbmk[ _HBMK_cARCH ] == "win" ; cOpt_Link := "{FL} NAME {OE} {LO} {DL} {LL} {LB} {LS}{SCRIPT}" + CASE hbmk[ _HBMK_cARCH ] == "dos" ; cOpt_Link := "SYS dos4g OP STUB=wstubq.exe {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}" + CASE hbmk[ _HBMK_cARCH ] == "os2" ; cOpt_Link := "SYS os2v2 {FL} NAME {OE} {LO} {DL} {LL} {LB} {LS}{SCRIPT}" + ENDCASE cBin_Lib := "wlib" + cCCEXT - cOpt_Lib := "{FA} {OL} {LO}{SCRIPT}" + cOpt_Lib := "-q {FA} {OL} {LO}{SCRIPT}" cLibLibExt := cLibExt cLibObjPrefix := "-+ " - IF hbmk[ _HBMK_lMT ] + IF hbmk[ _HBMK_lMT ] .AND. hbmk[ _HBMK_cARCH ] $ "linux|win|os2" AAdd( hbmk[ _HBMK_aOPTC ], "-bm" ) ENDIF + IF hbmk[ _HBMK_cARCH ] == "win" + IF hbmk[ _HBMK_lGUI ] + /* NOTE: These could probably be optimized */ + AAdd( hbmk[ _HBMK_aOPTC ], "-bg" ) + AAdd( hbmk[ _HBMK_aOPTL ], "RU NAT" ) + AAdd( hbmk[ _HBMK_aOPTL ], "SYS nt_win" ) + ELSE + /* NOTE: These could probably be optimized */ + AAdd( hbmk[ _HBMK_aOPTC ], "-bc" ) + AAdd( hbmk[ _HBMK_aOPTL ], "RU CON" ) + AAdd( hbmk[ _HBMK_aOPTL ], "SYS nt" ) + ENDIF + ENDIF IF hbmk[ _HBMK_lDEBUG ] AAdd( hbmk[ _HBMK_aOPTC ], "-d2" ) - cOpt_Link := "DEBUG ALL" + cOpt_Link + cOpt_Link := "DEBUG ALL " + cOpt_Link ENDIF IF hbmk[ _HBMK_lMAP ] AAdd( hbmk[ _HBMK_aOPTL ], "OP MAP" ) ENDIF + IF hbmk[ _HBMK_cARCH ] $ "win|os2|dos" + AAdd( hbmk[ _HBMK_aOPTA ], "-p=64" ) + ENDIF + IF hbmk[ _HBMK_cARCH ] == "win" + l_aLIBSYS := ArrayAJoin( { l_aLIBSYS, l_aLIBSYSCORE, l_aLIBSYSMISC } ) + l_aLIBSHARED := { iif( hbmk[ _HBMK_lMT ], "harbourmt" + cDL_Version_Alter + cLibExt,; + "harbour" + cDL_Version_Alter + cLibExt ) } + + IF hbmk[ _HBMK_lSHARED ] + AAdd( hbmk[ _HBMK_aOPTL ], "FILE " + FN_ExtSet( l_cHB_LIB_INSTALL + hb_osPathSeparator() + iif( hbmk[ _HBMK_lGUI ], "hbmainwin", "hbmainstd" ), cLibExt ) ) + ENDIF + ENDIF + IF hbmk[ _HBMK_cARCH ] $ "win|os2" + cBin_Res := "wrc" + cCCEXT + cResExt := ".res" + cOpt_Res := "-q -r {FR} -zm {IR} -fo={OS}" + DO CASE + CASE hbmk[ _HBMK_cARCH ] == "win" ; cOpt_Res += " -bt=nt" /* default */ + CASE hbmk[ _HBMK_cARCH ] == "os2" ; cOpt_Res += " -bt=os2" + ENDCASE + cResPrefix := "OP RES=" + ENDIF CASE hbmk[ _HBMK_cARCH ] == "win" .AND. hbmk[ _HBMK_cCOMP ] == "bcc" IF hbmk[ _HBMK_lDEBUG ] @@ -2985,6 +2866,11 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) l_aLIBSHAREDPOST := { "hbmainstd", "hbmainwin" } + CASE ( hbmk[ _HBMK_cARCH ] == "sunos" .AND. hbmk[ _HBMK_cCOMP ] $ "sunpro|sunpro64" ) .OR. ; + ( hbmk[ _HBMK_cARCH ] == "linux" .AND. hbmk[ _HBMK_cCOMP ] $ "sunpro|sunpro64" ) + + /* TODO */ + ENDCASE /* NOTE: We only use different shared object flags when compiling for @@ -6755,7 +6641,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong ) LOCAL aText_Supp := {; "",; I_( "Supported values for each supported value:" ),; - " - linux : gcc, watcom, icc",; + " - linux : gcc, watcom, icc, sunpro, sunpro64",; " - darwin : gcc",; " - win : mingw, msvc, bcc, watcom, icc, pocc, cygwin, xcc,",; " - mingw64, msvc64, msvcia64, iccia64, pocc64",; @@ -6764,7 +6650,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong ) " - dos : djgpp, watcom",; " - bsd : gcc",; " - hpux : gcc",; - " - sunos : gcc" } + " - sunos : gcc, sunpro, sunpro64" } LOCAL aOpt_Basic := {; { "-o" , I_( "output file name" ) },;