Conversão dos fontes Clipper para FlagShip
Copiar os fontes para o diretório do Linux / Unix (Via FTP)
Deve possuir fontes de todos os programas, pois o FlagShip vai converter em fontes C.
Não pode ser usado um PRG de um sistema DESCOMPILADO com VALKIRIE.
Totalmente compatível com os comandos, sintaxes e funções do Clipper 5.2x, 5.3 desde que não utilize os comandos novos do 5.3.
Comandos DOS devem ser alterados para comandos Linux / Unix.
Ex.: run "copy cliente.dbf c:\copia\cliente.dbf"
Alteração na INICIALIZAÇÃO e FINALIZAÇÃO de IMPRESSÃO
Bugs e funções não documentadas no Clipper não são contemplados
Ex.: INDEX ON DTOS(datacad) to TEMP
DbSeek(date())
No Clipper, o registro é localizado, mas no FlagShip não.
Não existem bibliotecas gráficas no FlagShip ainda (está previsto o lançamento do Visual FlagShip).
Veja o FS-CGI para a criação de interfaces via CGI.
Como FlagShip gera executável em C, é muito importante observar a versão da linguagem C do sistema operacional
- Criar um Makefile, equivalente ao Rmake do Clipper DOS
Veja o tópico abaixo sobre o Makefile
- Verificar a necessidade de inserir no início do programa o #INCLUDE "fspreset.ch"
O Include "fspreset" converte automaticamente a contra barra (\) para barra (/) e converte também os nomes de
arquivos para minúsculo (caixa baixa)
Copia dos arquivos .DBF e .DBT do DOS para Unix/Linux
Copiar todos os arquivos .DBF e .DBTpara o diretório específico do Unix / Linux via FTP.
Veja que o ideal é copiar os arquivos com o nome em minúsculo (caixa baixa). Caso os arquivos no Unix / Linux estejam em maiúsculo, renomeie-os com o comando mv. Exemplo: mv ARQUIVO.DBF arquivo.dbf
Criação de índices com o FlagShip
O índice do arquivo para o FlagShip é um .IDX e é um arquivo "single order" e possui um algorítmo muito mais otimizado que o os índices .NTX do Clipper. Cria-se o índice com o comando index on. Veja no fsman a sintaxe do comando Index. Exemplo: INDEX ON nome TO cliente
Caso queira utilizar o índice compatível a DBFCDX, veja no manual fsman, como usar o codebase nos capítulos GEN: 3 Installaton , REL: New in FlagShip rel. 4.4, LNG: 2.11 Objects and Classes e OBJ: 1. Overview
Criação do Makefile para compilação com FlagShip
O makefile tem o seu formato próprio e não deve conter caracteres estranhos. A melhor forma de verificar é editando com o vi (editor do Unix). Não edite com editores do DOS, pois pode gerar caracteres estranhos ao Linux / Unix e pode gerar erros.
O limite de cada linha no Makefile é de 3000 caracteres, mas pode usar o contra barra (\) para indicar mudança de linhas.
Leia com atenção o capítulo FSC Compiling e Linking e também o FSC:2 Using The Make Utility do fsman
Exemplo:
OBJ=teste.o teste1.o teste2.o
teste: $(OBJ)
<tab>FlagShip $(OBJ) -oteste
teste.o: teste.prg
<tab>FlagShip teste.prg -m -c -q
<tab>rm teste.c
teste1.o: teste1.prg
<tab>FlagShip teste1.prg -m -c -q
<tab>rm teste.c
teste2.o: teste2.prg
<tab>FlagShip teste2.prg -m -c -q
<tab>rm teste.c
Caso utilize o parâmetro /N no Clipper, utilize o parâmetro -na no FlagShip
Se o programa principal inicia com a função ou procedure Main(), coloque o parâmetro -Mmain
Exemplo: FS_FLAGS=-Mmain -oexemplo
Utilize a tecla TAB onde estiver <tab>.
Caso tenha alguma dificuldade em criar um Makefile, copie o scrip do makemake para o diretório /usr/local/bin/ descompacte-o com o comando unzip makemake. Clique aqui para copiar o makemake.
Copie todos os programas .prg que devem ser compilados no seu diretório de trabalho e digite makemake. Este scrpt criará automaticamente o Makefile com todos os programas que foram colocados no diretório. Edite o Makefile e verifique se foi criado conforme o modelo acima. Corrija-o se necessário.
Não crie o Makefile com o usuário root.
Problemas de compilação
Escreva um programa simples, compile e tente executar:
// inicio do programa teste
? "Oi mundo"
inkey(0)
// fim do programa
Grave o programa como oi.prg e compile com a sequinte linha de comando
FlagShip oi.prg. Caso tenha ocorrido algum erro, verifique se os seguintes pacotes estão instalados:
- Linguagens: cpp , egcs e egcs-c++
- Bibliotecas: glib-devel, glibc-devel e ncurses-devel
- Sistema: kernel-headers
- Ferramentas: make
Para verificar se os pacotes estão instalados, utilize o seguinte comando: rpm -qa |grep -i <nome do pacote>. Exemplo: rpm -qa | grep -i glib
Deverá aparecer na tela, o seguinte:
glibc-2.1.1-6
glib-1.2.1-2
glib-1.2.1-2
glib-devel-1.2.1-2
glib10-1.0.6.5
glib-devel1-2.1.1-6
Veja também Criação do Makefile para compilação com FlagShip.
Problemas com o tbrowse
Em ambiente Linux, deve-se instalar um arquivo relativo ao method:Width da coluna TBrowse().
Clique aqui para fazer o download do arquivo tbmethds.zip que contém o objeto relativo ao method:Width da coluna do tBrowse.
Nota: Este objeto é válido somente para o FlagShip em Linux, para outras versões entrar em contato com o suporte da Inso.
Problemas da falta de includes na compilação
Em ambiente Linux / Unix, para se compilar programas de qualquer linguagem há a necessidade de instalar o kernel-headers.
O comando para verificar se o kernel-headers está instalado:
rpm -q kernel-headers
O comando para instalar:
rpm -ivh kernel-headers |