Table of Contents

Compilando o TerraOGC no Linux

Arquivo atualizado para o uso do CMake. Para QMake, verifique as versões anteriores deste documento.

Dependências

Alguns pacotes necessários para compilar e usar o TerraOGC. Os nomes podem variar de distro para distro. Aqui seguem os do Mandriva:

Mandriva

OpenSUSE

Obs: a partir da versão 12.3 do OpenSUSE recomenda-se adicionar o repositório App:Geo e instalar o libgeotiff-devel, com os fontes da LibGeoTIFF, e libjpeg8-devel.

CentOS

Debian 5

TerraLib

Obtendo e compilando a TerraLib.

Procedimento usando na versão 4.2.2, mas pode ser usada em outras versões posteriores com as devidas adaptações.

Crie uma pasta projetos e crie a pasta para a TerraLib. Baixe a última TAG estável (nesse caso a 4.2.2). Use o CMake para compilar o projeto.

mkdir terralib422
cd terralib422
svn export https://svn.dpi.inpe.br/terralib/tags/v-4-2-2/build
svn export https://svn.dpi.inpe.br/terralib/tags/v-4-2-2/src
svn export https://svn.dpi.inpe.br/terralib/tags/v-4-2-2/extensions 
 
mkdir cmake && cd cmake
cmake ../build/cmake

Após gerar esse código, é necessário mudar alguns parâmetros no arquivo terralib/cmake/CMakeCache.txt. Alguns caminhos talvez precisem ser adaptados ao seu sistema:

  1. BUILD_TERRAMANAGER=ON
  2. BUILD_TERRAVIEW=OFF
  3. CMAKE_PROJECT_NAME=terralib
  4. GeoTIFF_INCLUDE_DIR=/usr/include/libgeotiff
  5. PostGIS_INCLUDE_DIR=/usr/include/pgsql
  6. SQLite_ENABLED=OFF
  7. TE_DTM_ENABLED=OFF
  8. TE_DXF_ENABLED=OFF
  9. TE_PDI_ENABLED=OFF
  10. TE_QT3_DRIVERS_ENABLED=OFF
  11. TE_QWT3_DRIVERS_ENABLED=OFF
  12. TE_SPL_ENABLED=OFF
  13. TE_STAT_ENABLED=OFF
  14. ZLIB_LIBRARIES:FILEPATH=/lib64/libz.so.1

Rodar o cmake de novo:

cmake ../build/cmake

e verificar se há algum erro de compilação. No meu ambiente eu ignorei a GDAL e diversas outras libs não usadas pelo TerraOGC.

Corrigir fontes TerraLib 422

Corrigir os seguintes arquivos da TerraLib 4.2.2:

Inserir a tag:

#include <unistd.h> 

em src/terralib/kernel/TeConnectionPool.cpp e src/terralib/kernel/yyTemporal.cpp

Trocar o EPSG no arquivo TeProjection.cpp: 4979 → 4326 (Linhas 186 e 1435)

TePostgreSQL.cpp

Corrigir a linha do arquivo TePostgreSQL.cpp:

L728:

createTable += "\"" + (*it).rep_.name_ + "\" ";

L1030:

 string q = "INSERT INTO "+tableName + " ( \""+ attrs+"\") " + " VALUES ("+values+") ";

L977:

 attrs += "\" , \"";

TePostGIS.cpp

Corrigir o arquivo TePostGIS.cpp: L334:

createTable += "\"" + (*it).rep_.name_ + "\" ";

L1484:

create = "CREATE INDEX sp_idx_" + table + " ON " + table + " USING GIST (" + column + ")";

Esta última observação parece (L1484) ser aplicável ao PostGIS 2+.

Depois é só compilar

make

TerraOGC

Obtendo e compilando o TerraOGC. Você pode baixar a versão do TerraOGC compatível com a versão do TerraLib que você usa. Para a última versão usar o trunk do SVN.

Baixa o TerraOGC

cd projetos
svn co https://svn.dpi.inpe.br/terraogc/trunk/ terraogc

Prepara a TerraLib: duas opções, mover ou linkar. Para DEV melhor linkar.

cd terraogc
mkdir lib && cd lib
ln -s ../../terralib422/cmake/libterramanager.so .
ln -s ../../terralib422/cmake/libterralib.so .
ln -s ../../terralib422/cmake/libterralib_shp.so .

E ajusta no ~/bashrc:

export LD_LIBRARY_PATH=<your_path>projetos/terraogc/lib

Na produção, mover para lib.

Após isso, rodar o cmake para o TerraOGC. Ele será armazenado na pasta terraogc/bin, para evitar misturar com os demais pacotes de desenvolvimento.

cd terraogc/bin
mkdir cmake && cd cmake
cmake ../../build/cmake

Editar o terraogc/bin/cmake/CMakeCache.txt. Aqui são poucos parâmetros para ajuste:

  1. CURL_LIBRARY=/usr/lib64/libcurl.so.4
  2. GeoTIFF_INCLUDE_DIR=/usr/include/libgeotiff

Roda o CMake de novo e compila:

cmake ../../build/cmake
make

Após compilado, tudo fica nas subpastas do terraogc/bin/cmake/. Duas opções, mover ou linkar. Para DEV melhor linkar.

cd terraogc/lib
find ../bin/cmake -name "*.so" -exec ln -s {} . \;
cd terraogc/bin
find cmake -name "*.cgi" -exec ln -s {} . \;

Na produção, copiar ou mover para bin e lib ao invés de linkar.