Página 1 de 2
MyMake
Enviado: 10 Dez 2017 20:18
por ctoas
Boa noite.
Alguém teria e poderia me enviar o MyMake do amigo Vailton?
Se possível enviar no email
christiano.silveira@gmail.com
Obrigado
MyMake
Enviado: 10 Dez 2017 21:26
por JoséQuintas
Porque não o HBMK2?
O que o MyMake tem de diferente?
<Editado>
Nota: não vi o fórum quando postei, mas tá valendo mesmo assim.
MyMake
Enviado: 11 Dez 2017 10:09
por ctoas
Olá José Quintas, bom dia.
Se não estou enganado o HBMK2 é para harbour e o MyMake é para xHarbour.
Além do MyMake ser muito fácil e parecido com a xDev que já uso a muito tempo e do amigo Vailton.
Pena que o site dele que tinha as ferramentas não esta mas online.
[]'s
MyMake
Enviado: 11 Dez 2017 10:34
por JoséQuintas
O HBMK2 pode ser usado pra Harbour ou xHarbour.
Só que ele tem o Harbour embutido, então no XHarbour precisa acrescentar -xhb
Usando -xhb ele usa um harbour.exe externo e tratamento pra xHarbour.
Todas as vantagens dele no Harbour ficam disponíveis no XHarbour.
Lista de funções das LIBs, documentação, criar programas multi-language, etc.
É muito mais do que um make, por isso o EXE é grande.
MyMake
Enviado: 11 Dez 2017 10:59
por JoséQuintas
E num uso mais avançado, no Programmers Notepad como exemplo, transforma o editor de texto numa mini IDE.
Só compilar, e clicar nas linhas com erro, se existirem.
MyMake
Enviado: 11 Dez 2017 11:08
por JoséQuintas
O mesmo, mas agora com XHarbour.
MyMake
Enviado: 11 Dez 2017 11:47
por Kapiaba
Mister quintas, este OutPut no Notepad, é um .Bat que chama o HBMK2.exe? E se eu quero vários .PRGs?
Obg. abs.
MyMake
Enviado: 11 Dez 2017 11:53
por JoséQuintas
Na prática eu não uso nada desses recursos do Programmers Notepad.
- Tem opção de criar projetos, com lista de arquivos e tudo
- Tem opção de cadastrar ferramentas, gerais, por projeto, ou por linguagem de programação
- Nessa configuração você diz como deve ser o comando.
POR BAT NÃO DÁ, porque o PNotepad precisa capturar a saída, e BAT não é uma opção.
MyMake
Enviado: 11 Dez 2017 11:59
por JoséQuintas
Comentário adicional....
Lembra da propaganda: vai na loja do posto Ipiranga...
No PNotepad é... vai no TOOLS, OPTIONS..... rs
MyMake
Enviado: 11 Dez 2017 12:03
por Kapiaba
ok. Thanks. Não vejo qual é a vantagem de se compilar com um Editor ou com a Xdev.exe por exemplo, seria apenas para dizer que compila em um progama for windows? Uso um .BAT e um .LNK e é 2 palitos para compilar. Não troco por nada, nem pela a nova IDE do Fivewin. Muita chatisse parar configurar. Precisa de aula, tutoria e o diano. Pura perda de tempo. Mesmo assim, many thanks.
CX.BAT
Código: Selecionar todos
@Echo On
Cls
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for xHarbour 17.01 - Jan. 2017 xHarbour development power ³Ü
ECHO ³ (c) FiveTech 1993-2016 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
Echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo ³ FiveWin For xHarbour 17.01 Jan. 2017 Contato Sistemas Ltda. ³Ü
Echo ³ Aguarde um Momento, Compilando Aplica‡Æo 32 Bits, Processamento Demorado ³Û
Echo ³ CopyRight(c) JoÆo@2007 - Todos os Direitos Reservados. BUSCAINC 32 Bits. ³Û
Echo ³ Agradecimentos Especiais - Gilmer Tavares - Virtual Objects Informatica ³Û
Echo ³ vendas@fivewin.com.br - suporte@fivewin.com.br - gilmer@fivewin.com.br ³Û
Echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
Echo ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
Echo .
Echo Aguarde... Compilando os Modulos do Programa... Processamento Demorado
Echo Gerando o Arquivo ERRO.LOG, em Caso de Duvidas, Consulte-o. Borland C.
Rem Localizacao dos Paths
Set hdir=C:\XHBBCC72
Set bcdir=C:\bcc72
Set fwhdir=C:\FwH1701
Set GT=gtgui
@If Exist *.Bak Del *.Bak
@If Exist *.Obj Del *.Obj
@If Exist *.Log Del *.Log
@If Exist *.Map Del *.Map
@If Exist *.PPO Del *.Ppo
@If Exist *.TDS Del *.TDS
@If Exist *.C Del *.C
If Exist BUSCAINC.Exe Del BUSCAINC.Exe
%hdir%\bin\harbour BUSCAINC /m/n/w/es1/gc1 /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p > Erro.log 2> warnings.log
REM -> Area dos Arquivos Gerados na Linguagem C Pelo [x]Harbour
%bcdir%\bin\bcc32 -M -c -v -O2 -eBUSCAINC.exe -I%hdir%\include -I%bcdir%\include BUSCAINC.C >> Erro.log
If ErrorLevel 1 Type Erro.log | More
If ErrorLevel 1 Goto Exit
%bcdir%\bin\BRC32.EXE -R XPLOOK.RC
:ENDCOMPILE
%bcdir%\bin\ilink32 -Gn -aa -Tpe -s @Cx.Lnk
Echo .
Echo * Applicacao Foi Desenvolvida com sucesso
Echo .
Echo .
Echo * Aguarde um Momento, Compactando Aplicacao, Usando o PEC2.EXE
Echo .
REM \UPX\UPX.EXE -9 BUSCAINC.EXE - MUDEI PARA O AVG NAO RECLAMAR.
C:\UPX\UPX BUSCAINC.exe --compress-exports=0 --lzma --force --no-reloc
REM ESTE E PAGO
REM C:\PECOMPACT\PEC2 /NB /EMP:Y /TM:Y /CR:N /MC BUSCAINC.EXE
Echo .
Echo * Aplicativo Foi Compactado Com Sucesso - Aguarde Execucao.
Echo .
Echo * Aguarde, Executando o Aplicativo, Gerado Com Sucesso Absoluto *
REM BUSCAINC
Goto Exit
Echo
cls
:EXIT
Y Listo!
MyMake
Enviado: 11 Dez 2017 12:04
por Kapiaba
CX.LNK
Código: Selecionar todos
C:\bcc72\lib\c0w32.Obj +
BUSCAINC.OBJ, +
BUSCAINC.exe, +
BUSCAINC.map, +
C:\FWH1701\lib\FiveHX.lib +
C:\FWH1701\lib\FiveHC.lib +
C:\XHBBCC72\lib\hbzip.Lib +
C:\XHBBCC72\lib\zlib.Lib +
C:\XHBBCC72\lib\rtl.Lib +
C:\XHBBCC72\lib\vm.Lib +
C:\XHBBCC72\lib\gtgui.Lib +
C:\XHBBCC72\lib\lang.Lib +
C:\XHBBCC72\lib\macro.Lib +
C:\XHBBCC72\lib\rdd.Lib +
C:\XHBBCC72\lib\dbfntx.Lib +
C:\XHBBCC72\lib\dbfcdx.Lib +
C:\XHBBCC72\lib\debug.Lib +
C:\XHBBCC72\lib\common.Lib +
C:\XHBBCC72\lib\tip.Lib +
C:\XHBBCC72\lib\pp.Lib +
C:\XHBBCC72\lib\dbffpt.Lib +
C:\XHBBCC72\lib\codepage.Lib +
C:\XHBBCC72\lib\HbSix.Lib +
C:\XHBBCC72\lib\PcRepos.Lib +
C:\XHBBCC72\Lib\ct.Lib +
C:\XHBBCC72\Lib\png.Lib +
C:\Bcc72\lib\cw32.Lib +
C:\Bcc72\lib\psdk\msimg32.Lib +
C:\Bcc72\lib\psdk\odbc32.Lib +
C:\Bcc72\lib\psdk\rasapi32.Lib +
C:\Bcc72\lib\psdk\nddeapi.Lib +
C:\Bcc72\lib\psdk\psapi.Lib +
C:\Bcc72\lib\psdk\gdiplus.lib +
C:\Bcc72\lib\psdk\iphlpapi.Lib +
c:\Bcc72\lib\psdk\shell32.lib +
C:\Bcc72\lib\import32.Lib,
BUSCAINC.RES
MyMake
Enviado: 11 Dez 2017 12:06
por Kapiaba
Em tempo:
Precisa de aula, tutorial e o diabo a quatro. kkkkkkkkkkkkkkkkkkkkkk
Skype do vailtom: vailtom
Eu poderia pedir o MyMake.exe, mas não vou. Para mim, ele não nega nada.
Obg. abs.
MyMake
Enviado: 11 Dez 2017 12:17
por JoséQuintas
Vamos compilar FIVEWIN.
hbmk2 *.prg FIVEWIN.HBC
Qual a dificuldade nisso?
MyMake
Enviado: 11 Dez 2017 12:18
por JoséQuintas
O que uso pra compilar:
Código: Selecionar todos
------- C.BAT------
d:\cdrom\FONTES\build\build.exe %*
VERDADE ESTE PODE SER O BAT
O build.prg criei pra recursos não existentes no HBMK2, e pra facilitar
Limpar pasta TEMP ao trocar de projeto
Código: Selecionar todos
IF ! Upper( cLastPath ) == Upper( hb_cwd() )
DeleteContent( "c:\temp", .F. )
DeleteContent( "c:\users\joseq\appdata\local\temp", .F. )
ENDIF
Criar/atualizar o CH com número de versão
Código: Selecionar todos
cTxt := "#define JOSEQUINTAS_VERSAO " + ["] + Transform( cDateTime, "@R 9999.99.99.9999" ) + ["] + hb_Eol()
cTxt += "#define JOSEQUINTAS_VERSAO_RC " + Transform( cDateTime, "@R 9999,99,99,9999" ) + hb_Eol()
hb_MemoWrit( cFileName + ".ch", cTxt )
cTxt := XmlTag( "BuildNum", Ltrim( Str( nBuildNum ) ) ) + hb_Eol()
cTxt += XmlTag( "LastPath", hb_cwd() ) + hb_Eol()
cTxt += XmlTag( "BuildDate", Dtos( Date() ) ) + hb_Eol()
cTxt += XmlTag( "BuildTime", Time() ) + hb_Eol()
hb_MemoWrit( cFileName + ".xml", cTxt )
Compile( aParams )
Acrescentar alguns defaults, conforme o local, por exemplo LIBs gráficas ou assinar
Código: Selecionar todos
STATIC FUNCTION Compile( aParams )
LOCAL oElement, cPath, cCmd := ""
cPath := Upper( hb_cwd() )
DO CASE
CASE "\HMGE\" $ cPath ; AAdd( aParams, "hmge.hbc" )
CASE "\HMG3\" $ cPath ; AAdd( aParams, "hmg3.hbc" )
CASE "\OOHG" $ cPath ; AAdd( aParams, "oohg.hbc" )
CASE "\HWGUI\" $ cPath ; AAdd( aParams, "hwgui.hbc" )
ENDCASE
IF Len( aParams ) != 0 .AND. aParams[ 1 ] == "/cmd"
hb_ADel( aParams, 1, .T. )
ELSEIF Len( Directory( "*.hbp" ) ) != 0
AAdd( aParams, "*.hbp" )
ELSEIF Len( Directory( "*.prg" ) ) != 0
Aadd( aParams, "*.prg" )
AAdd( aParams, "*.rc" )
ELSE
? hb_cwd()
Inkey(0)
ENDIF
AAdd( aParams, "-m" )
AAdd( aParams, "-n" )
IF ! "\ALLGUI\" $ cPath
IF aScan( aParams, { | e | Left( e, 2 ) == "-w" } ) == 0
AAdd( aParams, "-w3" )
ENDIF
IF aScan( aParams, { | e | Left( e, 3 ) == "-es" } ) == 0
AAdd( aParams, "-es2" )
ENDIF
ENDIF
AAdd( aParams, "-workdir=c:\temp" )
AAdd( aParams, "-compr" )
AAdd( aParams, "-strip" )
AAdd( aParams, "-mt" )
AAdd( aParams, "-quiet" )
//AAdd( aParams, "-q0" )
AAdd( aParams, "-ge1" )
AAdd( aParams, "-I" + hb_FNameDir( hb_ProgName() ) )
cCmd += "HBMK2 "
FOR EACH oElement IN aParams
cCmd += oElement + " "
NEXT
cCmd := ;
hb_ProgName() + " %*" + hb_Eol() + ;
cCmd + hb_Eol()
DO CASE
CASE "\SJPA\" $ cPath .AND. File( "..\sjpa.exe" ); cCmd += "assina ..\sjpa.exe" + hb_Eol()
CASE "\HAROLDO\" $ cPath .AND. File( "hl.exe" ); cCmd += "assina hl.exe" + hb_Eol()
CASE "\LABOROIL\" $ cPath .AND. File( "nfe.exe" ); cCmd += "assina nfe.exe" + hb_Eol()
CASE "\BUILD\" $ cPath .AND. File( "build.exe" ); cCmd += "assina build.exe" + hb_Eol()
CASE "\INTEGRA\" $ cPath .AND. File( "jpa.exe" ); cCmd += "assina jpa.exe" + hb_Eol()
ENDCASE
hb_MemoWrit( "d:\tools\util\c.bat", cCmd )
RETURN NIL
E por fim o arquivo de projeto, no formato do HBMK2, que pode conter projeto e subprojetos.
Código: Selecionar todos
#josequintas\josequintas.hbp
#sefazclass\sefazclass.hbp
josequintas\main\jpa.prg
*.prg
josequintas\prg\*.prg
-oJPA
jpa.rc
josequintas.hbc
hbnetio.hbc
-workdir=c:\temp
-m
-n
-es2
-w3
-compr
-inc
-strip
-mt
-quiet
-jobs={NUMBER_OF_PROCESSORS}
-ge1
-i.
-i..\build
-beep
#----------- nos tempos do W98
#-winuni
Só digito C <ENTER> a não ser que seja algo fora do normal.
Isso funciona pra MINGW, BCC, MSVC, seja o que for - Lógico, BCC não, porque Harbour 3.4 não compila em BCC, e mesmo se compilasse eu não usaria BCC. MSVC funciona porque ainda tenho aqui instalado, mas não uso.
c -comp=msvc
c -comp=bcc
c -comp=mingw
eventualmente uso:
c /cmd fonteprg
ou
hbmk2 fonte.prg
ou nas pastas de samples de OOHG, HMG, HMG EXtended, HWGUI
c oohg.hbc
se usasse fivewin....
c fivewin.hbc
isso se não tiver HBP já criado....
MyMake
Enviado: 11 Dez 2017 12:56
por JoséQuintas
Passo a passo:
hbmk2 *.prg *.c *.rc -oaplicativo fivewin.hbc -xhb
*.prg -> os fontes PRG da pasta
*.c -> os fontes C da pasta
*.rc -> os arquivos de resource RC da pasta
-oaplicativo -> de algum jeito precisa identificar o nome do EXE
fivewin.hbc -> configurações específicas de fivewin
-xhb -> caso não seja o Harbour default embutido no HBMK2, XHarbour por exemplo
Se fosse arquivo de projeto HBP
---file.hbp---
*.prg
*.c
*.rc
-oaplicativo
fivewin.hbc
-xhb
hbmk2 file.hbp -comp=bcc
Esse -comp=bcc é opcional, somente se não for usado o padrão, ou se não estiver configurado em
HB_COMPILER=bcc
E tem uma necessidade antiga, que LIBs esquecem, e todos esquecem, mesmo no Harbour 3.4 ainda tem certa necessidade disso
HB_INSTALL_PREFIX=d:\harbour
Basicamente no HBMK2 é a lista de fontes, seja direto no comando ou dentro de um HBP
Se tiver lib.... -lnome L minúsculo
se precisa path de lib... -Lpath L maiúsculo
se precisa de pasta de include... -ipasta
Isso não é invenção do HBMK2, são EXATAMENTE os parâmetros usados no Harbour ou Compilador C
Não precisa configurar o compilador BCC, com aquele ILINK32.CFG e BCC32.CFG.
A VANTAGEM ADICIONAL que as LIBs não usam: HBC
Pode ser configurada a LIB toda num arquivo HBC, pra não precisar dentro de tudo que é projeto.
Inclusive detalhes específicos, que não dá pra fazer por MAKE ou outro.
fivewin.... não foge da regra.
libs=nome de libs
libpaths=path de libs
incpaths=path de includes
pra fivewin, que mistura tudo que é lib em uma pasta só, ainda dá pra melhorar, pra escolher a LIB conforme o compilador C
{bcc}libs=fivewinbcc
{mingw}libs=fivewinmingw
{msc}libs=fivewinbcc
libpaths=c:\fivewin\lib\
libs=sefazclass.hbc
no projeto em fivewin, vai bastar acrescentar fivewin.hbc
Então criou o fivewin.hbc, resolveu TODOS os projetos em fivewin, até mesmo se usado numa IDE.
O básico do HBMK2 é simples: lista do que vai compilar
Mas tem uma infinidade de recursos, úteis, até mesmo ajuda pra quando dá erro de compilação, coisa que no XHarbour é complicada.
Pensando bem, talvez esteja explicado o problema com CreateObject no XHarbour:
Como ninguém usa HBMK2, os BATs simplesmente acrescentam TUDO QUE É LIB que existe, com funções repetidas, só pra linquedição funcionar.
E aí... funções repetidas... nunca se sabe qual vai ser executada pelo EXE !!!!