Programando para PalmOS no Linux utilizando o Eclipse
Quando comecei a escrever este post, me perguntei: -Alguém ainda programa para PalmOs??
Não sei, mas descrevo aqui como construir um ambiente de programação para PalmOS no Linux amd64, utilizando o Eclipse. Encarei isto como um desafio, visto que a Access não dispobilizou um PODS para Linux, preferindo “emular” o compilador no windows utilizando o Cygwin (que barbaridade!).
Uma particularidade desta configuração é o fato da versão do Linux ser para processadores amd64. Como não existe prc-tools para amd64, devemos configurar um ambiente “chroot” para abrigar a versão 32bits do prc-tools e compilar os projetos. O ambiente de desenvolvimento permanece 64 bits, com o Eclipse e o Guikachu (criação dos forms).
Primeiro passo: Instalar o Eclipse.
Eu estou usando o Ganymede, versão 3.4, último disponível na data que baixei. Instale como preferir, baixando do site ou via ferramenta de instalação de pacotes da sua distribuição. Baixando pelo site é possível escolher a versão já configurada para programação C/C++ (CDT). Se instalar pelo instalador de pacotes da distribuição, é necessário instalar o ambiente CDT através da opção Software Update no menu Help do Eclipse.
Segundo Passo: Instalar o Guikachu
O Guikachu (http://gergo.erdi.hu/projects/guikachu/) é um programa para criação de formulários (interface visual) das aplicações para PalmOS. Como não encontrei uma versão compilada da minha distribuição (Debian Lenny), baixei os fontes da versão 1.5.11, descompactei e compilei (./configure –prefix=/usr, make, make install). Nesta parte encontrei uma dificuldade que descrevi no post Erros de compilação ao utilizar o gcc-4.3.
Terceiro Passo: Configurar o ambiente chroot 32 bits
Como descrevi no início do post, não encontrei uma versão do prc-tools para 64bits, então tive que configurar um ambiente chroot 32bits para poder compilar os projetos. A solução para este problema eu encontrei no artigo Solution to prc-tools on AMD64 and other 64-bit machines. Não vou descrever todo o processo, mas coloco os comandos para criar o ambiente. Para quem já tem um ambiente chroot, pule direto para a instalação do prc-tools.
#apt-get install chroot schroot
#chroot /var/chroot/debian_32/
dentro do ambiente chroot:
#vi /etc/apt/sources.list
alterar a linha:
deb http://ftp.debian.org/debian/ sarge main
para
deb http://ftp.debian.org/debian/ sarge main contrib non-free
atualizar a fonte de pacotes
#apt-get update
instalar o prc-tools:
#apt-get install apt-file prc-tools pilrc
Poderão aparecer algumas mensagens relacionadas ao Locale. Para corrigir isto, edite o .bashrc do root, inserindo a linha:
export LC_ALL=C
Feito isto, podemos executar um comando 32bits a partir do ambiente 64bits, utilizando o comando schroot:
#schroot -c debian_32 -p /usr/bin/file /bin/bash
É assim que o projeto será compilado dentro do chroot a partir do Eclipse. Veremos como mais adiante, com a criação de um arquivo Makefile.
Eu precisei configurar o schroot para permitir que o meu usuário acessasse o ambiente chroot. Edite o arquivo /etc/schroot/schroot.conf e inclua as linhas:
[debian_32]
description=Debian sarge 32bits (stable)
location=/var/chroot/debian_32bit
priority=2
#groups=sbuild
users=gerson #coloque seu usuario aqui
root-users=gerson #coloque seu usuario aqui
aliases=stable
Quarto Passo: Instalar o PalmOS SDK do site da Access Developer Network
Baixe o SDK deste link (é necessário registrar-se). Baixe os seguintes arquivos:
– Garnet OS SDK (68K) R3 PRC tools Generic UNIX
– Garnet OS 68K API SDK (Fall 2004 Update). Este segundo deve ser copiado por cima do arquivo anterior (após descompactá-los, claro). Importante: este arquivo possui como final de linha <CR><LF>, causando problemas ao compilar. É necessário converter os arquivos para <LF>, com o seguinte comando:
#find . -type f -exec dos2unix {} \;
(O programa dos2unix faz parte do pacote sysutils;)
Coloque o SDK em uma pasta dentro do ambiente chroot. Ex.: /var/chroot/debian_32/var/PalmOS_SDK. Dê as permissões necessárias para que todos os usuários possam ler os arquivos:
#chmod o+r -R /var/chroot/debian_32/var/PalmOS_SDK
Entre no ambiente chroot:
chroot /dev/chroot/debian_32
prepare o ambiente de compilação:
#palmdev-prep /var/PalmOS_sdk/
saia do ambiente chroot:
#exit
Quinto Passo: Configurando o Eclipse
O workspace do eclipse deve ficar em uma pasta visível pelo chroot debian_32. No meu caso, o workspace está em /var/chroot/debian_32/home/gerson/workspace.
Como projeto exemplo, HelloDiesel, criei uma organização de pastas da seguinte maneira:
A pasta includes aparece após configurar o projeto: Botão direito do mouse no nome do projeto -> Properties -> C/C++ General -> Paths and Symbols -> aba Includes -> botão Add -> inserir o caminho /var/chroot/debian_32bit/var/PalmOS_sdk/sdk-5r4/include, marcar todas as caixas de opção -> Ok -> Ok. Observe que tenho uma pasta sdk-5r4 abaixo da pasta palmOS_SDK. Ajuste na sua configuração.
Sexto passo: O arquivo Makefile
Esse é o cara que irá chamar o compilador dentro do chroot 32bits a partir do ambiente 64 bits. De barbada coloco aqui o Makefile inteiro:
SCHROOT = schroot -c debian_32 -d /home/gerson/workspace/HelloDiesel -- SCHROOT_BUILD = schroot -c debian_32 -d /home/gerson/workspace/HelloDiesel/build -- PROGNAME = AppMain APPNAME = 'Hello Diesel' RESOURCES = src/AppResources APPID = GHDx OBJS = build/$(PROGNAME).o #FLAGS = -O2 -Wunused -Wall -palmos3.1 FLAGS = -O2 -Wunused -Wall all: clean resources grc $(SCHROOT) build-prc dist/$(PROGNAME).prc $(APPNAME) $(APPID) build/*.grc \ build/resources/*.bin grc: $(SCHROOT) m68k-palmos-gcc $(FLAGS) -c src/$(PROGNAME).c -o $(OBJS) $(SCHROOT) m68k-palmos-gcc $(FLAGS) $(OBJS) -o build/$(PROGNAME) $(SCHROOT_BUILD) m68k-palmos-obj-res $(PROGNAME) resources: forms pilrc -H src/AppResources.h rsc/$(PROGNAME).rcp build/resources/ forms: guikachu2rcp rsc/$(PROGNAME).guikachu clean: rm -f build/*.[oa] rm -f build/*.bin rm -f build/*.grc rm -f src/*~ rm -f build/$(PROGNAME) rm -f dist/* rm -f rsc/*.rcp rm -f build/resources/*
Após compilar, o arquivo .prc deve aparecer na pasta DIST. Aí é só sincronizar e testar no Palm.
Opção: Testar em emulador/simulador
Caso queira testar a aplicação em um emulador ou simulador, pode-se utilizar o POSE (Palm OS Emulator), ou então utilizar o PalmOS Simulator através do wine e utilizar a rom do TX disponível pela web.
Conclusão
Acho que com o fim anunciado do PalmOS, a Access não irá liberar uma versão do PODS para Linux. Além do mais, muitos programadores já estão correndo atrás de um SDK para o WebOS, novo sistema da Palm/Access.
Contudo, para aqueles que ainda desejam programar para o PalmOS (que acredito que levará um tempo para se “dissolver”) no Linux, fica aí este guia para construir um ambiente de programação.
Abraços e até a próxima.
PODS (Palm OS Developer Suite) no Linux Carregador usb de celular nokia feito em casa
[…] Texto retirado do post original em http://www.gersondiesel.com.br […]