2009-03-05 11:36 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk2/hbmk2.prg
+ Added -prgflag:, -cflag:, -ldflag: options.
To lessen the chance to mess up hbmk and underlying
tools, only "-" and (on non-*nix) "/" prefixed values
are accepted. Values are slash corrected by hbmk and
filters can also be used.
+ -hbcc and -hblnk will now consider raw (unrecognized and
prefixed) options as C/linker flags respectively. Values
are slash corrected and filters can also be used.
; NOTE: Passing C/linker flags directly to underlying
tools isn't a very good idea if you want to stay
portable across tools and OSes. The only exception
is the '-D' C flag which seems universally available
on all C compilers.
* "/" prefixed Harbour options will now be recognized
in normal mode on non-*nix systems.
! DOS EOL char is now ignored in .hbp/.hbm files.
+ Added -bm owatcom C compiler switch in -mt mode for win/os2/linux.
Pls test on os2/linux.
* TOFIX: Attempted to add -gui support for win/owatcom. Harbour
still complains about "It's not a GUI app". This compiler
is a real bitch with tons of similarly looking options
and no adequate online docs, so if someone feels like
it, pls correct the TOFIX section in source.
Until then GTWVT and GTWVG won't work with owatcom.
; NOTE: Most probably not, but I hope hbmk2 now qualifies for
"basic functionality".
* mpkg_win.nsi
! Fixed to not include some more unnecessary files generated
by certain linkers along the build process.
This commit is contained in:
@@ -8,6 +8,39 @@
|
||||
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
|
||||
*/
|
||||
|
||||
2009-03-05 11:36 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ Added -prgflag:, -cflag:, -ldflag: options.
|
||||
To lessen the chance to mess up hbmk and underlying
|
||||
tools, only "-" and (on non-*nix) "/" prefixed values
|
||||
are accepted. Values are slash corrected by hbmk and
|
||||
filters can also be used.
|
||||
+ -hbcc and -hblnk will now consider raw (unrecognized and
|
||||
prefixed) options as C/linker flags respectively. Values
|
||||
are slash corrected and filters can also be used.
|
||||
; NOTE: Passing C/linker flags directly to underlying
|
||||
tools isn't a very good idea if you want to stay
|
||||
portable across tools and OSes. The only exception
|
||||
is the '-D' C flag which seems universally available
|
||||
on all C compilers.
|
||||
* "/" prefixed Harbour options will now be recognized
|
||||
in normal mode on non-*nix systems.
|
||||
! DOS EOL char is now ignored in .hbp/.hbm files.
|
||||
+ Added -bm owatcom C compiler switch in -mt mode for win/os2/linux.
|
||||
Pls test on os2/linux.
|
||||
* TOFIX: Attempted to add -gui support for win/owatcom. Harbour
|
||||
still complains about "It's not a GUI app". This compiler
|
||||
is a real bitch with tons of similarly looking options
|
||||
and no adequate online docs, so if someone feels like
|
||||
it, pls correct the TOFIX section in source.
|
||||
Until then GTWVT and GTWVG won't work with owatcom.
|
||||
; NOTE: Most probably not, but I hope hbmk2 now qualifies for
|
||||
"basic functionality".
|
||||
|
||||
* mpkg_win.nsi
|
||||
! Fixed to not include some more unnecessary files generated
|
||||
by certain linkers along the build process.
|
||||
|
||||
2009-03-04 19:34 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
|
||||
* source/compiler/ppcomp.c
|
||||
! #pragma -k? options are now case-insensitive like all
|
||||
|
||||
@@ -75,7 +75,7 @@ Section "Main components" hb_main
|
||||
File /oname=COPYING "$%HB_DOC_INSTALL%\license.txt"
|
||||
|
||||
SetOutPath $INSTDIR\bin
|
||||
File /x *.tds "$%HB_BIN_INSTALL%\*.*"
|
||||
File /x *.tds /x *.lib /x *.exp "$%HB_BIN_INSTALL%\*.*"
|
||||
|
||||
SetOutPath $INSTDIR\lib
|
||||
File "$%HB_LIB_INSTALL%\*.*"
|
||||
|
||||
@@ -250,6 +250,7 @@ FUNCTION Main( ... )
|
||||
LOCAL cResPrefix
|
||||
LOCAL cResExt
|
||||
LOCAL cBinExt
|
||||
LOCAL cOptPrefix
|
||||
|
||||
LOCAL cCommand
|
||||
#if defined( HBMK_INTEGRATED_COMPILER )
|
||||
@@ -275,6 +276,7 @@ FUNCTION Main( ... )
|
||||
LOCAL lStopAfterHarbour := .F.
|
||||
LOCAL lStopAfterCComp := .F.
|
||||
LOCAL lAcceptCFlag := .F.
|
||||
LOCAL lAcceptLDFlag := .F.
|
||||
|
||||
LOCAL aParams
|
||||
LOCAL aParam
|
||||
@@ -313,9 +315,9 @@ FUNCTION Main( ... )
|
||||
CASE cParamL == "-quiet" ; t_lQuiet := .T. ; t_lInfo := .F.
|
||||
CASE Left( cParamL, 6 ) == "-comp=" ; t_cCOMP := SubStr( cParam, 7 )
|
||||
CASE Left( cParamL, 6 ) == "-arch=" ; t_cARCH := SubStr( cParam, 7 )
|
||||
CASE cParamL == "-hbcmp" ; t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T. ; lAcceptCFlag := .F.
|
||||
CASE cParamL == "-hbcmp" ; t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T.
|
||||
CASE cParamL == "-hbcc" ; t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .F. ; lAcceptCFlag := .T.
|
||||
CASE cParamL == "-hblnk" ; t_lInfo := .F.
|
||||
CASE cParamL == "-hblnk" ; t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .F. ; lAcceptLDFlag := .T.
|
||||
CASE cParamL == "-info" ; t_lInfo := .T.
|
||||
CASE cParamL == "-help" .OR. ;
|
||||
cParamL == "--help"
|
||||
@@ -334,11 +336,15 @@ FUNCTION Main( ... )
|
||||
ENDCASE
|
||||
NEXT
|
||||
|
||||
/* Emulate -hbcmp, -hbcc, -hblnk switches when certain
|
||||
self names are detected.
|
||||
For compatibility with hbmk script aliases. */
|
||||
|
||||
tmp := Lower( FN_NameGet( hb_argv( 0 ) ) )
|
||||
DO CASE
|
||||
CASE Right( tmp, 5 ) == "hbcmp" .OR. ;
|
||||
Left( tmp, 5 ) == "hbcmp"
|
||||
t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T. ; lAcceptCFlag := .F.
|
||||
t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T.
|
||||
IF t_lInfo
|
||||
OutStd( "hbmk: Enabled -hbcmp option." + hb_osNewLine() )
|
||||
ENDIF
|
||||
@@ -350,7 +356,7 @@ FUNCTION Main( ... )
|
||||
ENDIF
|
||||
CASE Right( tmp, 5 ) == "hblnk" .OR. ;
|
||||
Left( tmp, 5 ) == "hblnk"
|
||||
t_lInfo := .F.
|
||||
t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .F. ; lAcceptLDFlag := .T.
|
||||
IF t_lInfo
|
||||
OutStd( "hbmk: Enabled -hblnk option." + hb_osNewLine() )
|
||||
ENDIF
|
||||
@@ -409,6 +415,7 @@ FUNCTION Main( ... )
|
||||
t_cGTDEFAULT := "gttrm"
|
||||
cDynLibNamePrefix := "lib"
|
||||
cBinExt := NIL
|
||||
cOptPrefix := "-"
|
||||
SWITCH t_cARCH
|
||||
CASE "darwin" ; cDynLibExt := ".dylib" ; EXIT
|
||||
CASE "hpux" ; cDynLibExt := ".sl" ; EXIT
|
||||
@@ -424,6 +431,7 @@ FUNCTION Main( ... )
|
||||
cDynLibNamePrefix := ""
|
||||
cDynLibExt := ""
|
||||
cBinExt := ".exe"
|
||||
cOptPrefix := "-/"
|
||||
CASE t_cARCH == "os2"
|
||||
aCOMPDET := { { {|| FindInPath( "gcc" ) != NIL }, "gcc" },;
|
||||
{ {|| FindInPath( "wpp386" ) != NIL }, "owatcom" },; /* TODO: Add full support for wcc386 */
|
||||
@@ -435,6 +443,7 @@ FUNCTION Main( ... )
|
||||
cDynLibNamePrefix := ""
|
||||
cDynLibExt := ".dll"
|
||||
cBinExt := ".exe"
|
||||
cOptPrefix := "-/"
|
||||
CASE t_cARCH == "win"
|
||||
/* Order is significant.
|
||||
owatcom also keeps a cl.exe in it's binary dir. */
|
||||
@@ -460,6 +469,7 @@ FUNCTION Main( ... )
|
||||
cDynLibNamePrefix := ""
|
||||
cDynLibExt := ".dll"
|
||||
cBinExt := ".exe"
|
||||
cOptPrefix := "-/"
|
||||
OTHERWISE
|
||||
OutErr( "hbmk: Error: Architecture value unknown: " + t_cARCH + hb_osNewLine() )
|
||||
PauseForKey()
|
||||
@@ -718,10 +728,6 @@ FUNCTION Main( ... )
|
||||
/* Swallow this switch. We don't pass it to Harbour, as it may badly
|
||||
interact with hbmk. */
|
||||
|
||||
CASE lAcceptCFlag .AND. Left( cParamL, 2 ) == "-c"
|
||||
|
||||
lStopAfterCComp := .T.
|
||||
|
||||
CASE cParamL == "-gui" .OR. ;
|
||||
cParamL == "-mwindows" ; s_lGUI := .T. /* Compatibility */
|
||||
CASE cParamL == "-std" .OR. ;
|
||||
@@ -815,6 +821,42 @@ FUNCTION Main( ... )
|
||||
AAdd( s_aLIBUSER, PathSepToTarget( cParam ) )
|
||||
ENDIF
|
||||
|
||||
CASE Left( cParamL, Len( "-prgflag:" ) ) == "-prgflag:"
|
||||
|
||||
cParam := ArchCompFilter( SubStr( cParam, Len( "-prgflag:" ) + 1 ) )
|
||||
IF Left( cParam, 1 ) $ cOptPrefix
|
||||
AAdd( s_aOPTPRG , PathSepToTarget( cParam, 2 ) )
|
||||
ENDIF
|
||||
|
||||
CASE Left( cParamL, Len( "-cflag:" ) ) == "-cflag:"
|
||||
|
||||
cParam := ArchCompFilter( SubStr( cParam, Len( "-cflag:" ) + 1 ) )
|
||||
IF Left( cParam, 1 ) $ cOptPrefix
|
||||
AAdd( s_aOPTC , PathSepToTarget( cParam, 2 ) )
|
||||
ENDIF
|
||||
|
||||
CASE Left( cParamL, Len( "-ldflag:" ) ) == "-ldflag:"
|
||||
|
||||
cParam := ArchCompFilter( SubStr( cParam, Len( "-ldflag:" ) + 1 ) )
|
||||
IF Left( cParam, 1 ) $ cOptPrefix
|
||||
AAdd( s_aOPTL , PathSepToTarget( cParam, 2 ) )
|
||||
ENDIF
|
||||
|
||||
CASE Left( cParam, 1 ) $ cOptPrefix
|
||||
|
||||
DO CASE
|
||||
CASE lAcceptLDFlag
|
||||
AAddNotEmpty( s_aOPTL , ArchCompFilter( PathSepToTarget( cParam, 2 ) ) )
|
||||
CASE lAcceptCFlag
|
||||
IF SubStr( cParamL, 2 ) == "c"
|
||||
lStopAfterCComp := .T.
|
||||
ELSE
|
||||
AAddNotEmpty( s_aOPTC , ArchCompFilter( PathSepToTarget( cParam, 2 ) ) )
|
||||
ENDIF
|
||||
OTHERWISE
|
||||
AAddNotEmpty( s_aOPTPRG , PathSepToTarget( cParam, 2 ) )
|
||||
ENDCASE
|
||||
|
||||
CASE FN_ExtGet( cParamL ) == ".lib" .OR. ;
|
||||
FN_ExtGet( cParamL ) == cDynLibExt
|
||||
|
||||
@@ -823,10 +865,6 @@ FUNCTION Main( ... )
|
||||
AAdd( s_aLIBUSER, PathSepToTarget( cParam ) )
|
||||
ENDIF
|
||||
|
||||
CASE Left( cParam, 1 ) == "-"
|
||||
|
||||
AAdd( s_aOPTPRG , PathSepToTarget( cParam ) )
|
||||
|
||||
CASE FN_ExtGet( cParamL ) == ".hbp"
|
||||
|
||||
HBP_ProcessOne( cParam,;
|
||||
@@ -1290,6 +1328,18 @@ FUNCTION Main( ... )
|
||||
cOpt_CompC := "-w3 -5s -5r -fp5 -onaehtzr -zq -zt0 -bt=NT -oi+ -s {FC} {LC}"
|
||||
cBin_Link := "wlink"
|
||||
cOpt_Link := "OP osn=NT OP stack=65536 OP CASEEXACT {FL} NAME {OE} {LO} {DL} {LL} {LS}{SCRIPT}"
|
||||
IF s_lMT
|
||||
AAdd( s_aOPTC, "-bm" )
|
||||
ENDIF
|
||||
IF s_lGUI
|
||||
AAdd( s_aOPTC, "-bg" ) /* TOFIX */
|
||||
AAdd( s_aOPTL, "RU NAT" ) /* TOFIX */
|
||||
AAdd( s_aOPTL, "SYSTEM NT_WIN" ) /* TOFIX */
|
||||
ELSE
|
||||
AAdd( s_aOPTC, "-bc" ) /* TOFIX */
|
||||
AAdd( s_aOPTL, "RU CON" ) /* TOFIX */
|
||||
AAdd( s_aOPTL, "SYSTEM NT" ) /* TOFIX */
|
||||
ENDIF
|
||||
IF s_lDEBUG
|
||||
cOpt_Link := "DEBUG " + cOpt_Link
|
||||
ENDIF
|
||||
@@ -1363,6 +1413,9 @@ FUNCTION Main( ... )
|
||||
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
|
||||
@@ -1396,6 +1449,9 @@ FUNCTION Main( ... )
|
||||
cOpt_CompC := "-j -w3 -5s -5r -fp5 -oxehtz -zq -zt0 -mf -bt=LINUX {FC} {LC}"
|
||||
cBin_Link := "wlink"
|
||||
cOpt_Link := "ALL SYS LINUX OP CASEEXACT {FL} NAME {OE} {LO} {DL} {LL}{SCRIPT}"
|
||||
IF s_lMT
|
||||
AAdd( s_aOPTC, "-bm" )
|
||||
ENDIF
|
||||
IF s_lDEBUG
|
||||
cOpt_Link := "DEBUG " + cOpt_Link
|
||||
ENDIF
|
||||
@@ -2142,13 +2198,13 @@ STATIC FUNCTION PathSepToSelf( cFileName )
|
||||
RETURN StrTran( cFileName, "\", "/" )
|
||||
#endif
|
||||
|
||||
STATIC FUNCTION PathSepToTarget( cFileName )
|
||||
STATIC FUNCTION PathSepToTarget( cFileName, nStart )
|
||||
|
||||
IF t_cARCH $ "win|dos|os2" .AND. !( t_cCOMP $ "mingw|mingwce|cygwin" )
|
||||
RETURN StrTran( cFileName, "/", "\" )
|
||||
RETURN StrTran( cFileName, "/", "\", nStart )
|
||||
ENDIF
|
||||
|
||||
RETURN StrTran( cFileName, "\", "/" )
|
||||
RETURN StrTran( cFileName, "\", "/", nStart )
|
||||
|
||||
STATIC FUNCTION DirAddPathSep( cDir )
|
||||
|
||||
@@ -2317,7 +2373,7 @@ STATIC PROCEDURE HBP_ProcessOne( cFileName,;
|
||||
/* @ */ lSTRIP,;
|
||||
/* @ */ lRUN,;
|
||||
/* @ */ cGT )
|
||||
LOCAL cFile := hb_MemoRead( cFileName )
|
||||
LOCAL cFile := MemoRead( cFileName ) /* NOTE: Intentionally using MemoRead() which handles EOF char. */
|
||||
LOCAL cLine
|
||||
LOCAL cItem
|
||||
|
||||
@@ -2524,7 +2580,7 @@ STATIC PROCEDURE HBM_Load( aParams, cFileName, /* @ */ nEmbedLevel )
|
||||
|
||||
IF hb_FileExists( cFileName )
|
||||
|
||||
cFile := hb_MemoRead( cFileName )
|
||||
cFile := MemoRead( cFileName ) /* NOTE: Intentionally using MemoRead() which handles EOF char. */
|
||||
|
||||
IF ! hb_osNewLine() == _EOL
|
||||
cFile := StrTran( cFile, hb_osNewLine(), _EOL )
|
||||
@@ -2768,12 +2824,11 @@ STATIC PROCEDURE ShowHelp( lLong )
|
||||
" -help long help" }
|
||||
|
||||
LOCAL aText_Long := {;
|
||||
"" ,;
|
||||
" -gui|-std create GUI/console executable" ,;
|
||||
" -main=<mainfunc> override the name of starting function/procedure." ,;
|
||||
" -main=<mainfunc> override the name of starting function/procedure" ,;
|
||||
" -fullstatic link with all static libs" ,;
|
||||
" -nulrdd[-] link with nulrdd" ,;
|
||||
" -bldf[-] inherit all/no (default) flags from Harbour build" ,;
|
||||
" -bldf=[p][c][l] inherit .prg/.c/linker flags (or none) from Harbour build" ,;
|
||||
" -[no]debug add/exclude debug info" ,;
|
||||
" -[no]map create (or not) a map file" ,;
|
||||
" -[no]strip strip (no strip) binaries" ,;
|
||||
@@ -2781,9 +2836,18 @@ STATIC PROCEDURE ShowHelp( lLong )
|
||||
" -[no]trace show commands executed" ,;
|
||||
" -[no]run run/don't run the created executable" ,;
|
||||
" -nohbp do not process .hbp files in current directory" ,;
|
||||
" -hbcc, -hbcmp stop after creating the object files" ,;
|
||||
" create link/copy hbmk to hbcc/hbcmp for the same effect" ,;
|
||||
" -hblnk act as linker. Currently this is the same as -q" ,;
|
||||
"" ,;
|
||||
" -bldf[-] inherit all/no (default) flags from Harbour build" ,;
|
||||
" -bldf=[p][c][l] inherit .prg/.c/linker flags (or none) from Harbour build" ,;
|
||||
" -prgflag:<f> pass flag to Harbour" ,;
|
||||
" -cflag:<f> pass flag to C compiler" ,;
|
||||
" -ldflag:<f> pass flag to linker" ,;
|
||||
" -hbcmp stop after creating the object files" ,;
|
||||
" create link/copy hbmk to hbcmp for the same effect" ,;
|
||||
" -hbcc stop after creating the object files and accept raw C flags" ,;
|
||||
" create link/copy hbmk to hbcc for the same effect" ,;
|
||||
" -hblnk accept raw linker flags" ,;
|
||||
"" ,;
|
||||
" -arch=<arch> assume specific architecure. Same as HB_ARCHITECTURE envvar" ,;
|
||||
" -comp=<comp> use specific compiler. Same as HB_COMPILER envvar" ,;
|
||||
" Special value:" ,;
|
||||
|
||||
Reference in New Issue
Block a user