Variáveis de ambiente AE: bibliotecas executáveis e compartilhadas
Você pode usar a função register_ae para definir o caminho executável e para definir a variável de ambiente NZAE_EXECUTABLE_PATH. Esta seção contém exemplos de uso de AEs com AE-ENVs.
AE simples em linguagem C
Para este exemplo, um AE simples em linguagem C é compilado em um executável chamado helloae. O diretório de exportação do AE está localizado em /nz/export/ae. A compilação produz uma versão para o host e outra para as SPUs:
/nz/export/ae/applications/dev/david/host/helloae
/nz/export/ae/applications/dev/david/spu/helloae
As variáveis de ambiente do AE apontam o sistema AE para o local dos executáveis:
NZAE_HOST_ONLY_NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/host/hel
loae
NZAE_SPU_ONLY_NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/spu/hello
ae
Os nomes das chaves AE-ENV consistem em duas partes: uma raiz e um prefixo de local. No exemplo anterior, a raiz é NZAE_EXECUTABLE_PATH. Os prefixos são NZAE_HOST_ONLY e NZAE_SPU_ONLY.
Uma variável com o prefixo de localização NZAE_HOST_ONLY só é visível no host. O prefixo do local é removido e o host recebe o valor:
NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/host/helloae
Da mesma forma, uma variável com um prefixo de local NZAE_SPU_ONLY é visível apenas para as SPUs. Novamente, o prefixo do local é retirado e as SPUs recebem:
NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/spu/helloae
AE simples em linguagem C com bibliotecas compartilhadas
Neste exemplo, o AE helloae usa um diretório de bibliotecas compartilhadas. Defina o LD_LIBRARY_PATH do Linux para o aplicativo. Ele pode ser modificado porque o sistema de tempo de execução do AE também usa o LD_LIBRARY_PATH para sua própria operação. Primeiro, coloque as bibliotecas compartilhadas na árvore de diretórios de exportação do AE.
/nz/export/ae/applications/dev/david/libhost/lib*.so
/nz/export/ae/applications/dev/david/libspu/lib*.so
Esse código mostra como fazer com que o sistema de tempo de execução do AE acrescente o diretório ao LD_LIBRARY_PATH:
NZAE_HOST_ONLY_NZAE_APPEND_LD_LIBRARY_PATH=/nz/export/ae/applications/dev/david/l
ibhost
NZAE_SPU_ONLY_NZAE_APPEND_LD_LIBRARY_PATH=/nz/export/ae/applications/dev/david/li
bspu
Essas definições AE-ENV consistem em dois prefixos e uma raiz. A raiz é LD_LIBRARY_PATH. O primeiro prefixo, que deve ser especificado primeiro, é o prefixo de local discutido acima. O segundo é o prefixo de acréscimo NZAE_APPEND, que informa ao AE para acrescentar esse valor a um valor existente. Se a chave não tiver valor, um novo valor será criado. Ao anexar, o sistema AE procura primeiro um AE-ENV com o nome da chave de destino. Se não for encontrado, o sistema AE procura no ambiente de processo do sistema operacional.
A mesma técnica pode ser usada para anexar a qualquer variável de ambiente, incluindo PATH e CLASSPATH. Você pode usar o prefixo prepend, NZAE_PREPEND, para prepender qualquer variável de ambiente AE-ENV ou OS. O prefixo de local deve ser especificado antes de um prefixo append ou prepend. Os valores anexados ou pré-anexados são separados pelo caractere de dois pontos (:). Os prefixos fornecem ao programador do AE um controle significativo sobre o ambiente em que o processo é executado. As atribuições de variáveis são realizadas em uma primeira passagem. As operações de acréscimo e acréscimo prévio são realizadas em uma segunda passagem depois que todas as atribuições tiverem sido processadas.