Сборка terragear-cs в Ubuntu 64

Материал из FlightGear.ru.

Перейти к: навигация, поиск

Сборка terragear-cs в Ubuntu 64

1. Итак, у нас есть свежепоставленная Ubuntu 64. Для 32-бит всё будет точно также. (Лично у меня убунта была не сильно свежая, в ней уже была куча разных либ для девел-версий осг, фг, сг, фгрун, атлас и тп.)

2. Убедитесь что ваша видеокарта правильно настроена.
a) Установите envyng, чтоб у вас всегда были самые последние дрова для видео.

       * sudo apt-get install envyng-gtk

b) В случае, если у вас проблемы с разрешением экрана (обычно это на 640*480), то пробуем это пофиксить:

       * sudo displayconfig-gtk

3. Устанавливаем CVS, GIT у другие нужные системные проги:

       * sudo apt-get install cvs git-core curl automake g++ gcc

4. Делаем папку для скачиваемых пакетов (это просто совет).

5. Скачивем эти файлы в нашу новую папку (например, Scenery_Creator): plib 1.8.5,newmat 11,gpc 2.32:

       * wget [http://plib.sourceforge.net/dist/plib-1.8.5.tar.gz]
       * wget [http://www.robertnz.net/ftp/newmat11.tar.gz]
       * wget [ftp://ftp.cs.man.ac.uk/pub/toby/gpc/gpc232.zip]

6. Также, берем девел-версии simgear-cs and terragear-cs (Внимание!! simgear именно "cs" а не "cvs"):

       * git-clone http://mapserver.flightgear.org/git/simgear-cs/
       * git-clone http://mapserver.flightgear.org/git/terragear-cs/

7. Тут нужно отметить, что terragear зависит от simgear, а у последней есть много своих зависимостей.

 Самая сложная из них это plib у которого самого много зависимостей и, возможно, прийдется еще и добавлять опции в его configure.
       * sudo apt-get install xlibmesa-gl-dev freeglut3-dev glutg3-dev libglut3-dev xorg-dev
   a) Разархивируем plib и перейдем в его папку.
   b) Опционально: В строке 6749 можно найти и удалить -lXi, и осторожнее с пробелами.
   c) Компилируем:
       * ./configure && make
   d) Инсталируем от лица суперпользователя:
       * sudo make install

8. Последние приготовления к компиляции simgear:

       * sudo apt-get install libopenal-dev libalut-dev openscenegraph zlib1g-dev libopenscenegraph-dev

9. Заходим в папку simgear-cs. Т.к. мы скачивали не релиз, а cvs или git ил svn, то сначала нам нужно сгенерить конфигурационный файл:

       * ./autogen.sh
   Сгенерили, дальше конфигурим, компилим и инсталим.
       * ./configure && make
       * sudo make install

10. Далее, нам нужно удовлетворить две зависимости: gpc и newmat. Распакуем каждый пакет в свою директорию:

   a) GPC:
       - Скопируйте и вставьте эти строки в новый пустой файл Makefile:
                       # Unix/Linux makefile for GPC 2.32
                       #
                       # Riley Rainey  (riley.rainey@websimulations.com)
                       CFLAGS = -O -g
                       libgenpolyclip.a: gpc.o
                               rm -f $@
                               ar cr $@ $<
                               ranlib $@
                       clean:
                               rm -f libgenpolyclip.a *.o core *~
                       install: libgenpolyclip.a
                               -mkdir -p /usr/local/lib
                               -mkdir -p /usr/local/include
                               install libgenpolyclip.a /usr/local/lib/libgenpolyclip.a
                               install gpc.h /usr/local/include/gpc.h
       - В файле gpc.h, нужно найти и изменить значение DBL_EPSILON на 0.000001
   b) NEWMAT:
       * make -f nm_gnu.mak
       * sudo cp libnewmat.a /usr/local/lib
       * sudo mkdir /usr/local/include/newmat
       * sudo cp *.h /usr/local/include/newmat
               

11. Наконец-то мы подобрались к компиляции самой terragear-cs. Опять ставим несколько пакетов:

       * sudo apt-get install libwxgtk2.8-dev libcurl4-openssl-dev
   И опять автоген, конфигурация, компиляция, инсталляция:
       * ./autogen.sh
       * ./configure && make
       * sudo make install

12. Ну вот и всё.


Опционально


13. Если мы хотим сделать photo сценарий и вставлять фотки в свой сценарий, нам нужен скрипт chop.pl:

       * sudo gedit /usr/local/bin/chop.pl:
   Копируем и вставляем следующее:
               #!/usr/bin/perl
               die "Usage: $0 file xdiv ydiv res\n" if ( $#ARGV != 3 );
                   
               $file = shift @ARGV;
               $xdiv = shift @ARGV;
               $ydiv = shift @ARGV;
               $res = shift @ARGV;
               die "Must start with a .png file\n" if ( $file !~ m/\.png$/ );
               # extract image dimensions
               $info = `file $file`;
               $info =~ s/,//g;
               ($junk, $type, $junk, $junk, $width, $junk, $height, $junk)
                   = split(/\s+/, $info, 8);
               print "$width - $height\n";
               $basename = $file;
               $basename =~ s/\.png$//;
               # convert source image to pnm
               `pngtopnm $basename.png > $basename.pnm`;
               $dx = $width / $xdiv;
               $dy = $height / $ydiv;
               for ( $j = 0; $j < $ydiv; $j++ ) {
                   for ( $i = 0; $i < $xdiv; $i++ ) {
                       print "Paso $i $j\n";
                       $x = $dx * $i;
                       $y = $height - $dy * ($j + 1);
                       $outputpnm = sprintf("$basename%X%X.pnm", $i, $j);
                       $outputsgi = sprintf("$basename%X%X.sgi", $i, $j);
                       $outputrgb = sprintf("$basename%X%X.rgb", $i, $j);
                	printf "Diviendo archivos...\n";
                       printf "pnmcut $x $y $dx $dy $basename.pnm | pnmscale -xysize $res $res > $outputpnm\n";
                       `pnmcut $x $y $dx $dy $basename.pnm | pnmscale -xsize $res -ysize $res > $outputpnm`;
                       printf "Convirtiendo archivos...\n";
                       `convert $outputpnm $outputsgi`;
                       printf "Renombrando archivos...\n";
                       rename($outputsgi, $outputrgb);
                       unlink($outputpnm);
                   }
               }
   Сохраняем файл.
   Установим также еще несколько пакетов для манипуляций с растром:
       * sudo apt-get install imagemagick netpbm

14. Установим QGIS для редактирования контуров поверхности (shapes).

       * sudo gedit /etc/apt/source.list
   Дописывем в конце эту строчку:
               deb http://ppa.launchpad.net/qgis/ubuntu hardy main
   и далее в консоли:
       * sudo apt-get update
       * sudo apt-get install qgis qgis-plugin-grass
Личные инструменты