Por solicitação do Toledo estou postando novamente o assunto Migrar para o xHarbour.
Refiz o trabalho todo para anotar os procedimentos. Acho que ficou mais rico em detalhes, porém tenho a impressão que escaparam alguns.
Desta vez o trabalho foi bem mais rápido, pois a cada erro eu já sabia qual a solução a ser adotada.
1)-Usei o BRMAKE que utiliza um *.MLK de fácil manutenção, onde somente se altera o nome do PRG (inclusão, exclusão ou alteração)
2)-Ele também usa o arquivo BRMAKE.INI com uma boa quantidade de configurações.
3)-O HBMAKE é de uso bem mais complicado, e ainda não entenddi bem todos os requisitos que ele necessita, pois usando os mesmos arquivos PRG, com o BRMAKE consegui compilar o projeto e com o HBMAKE ainda não. Ainda não dessisti e volto ao assunto.
4)-Todas as LIB's usadas no Clipper devem ser recompiladas com o xHarbour, isto para quem tiver os Fontes. Caso contrário a coisa fica masi difícil.
5)-Eliminar: #include "sixcdx.ch" Aparentemente não é suportado, como também parece não ser necessário.
6)-Para quem usa o CDX, deixar os comandos:
REQUEST DBFCDX
RddSetDefault("DBFCDX")
7)-Para quem quiser usar o NTX:
REQUEST DBFNTX
RddSetDefault("DBFNTX")
8)-O PRG principal deve iniciar com:
FUNCTION MAIN()
...
...
RETURN NIL
Se não tiver MAIN(), é gerado um erro. O MAIN() indica ao xHarbour que este PRG é o de partida.
9)-Todos os outros PRG's devem iniciar com FUNCTION MeuPrg(), ou PROCEDURE MeuPrg(). Este nome pode ser igual ao nome do próprio PRG. Caso contrário retornará: "Error E0001 Statement not allowed outside of Procedure or Function"
10)-É aconselhável substituir todos os comandos do tipo:
DO MeuPrg por MeuPrg()
DO MeuPrg with 10,20 por MeuPrg(10,20)
11)-Instruções de uso do BRMAKE:
a)BRMAKE
Create INI file for xHarbour
Informe os 3 path's solicitados.
Mantenha as flags -N -M
Compress Executable with UPX: mantenha NO
Quando a tela azul abrir informando os parâmetros, é possível conferí-los, ESC para fechá-la.
Estes procedimentos geram o BRMAKE.INI
O arquivo BRMAKE.INI contém algumas configurações de fácil manutenção.
Create MLK project file
Modo Gui/Console: mantenha C (usar G somente para aplicação com GUI)
EXE file: informe o nome do executável
Main PRG: informe o nome do PRG de inicialização
(contém o FUNCTION MAIN()
Resource file passe por cima
Include Dir passe por cima
OBJ dir mantenha OBJ
ADS, ODBC, MYSQL e ZIP mantenha NÃO para todos
Ao abrir a janela de OUTRAS LIBS, elas podem ser selecionadas/deselecionadas com ENTER
F2 finaliza a operação de selecionar LIBS
Ao abrir a janela dos PRG's, use ENTER para marcar/desmarcar os PRG's que serão usados.
F10 para gerar o arquivo *.MLK
Com isto temos o arquivo MeuPrg.MLK gerado.
ESC para sair do BRMAKE.
Para compilar e linkar: BRMAKE MeuPrg
As menssagens de erro serão listadas numa janela pequena em azul, no rodapé.
Quando o BRMAKE retornar ao Prompt, a compilação e a linkagem estará realizada e o executável disponível.
12)-o BRMAKE realiza automaticamente a compilação incremental, sendo extremamente rápido quando houver alteração em somente um PRG. Se não houver qualquer alteração também não será realizada a compilação.
13)-Tamanho do executável:
O Clipper uusado é o 5.3b e linkando com BLINKER 7
O xHarbour usado é a versão 0.99.3 (simplex)
No Clipper 500 Kb
No xHarbour 1300 Kb
14)-Para ver os vários parâmetros do xHarbour, usar:
HARBOUR | MORE
Estes parâmetros podem ser usados no BRMAKE, ou então alterar "na mão grande" no arquivo BRMAKE.INI, na linha:
Harbour Flags=
Espero que esta contribuição seja de valia para aqueles que desejam migrar para o Harbour / xHarbour
Abraços.
Hasse