From f265fbac29f586ad14ba6ecd5ca80e62f9ada6db Mon Sep 17 00:00:00 2001 From: Luiz Rafael Culik Date: Tue, 12 Dec 2000 23:16:58 +0000 Subject: [PATCH] See changelog 2000-12-12 21:16 GMT -3 --- harbour/utils/hbmake/hbmake.prg | 184 +++++++++++++++++++------------- 1 file changed, 110 insertions(+), 74 deletions(-) diff --git a/harbour/utils/hbmake/hbmake.prg b/harbour/utils/hbmake/hbmake.prg index 6f8d290912..cb8e1f47ee 100644 --- a/harbour/utils/hbmake/hbmake.prg +++ b/harbour/utils/hbmake/hbmake.prg @@ -77,9 +77,12 @@ Function main( cFile, p1, p2, p3 ) Local nPos Local aDef := {} +Local allParam Default p1 To "" Default p2 To "" Default p3 To "" +allParam:=Upper(p1) + Upper(p2) +p3 +allparam:=strtran(allparam,"/","-") If Pcount() == 0 ?? "Harbour Make Utility" ? "Copyright 1999-2000, http://www.harbour-project.org" @@ -101,35 +104,44 @@ If cFile == NIL Return Nil Endif If Pcount() == 2 - If Upper( Left( p1, 2 ) ) == "-B" .or. Upper( Left( p1, 2 ) ) == "/B" + if at("-B",allparam)>0 lBcc := .T. lGcc := .F. lVcc := .F. + allparam:=strtran(allparam,"-B","") Endif - If Upper( Left( p1, 2 ) ) == "-G" .or. Upper( Left( p1, 2 ) ) == "/G" +if at("-G",allparam)>0 lBcc := .F. lGcc := .T. lVcc := .F. + allparam:=strtran(allparam,"-G","") Endif - If Upper( Left( p1, 2 ) ) == "-V" .or. Upper( Left( p1, 2 ) ) == "/V" + if at("-V",allparam)>0 + lBcc := .F. lGcc := .F. lVcc := .T. + allparam:=strtran(allparam,"-V","") Endif - If Upper( Left( p1, 2 ) ) == "-E" .or. Upper( Left( p1, 2 ) ) == "/E" +if at("-E",allparam)>0 + + allparam:=strtran(allparam,"-E","") + crtmakfile( cFile ) Return nil Endif - If Upper( Left( p1, 2 ) ) == "-P" .or. Upper( Left( p1, 2 ) ) == "/P" + if at("-P",allparam)>0 lPrint := .t. - Endif + allparam:=strtran(allparam,"-P","") - If Upper( Left( p1, 2 ) ) == "-D" .or. Upper( Left( p1, 2 ) ) == "/D" - adef := listasarray2( Substr( p1, 3 ), ";" ) + + Endif + if at("-D",allparam)>0 + adef := listasarray2( alltrim(Substr( allparam, 3 )), ";" ) For nPos := 1 To Len( aDef ) If At( "=", adef[ nPos ] ) > 0 GetParaDefines( aDef[ nPos ] ) @@ -138,46 +150,52 @@ If Pcount() == 2 Endif Endif If Pcount() > 2 - If Upper( Left( p1, 2 ) ) == "-E" .or. Upper( Left( p1, 2 ) ) == "/E" .or. ; - Upper( Left( p2, 2 ) ) == "-E" .or. Upper( Left( p2, 2 ) ) == "/E" .or. ; - Upper( Left( p3, 2 ) ) == "-E" .or. Upper( Left( p3, 2 ) ) == "/E" + if at("-B",allparam)>0 + lBcc := .T. + lGcc := .F. + lVcc := .F. + allparam:=strtran(allparam,"-B","") + + Endif +if at("-G",allparam)>0 + lBcc := .F. + lGcc := .T. + lVcc := .F. + allparam:=strtran(allparam,"-G","") + + + Endif + if at("-V",allparam)>0 + + lBcc := .F. + lGcc := .F. + lVcc := .T. + allparam:=strtran(allparam,"-V","") + + + Endif +if at("-E",allparam)>0 + allparam:=strtran(allparam,"-E","") + + crtmakfile( cFile ) Return nil Endif - If Upper( Left( p1, 2 ) ) == "-P" .or. Upper( Left( p1, 2 ) ) == "/P" .or. Upper( Left( p2, 2 ) ) == "-P" .or. Upper( Left( p2, 2 ) ) == "/P" .or. Upper( Left( p3, 2 ) ) == "-P" .or. Upper( Left( p3, 2 ) ) == "/P" + if at("-P",allparam)>0 lPrint := .t. - Endif + allparam:=strtran(allparam,"-P","") - If Upper( Left( p1, 2 ) ) == "-D" .or. Upper( Left( p1, 2 ) ) == "/D" .or. Upper( Left( p2, 2 ) ) == "-D" .or. Upper( Left( p2, 2 ) ) == "/D" .or. Upper( Left( p3, 2 ) ) == "-D" .or. Upper( Left( p3, 2 ) ) == "/D" - adef := listasarray2( Substr( p1, 3 ), ";" ) + + Endif + if at("-D",allparam)>0 + adef := listasarray2( alltrim(Substr( allparam, 3 )), ";" ) For nPos := 1 To Len( aDef ) If At( "=", adef[ nPos ] ) > 0 GetParaDefines( aDef[ nPos ] ) Endif Next Endif - If Upper( Left( p1, 2 ) ) == "-B" .or. Upper( Left( p1, 2 ) ) == "/B" .or. Upper( Left( p2, 2 ) ) == "-B" .or. Upper( Left( p2, 2 ) ) == "/B" .or. Upper( Left( p3, 2 ) ) == "-B" .or. Upper( Left( p3, 2 ) ) == "/B" - lBcc := .T. - lGcc := .F. - lVcc := .F. - - Endif - If Upper( Left( p1, 2 ) ) == "-G" .or. Upper( Left( p1, 2 ) ) == "/G" .or. Upper( Left( p2, 2 ) ) == "-G" .or. Upper( Left( p2, 2 ) ) == "/G" .or. Upper( Left( p3, 2 ) ) == "-G" .or. Upper( Left( p3, 2 ) ) == "/G" - - lBcc := .F. - lGcc := .T. - lVcc := .F. - - Endif - If Upper( Left( p1, 2 ) ) == "-V" .or. Upper( Left( p1, 2 ) ) == "/V" .or. Upper( Left( p2, 2 ) ) == "-V" .or. Upper( Left( p2, 2 ) ) == "/V" .or. Upper( Left( p3, 2 ) ) == "-V" .or. Upper( Left( p3, 2 ) ) == "/V" - - lBcc := .F. - lGcc := .F. - lVcc := .T. - - Endif - Endif parsemakfi( cFile ) @@ -211,16 +229,12 @@ Local aTemp := {} Local lMacrosec := .f. Local lBuildSec := .f. Local lComSec := .f. -// ? "i'm in parsemakfi()" -// ?"cfile= ",cfile nHandle := FT_FUSE( cFile ) -//nHandle:=fopen(cFile) -// ? "nhandle",nhandle If nHandle < 0 Return nil Endif cBuffer := Trim( Substr( ReadLN( @lEof ), 1 ) ) -// ? "setting Defines" + Aadd( aDefines, { "HMAKEDIR", If( lgcc, GetMakeDir(), GetMakeDir() + "\.." ) } ) If lBcc Aadd( aDefines, { "MAKEDIR", GetBccDir() + "\.." } ) @@ -363,7 +377,7 @@ Function GetMakeDir() Local cPath := "" Local cExe := HB_ARGV( 0 ) -// ? "get hbmake path" + cPath := Left( cexe, Rat( "\", cexe ) - 1 ) Return cPath @@ -381,14 +395,12 @@ Local cPath := '' Local cEnv := Gete( "PATH" ) Local aEnv := listasarray2( cEnv, ";" ) Local nPos -// ? "get bcc32 path" + For nPos := 1 To Len( aEnv ) - // ? aenv[nPos] - // ? nPos If File( aenv[ nPos ] + '\bcc32.exe' ) .or. File( Upper( aenv[ nPos ] ) + '\BCC32.EXE' ) cPath := aenv[ nPos ] - // ? cPath + Exit Endif Next @@ -409,14 +421,12 @@ Local cPath := '' Local cEnv := Gete( "PATH" ) Local aEnv := listasarray2( cEnv, ";" ) Local nPos -// ? "get bcc32 path" + For nPos := 1 To Len( aEnv ) - // ? aenv[nPos] - // ? nPos If File( aenv[ nPos ] + '\cl.exe' ) .or. File( Upper( aenv[ nPos ] ) + '\cl.EXE' ) cPath := aenv[ nPos ] - // ? cPath + Exit Endif Next @@ -488,7 +498,7 @@ Local nPos Local cRead Local aSet := {} Local nMakePos -// ?"checking defines" + If cTemp == "!endif" Return nil Endif @@ -521,7 +531,7 @@ Local cRead := Alltrim( readln( @leof ) ) Local nPos Local nCount := 0 Local aTempMacros := {} -// ? 'setting commands' + aTempMacros := listasarray2( cREad, " " ) For nCount := 1 To Len( atempmacros ) If At( "$", atempmacros[ ncount ] ) > 0 @@ -659,7 +669,7 @@ Local nPos Local nCount Local nFiles Local aOrder := listasarray2( aBuildOrder[ 2 ], " " ) -// ? "compiling files" + For nCount := 1 To Len( aOrder ) If aOrder[ nCount ] == "$(CFILES)" nPos := Ascan( aCommands, { | x, y | x[ 1 ] == ".prg.c:" } ) @@ -672,7 +682,7 @@ For nCount := 1 To Len( aOrder ) If nPos > 0 cComm := Strtran( cComm, "o$*", "o" + aCs[ nPos ] ) cComm := Strtran( cComm, "$**", aPrgs[ nFiles ] ) - ? " " + outstd( " ") ! ( cComm ) cComm := cold Endif @@ -693,11 +703,8 @@ For nCount := 1 To Len( aOrder ) If nPos > 0 cComm := Strtran( cComm, "o$*", "o" + aObjs[ nPos ] ) cComm := Strtran( cComm, "$**", acs[ nFiles ] ) - ? " " + outstd( " ") // ? cComm - If lGcc - ? ccomm - Endif ! ( cComm ) ccomm := cold Endif @@ -712,7 +719,7 @@ For nCount := 1 To Len( aOrder ) // nPos:=ascan(aObjs,{|x| left(x,at(".",x)) == left(acs[nFiles],at(".",acs[nFiles]))}) If !Empty( ares[ nFiles ] ) cComm := Strtran( cComm, "$<", aRes[ nFiles ] ) - ? " " + outstd(" ") ! ( cComm ) Endif Next @@ -736,7 +743,7 @@ Local nPos Local cRead Local aSet := {} Local nMakePos -// ?"checking defines" + aSet := listasarray2( ctemp, "=" ) nPos := Ascan( adefines, { | x, y | x[ 1 ] == aset[ 1 ] } ) If nPos = 0 @@ -818,7 +825,7 @@ Local lvarismemvar := .f. Local ldebug := .f. Local lSupressline := .f. Local cGrap := "NONE" -Local cDefHarOpts := "-I$(BHC)\include -n -q0 -w -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS)" +Local cDefHarOpts := "" Local cDefcOpts := "" Local cDefLinkOpts := "" Local lCompMod := .f. @@ -871,28 +878,48 @@ Read lBcc := If( At( "BCC", cCompiler ) > 0, .t., .f. ) lVcc := If( At( "MSVC", cCompiler ) > 0, .t., .f. ) lGcc := If( At( "GCC", cCompiler ) > 0, .t., .f. ) +if lAutomemvar +cDefHarOpts+="-a" +endif +if lvarismemvar +cDefHarOpts+="-v" +endif +if ldebug +cDefHarOpts+="-b" +endif +if lSupressline +cDefHarOpts+="-l" +endif +if lGenppo +cDefHarOpts+="-p" +endif +if lCompmod +cDefHarOpts+="-m" +endif + + If lBcc Aadd( aCommands, { ".cpp.obj:", "$(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $*" } ) Aadd( aCommands, { ".c.obj:", "$(BCB)\BIN\bcc32 -I$(BHC)\include $(CFLAG1) $(CFLAG2) -o$* $**" } ) - Aadd( aCommands, { ".prg.c:", "$(BHC)\bin\harbour -n -I$(BHC)\include -o$* $**" } ) + Aadd( aCommands, { ".prg.c:", "$(BHC)\bin\harbour -n -I$(BHC)\include $(HARBOURFLAGS) -o$* $**" } ) Aadd( aCommands, { ".rc.res:", "$(BCB)\BIN\brcc32 $(RFLAGS) $<" } ) Elseif lGcc - if at("linux",Getenv("HB_ARCHITECTURE"))>0 + if at("linux",Getenv("HB_ARCHITECTURE"))>0 Aadd( aCommands, { ".cpp.o:", "$(BCB)/gcc $(CFLAG1) $(CFLAG2) -o$* $*" } ) - Aadd( aCommands, { ".c.o:", "$(BCB)/gcc -I$(HB_INC_INSTALL) $(CFLAG1) $(CFLAG2) -o$* $**" } ) + Aadd( aCommands, { ".c.o:", "$(BCB)/gcc -I$(HB_INC_INSTALL) $(CFLAG1) $(CFLAG2) -I. -o$* $**" } ) - Aadd( aCommands, { ".prg.c:", "$(BHC)/harbour -n -I$(HB_INC_INSTALL) -o$* $**" } ) + Aadd( aCommands, { ".prg.c:", "$(BHC)/harbour -n -I$(HB_INC_INSTALL) -I. -o$* $**" } ) else Aadd( aCommands, { ".cpp.o:", "$(BCB)\gcc $(CFLAG1) $(CFLAG2) -o$* $*" } ) - Aadd( aCommands, { ".c.o:", "$(BCB)\gcc -I$(BHC)/include $(CFLAG1) $(CFLAG2) -o$* $**" } ) + Aadd( aCommands, { ".c.o:", "$(BCB)\gcc -I$(BHC)/../include $(CFLAG1) $(CFLAG2) -I. -o$* $**" } ) - Aadd( aCommands, { ".prg.c:", "$(BHC)\harbour -n -I$(BHC)/include -o$* $**" } ) + Aadd( aCommands, { ".prg.c:", "$(BHC)\harbour -n -I$(BHC)/../include $(HARBOURFLAGS) -o$* $**" } ) endif @@ -901,7 +928,7 @@ Elseif lVcc Aadd( aCommands, { ".c.obj:", "$(BCB)\bin\cl -I$(BHC)\include $(CFLAG1) $(CFLAG2) -Fo$* $**" } ) - Aadd( aCommands, { ".prg.c:", "$(BHC)\bin\harbour -n -I$(BHC)\include -o$* $**" } ) + Aadd( aCommands, { ".prg.c:", "$(BHC)\bin\harbour -n -I$(BHC)\include $(HARBOURFLAGS) -o$* $**" } ) Aadd( aCommands, { ".rc.res:", "$(BCB)\BIN\rc $(RFLAGS) $<" } ) Endif @@ -957,7 +984,7 @@ For x := 1 To Len( aObjs ) Next -? '¡m rewritting' + If lFwh Fwrite( nLinkHandle, "!ifndef FWH" + CRLF ) Fwrite( nLinkHandle, "FWH = " + cfwhpath + CRLF ) @@ -967,10 +994,13 @@ Elseif lCw Fwrite( nLinkHandle, "C4W =" + ccwpath + CRLF ) Fwrite( nLinkHandle, "!endif" + CRLF ) Endif -? 'Setting project name' + Fwrite( nLinkHandle, "PROJECT = " + Strtran( cTopfile, ".prg", ".exe" ) + CRLF ) -? 'Setting object files' +if len(aObjs)<2 Fwrite( nLinkHandle, "OBJFILES = " +Strtran( cTopfile, ".prg", ".obj" ) + CRLF ) +else +Fwrite( nLinkHandle, "OBJFILES = " +Strtran( cTopfile, ".prg", ".obj" ) ) + For x := 1 To Len( aobjs ) If x <> Len( aobjs ) .and. aObjs[x]<>cTopfile @@ -979,8 +1009,11 @@ For x := 1 To Len( aobjs ) Fwrite( nLinkHandle, " " + aobjs[ x ] + CRLF ) Endif Next - ? 'Setting C Files' -Fwrite( nLinkHandle, "CFILES = " +Strtran( cTopfile, ".prg", ".c" ) + CRLF ) +endif +if len(aCs)<2 +Fwrite( nLinkHandle, "CFILES = " +Strtran( cTopfile, ".prg", ".c" ) +CRLF ) +else +Fwrite( nLinkHandle, "CFILES = " +Strtran( cTopfile, ".prg", ".c" ) ) For x := 1 To Len( acs ) If x <> Len( acs ) .and. aCs[x]<>cTopfile Fwrite( nLinkHandle, " " + aCs[ x ] ) @@ -988,7 +1021,8 @@ For x := 1 To Len( acs ) Fwrite( nLinkHandle, " " + aCs[ x ] + CRLF ) Endif Next -? 'Setting ResFiles files' +endif + Fwrite( nLinkHandle, "RESFILES = " + CRLF ) Fwrite( nLinkHandle, "RESDEPEN = $(RESFILES)" + CRLF ) if lRddads @@ -1006,9 +1040,11 @@ elseif lGcc Fwrite( nLinkHandle, "LIBFILES = " +cDefgccLibs + CRLF ) endif Fwrite( nLinkHandle, "DEFFILE = "+CRLF) + fWrite( nLinkHandle, "HARBOURFLAGS =" +cDefHarOpts+CRLF) if lBcc Fwrite( nLinkHandle, "CFLAG1 = -OS $(CFLAGS) -d -L$(BHC)\lib\b32 -c"+CRLF) Fwrite( nLinkHandle, "CFLAG2 = -I$(BHC)\include;$(BCB)\include" +CRLF) + Fwrite( nLinkHandle, "RFLAGS = "+CRLF) Fwrite( nLinkHandle, "LFLAGS = -L$(BCB)\lib\obj;$(BCB)\lib;$(BHC)\lib;$(FWH)\lib -Gn -M -m -s" + if(lFwh,"-Tpe","")+CRLF) Fwrite( nLinkHandle, "IFLAGS = " +CRLF)