The side for the sourcecode (not for Windows)
Here are discovered how you can compile the whole sourcecode for foobillard++ and what the "needs" for it.
What do you need for compiling the code
The same as for the normal Installation of an Binary Tarball is the presence of some OS-Packages:
- SDL >= Version 1.2
- SDL_mixer
- SDL_net
- freetype2
- libpng (most standard)
For compiling the code, you need the corresponding headerfiles and dev-packages (and a GNU C-Compiler with his standard header-files and libraries too). Depending of the OS-Distribution, the name is similar to the normal runtime package-name. Look for packages like:
- SDL-devel >= Version 1.2
- SDL_mixer-devel
- SDL_net-devel
- freetype2-devel
- libpng-devel
- and the standard GNU autoconf and automake tools
After downloading the source, you have to extract it to a place on your hardisc. Change to the new foobillardplus directory and make a
- aclocal --force
- autoconf -f
- autoheader -f
- automake -a -c -f
- ./configure
- make
- make install (as root)
Have a look in the file README-file for more options to the Installation. After correct compiling and a ''make install' all the files are stored in /opt/foobillardplus. Start the program under /opt/foobillardplus/bin with ./foobillardplus.
In very rare circumstances (on problems to compile the source), you have to delete the following files and directories (not really required, but sometimes better to do it):
- ./foobilardplus/autom4te.cache directory
- ./foobillardplus/aclocal.m4 file
- ./foobillardplus/configure file
- ./foobillardplus/config.status file
- ./foobillardplus/depcomp file
- ./foobillardplus/missing file
- ./foobillardplus/foobillardplus.spec file
- ./foobillardplus/mkinstalldirs file
- ./foobillardplus/Makefile file
- ./foobillardplus/Makefile.in file
- ./foobillardplus/install.sh file
- ./foobillardplus/config.log
- ./foobillardplus/src/.deps directory
- ./foobillardplus/src/Makefile file
- ./foobillardplus/src/Makefile.in file
- ./foobillardplus/src/config.h file
If you have compiled the source before without success, don't forget to make a command 'make clean'.
After success begin a new start of compiling the source into an executable.
Special options for compiling the code (with the command ./configure):
--enable-wetab
This builds a version for the german tablet WeTab (and only for that!!)
Please don't use other optimization flags discussed later in this document.
--enable-touch
This build a special version for generic touch-devices. It is set too with the
--enable-wetab and also needed there.
--enable-mathsingle=ARG
compile math single precision (default=yes). if you use "no" it is compiled for
math double precision. Clients with mixed single or double precision are not
compatible in network games!!!
--enable-fastmath
compile fast math routine in (default=yes). With set this configure option, special
optimized math-routines for cosine, sine, tangens are used. it has nothing to do
with sse intrinsincs. The fast math routines are not nearly as accurate as the
standard routines, but enough for the game.
--enable-sse=ARG
compile with intrinsics SSE commands and use. With enabled SSE, the use of
enable-mathsingle defaults to yes. Double precision are automatically disabled.
Use sse only on Intel or AMD based CPU systems!
--enable-network=ARG
compile for IP-network game support (default=yes). With no as argument, all
network support is not compiled.
--enable-sound=ARG
enable sound (default=yes). With no as argument sound support is not compiled.
Optimization problem of the gcc-suite (don't use with WeTab compiling!)
On many systems some optimizations with gcc generate not really stable code. To
solve the problem, there are only a few optimizations (or none) really recommended.
Here are the terminal code, to see which optimizations are possible on the target
machine. Run it in a terminal like xterm.
gcc -c -Q -O3 --help=optimizers > /tmp/opts.txt
Have a look on the generated file for available optimizations on your system. Please
be carefull to use them. Don't mix the following switches for optimizations in one
configure call.
--enable-standard
Here are the gcc optimizations CFLAGS from the systems are used. The default is no.
--enable-special
This switch uses some special level of optimizations and will produce hopefully a
stable program. Default is no.
--enable-optimization
With this switch the highest optimization level is used. Be carefull. There is no
guarantee from the author, that this produce a stable program. But a very quick
program is compiling.