Сборка 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
