Buildbot:Gentoo: Difference between revisions
From Spring
Jump to navigationJump to search
| Line 62: | Line 62: | ||
<code><pre> | <code><pre> | ||
sys-libs/zlib static-libs minizip | sys-libs/zlib static-libs minizip | ||
media-libs/devil static-libs opengl png | media-libs/devil static-libs opengl png jpeg X | ||
dev-libs/boost static-libs python | dev-libs/boost static-libs python | ||
media-libs/jpeg static-libs | media-libs/jpeg static-libs | ||
Revision as of 17:35, 29 November 2012
This page is WIP! (don't expect these instructions to work, they only give a hint, how it should/could work...)
buildbot-slave (for interacting with spring's buildbot)
emerge dev-util/buildbot-slave
rc-update add buildslave default
nano /etc/conf.d/buildslave
useradd -s /bin/false -d $dir -m $username
buildslave create-slave $dir/buildslave springrts.com:7778 $username $passwd
Setup gentoo win32 buildslave
tools required for compiling
emerge layman mercurial app-arch/p7zip-9.13 dev-util/cmake app-arch/zip wine crossdev app-portage/portage-utils
layman -a ohnobinki
echo "source /var/lib/layman/make.conf" >> /etc/portage/make.conf
CHOST=i686-mingw32 ROOT=/usr/i686-mingw32 emerge pthreads-win32
USE="openmp cxx -fortran" crossdev i686-mingw32 --env 'EXTRA_ECONF="--disable-sjlj-exceptions --with-dwarf --enable-gomp"'
for cgcreate (only needed for load balancing while building)
emerge dev-libs/libcgroup
Install i686-mingw32 compiler, then pthreads, then recompile i686-mingw32 with pthreads enabled
USE="openmp cxx -fortran" crossdev i686-mingw32 --env 'EXTRA_ECONF="--disable-sjlj-exceptions --with-dwarf"'
CHOST=i686-mingw32 ROOT=/usr/i686-mingw32 emerge -va pthreads-win32
USE="openmp cxx -fortran" crossdev i686-mingw32 --env 'EXTRA_ECONF="--disable-sjlj-exceptions --with-dwarf"'
emerge-wrapper --init
stuff that needs to be compiled native (not with mingw)
emerge ncurses cmake eselect eselect-boost
ACCEPT_KEYWORDS="~x86" emerge boost-build
build Spring + dependencies in MinGW
USE="minizip" emerge-i686-mingw32 sys-libs/zlib
- USE="static"
emerge-i686-mingw32 app-arch/bzip2
USE="jpeg png opengl" emerge-i686-mingw32 devil
USE="auto-hinter" emerge-i686-mingw32 freetype
USE="-audio opengl" emerge-i686-mingw32 libsdl -O
EXTRA_ECONF="target-os=windows threadapi=win32" USE="" emerge-i686-mingw32 boost -O
USE="-ai -java openmp" emerge-i686-mingw32 spring
Setup static linux
create /etc/portage/package.use/spring-static-buildslave:
sys-libs/zlib static-libs minizip
media-libs/devil static-libs opengl png jpeg X
dev-libs/boost static-libs python
media-libs/jpeg static-libs
media-libs/libsdl -audio opengl static-libs X
media-libs/libvorbis static-libs
media-libs/libogg static-libs
media-libs/freetype static-libs autohinter
media-libs/glew static-libs
media-libs/libpng static-libs
x11-libs/libXcursor static-libs
app-arch/bzip2 static-libs
x11-libs/libXdmcp static-libs
x11-libs/libXrender static-libs
x11-libs/libX11 static-libs
x11-libs/libXfixes static-libs
x11-libs/libxcb static-libs
x11-libs/libXau static-libs
set compile flags on 64 bit gentoo
this is only required on 64bit gentoo!
if you don't add -fPIC you mostly will get errors like his:
relocation R_X86_64_32 against `a local symbol' can not be used when making a
shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/../../../../lib64/libfl.a: could not
read symbols: Bad value
/etc/portage/env/spring-static-buildslave:
CFLAGS="${CFLAGS} -fPIC"
CXXFLAGS="${CXXFLAGS} -fPIC"
LDFLAGS="${LDFLAGS} -fPIC"
/etc/portage/package.env/spring-static-buildslave:
sys-libs/zlib spring-static-buildslave
media-libs/devil spring-static-buildslave
dev-libs/boost spring-static-buildslave
media-libs/jpeg spring-static-buildslave
media-libs/libsdl spring-static-buildslave
media-libs/libvorbis spring-static-buildslave
media-libs/freetype spring-static-buildslave
media-libs/glew spring-static-buildslave
sys-devel/gcc spring-static-buildslave
media-libs/libpng spring-static-buildslave
x11-libs/libXcursor spring-static-buildslave
install needed programs and libs
Emerge gcc-4.7.2
emerge -va =sys-devel/gcc-4.7.2
enable / use it
gcc-config x86_64-pc-linux-gnu-4.7.2
env-update && source /etc/profile
re-install required libs with changed use flags:
emerge -va sys-libs/zlib media-libs/devil dev-libs/boost media-libs/jpeg media-libs/libsdl \
media-libs/libvorbis media-libs/freetype media-libs/glew media-libs/libpng x11-libs/libXcursor \
app-arch/bzip2 x11-libs/libXdmcp x11-libs/libXrender x11-libs/libX11 x11-libs/libXfixes \
x11-libs/libxcb x11-libs/libXau
TODO: whats that for?!
EXTRA_ECONF="--disable-sjlj-exceptions --with-dwarf2"
USE="openmp cxx -fortran" crossdev i686-mingw32 --env
USE="minizip"
USE="jpeg png opengl" emerge-i686-mingw32 devil
USE="auto-hinter" emerge-i686-mingw32 freetype
USE="-audio opengl" emerge-i686-mingw32 libsdl -O
EXTRA_ECONF="target-os=windows threadapi=win32" USE="" emerge-i686-mingw32 boost -O
USE="-ai -java openmp" emerge-i686-mingw32 spring