<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bzflag.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mmrtnt</id>
	<title>BZFlagWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bzflag.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mmrtnt"/>
	<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/Special:Contributions/Mmrtnt"/>
	<updated>2026-04-18T12:04:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6769</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6769"/>
		<updated>2009-10-22T22:57:11Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in /opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You don&#039;t necessarily have to install in /opt&#039;&#039;&#039;.  If not, skip all the &amp;quot;opt&amp;quot; stuff or substitute the correct location instead. Most of these packages will install in /usr/local.  /usr/local was not available to me.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
You will also have to update the *.la files if you get errors like this:&lt;br /&gt;
&lt;br /&gt;
 libtool: link: cannot find the library `/usr/local/lib/libidn.la&#039; or unhandled argument `/usr/local/lib/libidn.la&#039;&lt;br /&gt;
&lt;br /&gt;
You will have to update these lines in SMCliconv/lib/libiconv.la, etc:&lt;br /&gt;
&lt;br /&gt;
 dependency_libs=&#039; -R/usr/local/lib -R/usr/lib -R/usr/openwin/lib &amp;lt;b&amp;gt; -R/opt/SMCossl/ssl/lib &amp;lt;/b&amp;gt; -R/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.2/lib -R/usr/X11R6/lib &lt;br /&gt;
 -L/usr/local/lib -L/usr/lib -L/usr/openwin/lib &amp;lt;b&amp;gt; -L/opt/SMCossl/ssl/lib &amp;lt;/b&amp;gt; -L/usr/local/BerkeleyDB.4.2/lib &amp;lt;/b&amp;gt; /opt/SMClibidn/lib/libidn.la &amp;lt;/b&amp;gt; -L/usr/local/pgsql/lib &lt;br /&gt;
 -L/usr/X11R6/lib &amp;lt;b&amp;gt;/opt/SMClintl/lib/libintl.la&amp;lt;/b&amp;gt; -lsec -lc &amp;lt;b&amp;gt;/opt/SMClssh2/lib/libssh2.la  /opt/SMCliconv/lib/libiconv.la &amp;lt;/b&amp;gt; -lssl -lcrypto -lsocket -lnsl -lz&#039;&lt;br /&gt;
&lt;br /&gt;
Fix missing links&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/sfw/bin/gmake /usr/sfw/bin/make&lt;br /&gt;
 &lt;br /&gt;
 ln -s /usr/xpg4/bin/ar /usr/bin/ar&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
 static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3f(r, g, b); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3f)(r, g, b); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4f(r, g, b, a); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color4f)(r, g, b, a); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3fv(rgb); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3fv)(rgb); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4fv(rgba); };&lt;br /&gt;
  #else&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6768</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6768"/>
		<updated>2009-10-22T22:53:38Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in /opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You don&#039;t necessarily have to install in /opt&#039;&#039;&#039;.  If not, skip all the &amp;quot;opt&amp;quot; stuff. Most of these packages will install in /usr/local.  /usr/local was not available to me.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
You will also have to update the *.la files if you get errors like this:&lt;br /&gt;
&lt;br /&gt;
 libtool: link: cannot find the library `/usr/local/lib/libidn.la&#039; or unhandled argument `/usr/local/lib/libidn.la&#039;&lt;br /&gt;
&lt;br /&gt;
You will have to update these lines in SMCliconv/lib/libiconv.la, etc:&lt;br /&gt;
&lt;br /&gt;
 dependency_libs=&#039; -R/usr/local/lib -R/usr/lib -R/usr/openwin/lib &amp;lt;b&amp;gt; -R/opt/SMCossl/ssl/lib &amp;lt;/b&amp;gt; -R/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.2/lib -R/usr/X11R6/lib &lt;br /&gt;
 -L/usr/local/lib -L/usr/lib -L/usr/openwin/lib &amp;lt;b&amp;gt; -L/opt/SMCossl/ssl/lib &amp;lt;/b&amp;gt; -L/usr/local/BerkeleyDB.4.2/lib &amp;lt;/b&amp;gt; /opt/SMClibidn/lib/libidn.la &amp;lt;/b&amp;gt; -L/usr/local/pgsql/lib &lt;br /&gt;
 -L/usr/X11R6/lib &amp;lt;b&amp;gt;/opt/SMClintl/lib/libintl.la&amp;lt;/b&amp;gt; -lsec -lc &amp;lt;b&amp;gt;/opt/SMClssh2/lib/libssh2.la  /opt/SMCliconv/lib/libiconv.la &amp;lt;/b&amp;gt; -lssl -lcrypto -lsocket -lnsl -lz&#039;&lt;br /&gt;
&lt;br /&gt;
Fix missing links&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/sfw/bin/gmake /usr/sfw/bin/make&lt;br /&gt;
 &lt;br /&gt;
 ln -s /usr/xpg4/bin/ar /usr/bin/ar&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
 static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3f(r, g, b); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3f)(r, g, b); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4f(r, g, b, a); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color4f)(r, g, b, a); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3fv(rgb); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3fv)(rgb); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4fv(rgba); };&lt;br /&gt;
  #else&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6767</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6767"/>
		<updated>2009-10-22T22:52:43Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You don&#039;t necessarily have to install in opt&#039;&#039;&#039;.  If not, skip all the &amp;quot;opt&amp;quot; stuff. Most of these packages will install in /usr/local.  /usr/local was not available to me.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
You will also have to update the *.la files if you get errors like this:&lt;br /&gt;
&lt;br /&gt;
 libtool: link: cannot find the library `/usr/local/lib/libidn.la&#039; or unhandled argument `/usr/local/lib/libidn.la&#039;&lt;br /&gt;
&lt;br /&gt;
You will have to update these lines in SMCliconv/lib/libiconv.la, etc:&lt;br /&gt;
&lt;br /&gt;
 dependency_libs=&#039; -R/usr/local/lib -R/usr/lib -R/usr/openwin/lib &amp;lt;b&amp;gt; -R/opt/SMCossl/ssl/lib &amp;lt;/b&amp;gt; -R/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.2/lib -R/usr/X11R6/lib &lt;br /&gt;
 -L/usr/local/lib -L/usr/lib -L/usr/openwin/lib &amp;lt;b&amp;gt; -L/opt/SMCossl/ssl/lib &amp;lt;/b&amp;gt; -L/usr/local/BerkeleyDB.4.2/lib &amp;lt;/b&amp;gt; /opt/SMClibidn/lib/libidn.la &amp;lt;/b&amp;gt; -L/usr/local/pgsql/lib &lt;br /&gt;
 -L/usr/X11R6/lib &amp;lt;b&amp;gt;/opt/SMClintl/lib/libintl.la&amp;lt;/b&amp;gt; -lsec -lc &amp;lt;b&amp;gt;/opt/SMClssh2/lib/libssh2.la  /opt/SMCliconv/lib/libiconv.la &amp;lt;/b&amp;gt; -lssl -lcrypto -lsocket -lnsl -lz&#039;&lt;br /&gt;
&lt;br /&gt;
Fix missing links&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/sfw/bin/gmake /usr/sfw/bin/make&lt;br /&gt;
 &lt;br /&gt;
 ln -s /usr/xpg4/bin/ar /usr/bin/ar&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
 static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3f(r, g, b); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3f)(r, g, b); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4f(r, g, b, a); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color4f)(r, g, b, a); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3fv(rgb); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3fv)(rgb); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4fv(rgba); };&lt;br /&gt;
  #else&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6766</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6766"/>
		<updated>2009-10-22T22:49:55Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You don&#039;t necessarily have to install in opt&#039;&#039;&#039;.  If not, skip all the &amp;quot;opt&amp;quot; stuff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
You will also have to update the *.la files if you get errors like this:&lt;br /&gt;
&lt;br /&gt;
 libtool: link: cannot find the library `/usr/local/lib/libidn.la&#039; or unhandled argument `/usr/local/lib/libidn.la&#039;&lt;br /&gt;
&lt;br /&gt;
You will have to update these lines in SMCliconv/lib/libiconv.la, etc:&lt;br /&gt;
&lt;br /&gt;
 dependency_libs=&#039; -R/usr/local/lib -R/usr/lib -R/usr/openwin/lib &amp;lt;b&amp;gt; -R/opt/SMCossl/ssl/lib &amp;lt;/b&amp;gt; -R/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.2/lib -R/usr/X11R6/lib &lt;br /&gt;
 -L/usr/local/lib -L/usr/lib -L/usr/openwin/lib &amp;lt;b&amp;gt; -L/opt/SMCossl/ssl/lib &amp;lt;/b&amp;gt; -L/usr/local/BerkeleyDB.4.2/lib &amp;lt;/b&amp;gt; /opt/SMClibidn/lib/libidn.la &amp;lt;/b&amp;gt; -L/usr/local/pgsql/lib &lt;br /&gt;
 -L/usr/X11R6/lib &amp;lt;b&amp;gt;/opt/SMClintl/lib/libintl.la&amp;lt;/b&amp;gt; -lsec -lc &amp;lt;b&amp;gt;/opt/SMClssh2/lib/libssh2.la  /opt/SMCliconv/lib/libiconv.la &amp;lt;/b&amp;gt; -lssl -lcrypto -lsocket -lnsl -lz&#039;&lt;br /&gt;
&lt;br /&gt;
Fix missing links&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/sfw/bin/gmake /usr/sfw/bin/make&lt;br /&gt;
 &lt;br /&gt;
 ln -s /usr/xpg4/bin/ar /usr/bin/ar&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
 static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3f(r, g, b); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3f)(r, g, b); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4f(r, g, b, a); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color4f)(r, g, b, a); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3fv(rgb); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3fv)(rgb); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4fv(rgba); };&lt;br /&gt;
  #else&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6765</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6765"/>
		<updated>2009-10-22T22:26:36Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
You will also have to update the *.la files if you get errors like this:&lt;br /&gt;
&lt;br /&gt;
 libtool: link: cannot find the library `/usr/local/lib/libidn.la&#039; or unhandled argument `/usr/local/lib/libidn.la&#039;&lt;br /&gt;
&lt;br /&gt;
You will have to update these lines in SMCliconv/lib/libiconv.la, etc:&lt;br /&gt;
&lt;br /&gt;
 dependency_libs=&#039; -R/usr/local/lib -R/usr/lib -R/usr/openwin/lib &amp;lt;b&amp;gt; -R/opt/SMCossl/ssl/lib &amp;lt;/b&amp;gt; -R/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.2/lib -R/usr/X11R6/lib &lt;br /&gt;
 -L/usr/local/lib -L/usr/lib -L/usr/openwin/lib &amp;lt;b&amp;gt; -L/opt/SMCossl/ssl/lib &amp;lt;/b&amp;gt; -L/usr/local/BerkeleyDB.4.2/lib &amp;lt;/b&amp;gt; /opt/SMClibidn/lib/libidn.la &amp;lt;/b&amp;gt; -L/usr/local/pgsql/lib &lt;br /&gt;
 -L/usr/X11R6/lib &amp;lt;b&amp;gt;/opt/SMClintl/lib/libintl.la&amp;lt;/b&amp;gt; -lsec -lc &amp;lt;b&amp;gt;/opt/SMClssh2/lib/libssh2.la  /opt/SMCliconv/lib/libiconv.la &amp;lt;/b&amp;gt; -lssl -lcrypto -lsocket -lnsl -lz&#039;&lt;br /&gt;
&lt;br /&gt;
Fix missing links&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/sfw/bin/gmake /usr/sfw/bin/make&lt;br /&gt;
 &lt;br /&gt;
 ln -s /usr/xpg4/bin/ar /usr/bin/ar&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
 static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3f(r, g, b); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3f)(r, g, b); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4f(r, g, b, a); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color4f)(r, g, b, a); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3fv(rgb); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3fv)(rgb); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4fv(rgba); };&lt;br /&gt;
  #else&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6764</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6764"/>
		<updated>2009-10-22T22:08:30Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
You will also have to update the *.la files if you get errors like this:&lt;br /&gt;
&lt;br /&gt;
 libtool: link: cannot find the library `/usr/local/lib/libidn.la&#039; or unhandled argument `/usr/local/lib/libidn.la&#039;&lt;br /&gt;
&lt;br /&gt;
You will have to update this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dependency_libs=&#039; -R/usr/local/lib -R/usr/lib -R/usr/openwin/lib -R/usr/local/ssl/lib -R/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.2/lib -R/usr/X11R6/lib &lt;br /&gt;
-L/usr/local/lib -L/usr/lib -L/usr/openwin/lib -L/opt/SMCossl/ssl/lib -L/usr/local/BerkeleyDB.4.2/lib &#039;&#039;&#039;/opt/SMClibidn/lib/libidn.la&#039;&#039;&#039; -L/usr/local/pgsql/lib &lt;br /&gt;
-L/usr/X11R6/lib /opt/SMClintl/lib/libintl.la -lsec -lc /opt/SMClssh2/lib/libssh2.la &#039;&#039;&#039;/opt/SMCliconv/lib/libiconv.la&#039;&#039;&#039; -lssl -lcrypto -lsocket -lnsl -lz&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix missing links&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/sfw/bin/gmake /usr/sfw/bin/make&lt;br /&gt;
 &lt;br /&gt;
 ln -s /usr/xpg4/bin/ar /usr/bin/ar&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
 static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3f(r, g, b); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3f)(r, g, b); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4f(r, g, b, a); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color4f)(r, g, b, a); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3fv(rgb); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3fv)(rgb); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4fv(rgba); };&lt;br /&gt;
  #else&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6763</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6763"/>
		<updated>2009-10-22T22:07:36Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
You will also have to update the *.la files if you get errors like this:&lt;br /&gt;
&lt;br /&gt;
 libtool: link: cannot find the library `/usr/local/lib/libidn.la&#039; or unhandled argument `/usr/local/lib/libidn.la&#039;&lt;br /&gt;
&lt;br /&gt;
You will have to update this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dependency_libs=&#039; -R/usr/local/lib -R/usr/lib -R/usr/openwin/lib -R/usr/local/ssl/lib -R/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.2/lib -R/usr/X11R6/lib -L/usr/local/lib -L/usr/lib -L/usr/openwin/lib -L/opt/SMCossl/ssl/lib -L/usr/local/BerkeleyDB.4.2/lib &#039;&#039;&#039;/opt/SMClibidn/lib/libidn.la&#039;&#039;&#039; -L/usr/local/pgsql/lib -L/usr/X11R6/lib &#039;&#039;&#039;/opt/SMClintl/lib/libintl.la&#039;&#039;&#039; -lsec -lc /opt/SMClssh2/lib/libssh2.la &#039;&#039;&#039;/opt/SMCliconv/lib/libiconv.la&#039;&#039;&#039; -lssl -lcrypto -lsocket -lnsl -lz&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix missing links&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/sfw/bin/gmake /usr/sfw/bin/make&lt;br /&gt;
 &lt;br /&gt;
 ln -s /usr/xpg4/bin/ar /usr/bin/ar&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
 static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3f(r, g, b); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3f)(r, g, b); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4f(r, g, b, a); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color4f)(r, g, b, a); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3fv(rgb); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3fv)(rgb); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4fv(rgba); };&lt;br /&gt;
  #else&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6762</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6762"/>
		<updated>2009-10-22T20:41:14Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
Fix missing links&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/sfw/bin/gmake /usr/sfw/bin/make&lt;br /&gt;
 &lt;br /&gt;
 ln -s /usr/xpg4/bin/ar /usr/bin/ar&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
 static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3f(r, g, b); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3f)(r, g, b); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4f(r, g, b, a); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color4f)(r, g, b, a); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3fv(rgb); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3fv)(rgb); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4fv(rgba); };&lt;br /&gt;
  #else&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6761</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6761"/>
		<updated>2009-10-22T20:40:48Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
Fix missing links&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/sfw/bin/gmake /usr/sfw/gin/make&lt;br /&gt;
 &lt;br /&gt;
 ln -s /usr/xpg4/bin/ar /usr/bin/ar&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
 static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3f(r, g, b); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3f)(r, g, b); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4f(r, g, b, a); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color4f)(r, g, b, a); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3fv(rgb); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3fv)(rgb); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4fv(rgba); };&lt;br /&gt;
  #else&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6760</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6760"/>
		<updated>2009-10-22T20:12:29Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
 static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3f(r, g, b); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3f)(r, g, b); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4f(r, g, b, a); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color4f)(r, g, b, a); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor3fv(rgb); };&lt;br /&gt;
  #else&lt;br /&gt;
        { (*color3fv)(rgb); }&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
      static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
  #ifdef __MINGW32__&lt;br /&gt;
        {if (!colorOverride) ::myColor4fv(rgba); };&lt;br /&gt;
  #else&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6759</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6759"/>
		<updated>2009-10-22T19:51:57Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gz&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Talk:Compiling&amp;diff=6758</id>
		<title>Talk:Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Talk:Compiling&amp;diff=6758"/>
		<updated>2009-10-22T19:25:27Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Working on 2.0_branch - Checked out revision 18137.&lt;br /&gt;
&lt;br /&gt;
When I follow these Xcode instructions, I get this error: &amp;quot;error: The file “BZFlag-Info.plist” does not exist.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[ Compiling#Solaris_10_.28Oct.2C_2009.29 | Solaris 10 Compile (Oct, 2009)]]&lt;br /&gt;
&lt;br /&gt;
I added this section.  Hope I did it correctly.  I couldn&#039;t find the info anywhere else.&lt;br /&gt;
&lt;br /&gt;
I spent many, many hours recompiling, adjusting things, recompiling, etc.&lt;br /&gt;
&lt;br /&gt;
I hope this is helpful.&lt;br /&gt;
&lt;br /&gt;
[[User:Mmrtnt|Mmrtnt]] 15:22, 22 October 2009 (EDT)&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Talk:Compiling&amp;diff=6757</id>
		<title>Talk:Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Talk:Compiling&amp;diff=6757"/>
		<updated>2009-10-22T19:22:25Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Working on 2.0_branch - Checked out revision 18137.&lt;br /&gt;
&lt;br /&gt;
When I follow these Xcode instructions, I get this error: &amp;quot;error: The file “BZFlag-Info.plist” does not exist.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solaris 10 Compile (Oct, 2009)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I added this section.  Hope I did it correctly.  I couldn&#039;t find the info anywhere elwse.&lt;br /&gt;
&lt;br /&gt;
I spent many, many hours recompiling, adjusting things, recompiling, etc.&lt;br /&gt;
&lt;br /&gt;
I hope this is helpful.&lt;br /&gt;
&lt;br /&gt;
[[User:Mmrtnt|Mmrtnt]] 15:22, 22 October 2009 (EDT)&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6756</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6756"/>
		<updated>2009-10-22T18:54:50Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gZ&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6755</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6755"/>
		<updated>2009-10-22T18:51:59Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gZ&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
libintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Modify CPPFLAGS:&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6754</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6754"/>
		<updated>2009-10-22T18:50:58Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gZ&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
bintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Modify CPPFLAGS:&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be done with a configure switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6753</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6753"/>
		<updated>2009-10-22T18:49:57Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gZ&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
bintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Modify CPPFLAGS:&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be configured with a configure&lt;br /&gt;
switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6752</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6752"/>
		<updated>2009-10-22T18:49:08Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Solaris 10 (Oct, 2009) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gZ&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
bintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Modify CPPFLAGS:&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In src/platform edit the Makefile and uncomment the Solaris stuff:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
am_libPlatform_la_OBJECTS = PlatformFactory.lo \&lt;br /&gt;
        BzfDisplay.lo \&lt;br /&gt;
        BzfJoystick.lo \&lt;br /&gt;
        BzfVisual.lo \&lt;br /&gt;
        BzfWindow.lo \&lt;br /&gt;
        BzfMedia.lo \&lt;br /&gt;
        wave.lo \&lt;br /&gt;
        SolarisPlatformFactory.lo \&lt;br /&gt;
        SolarisMedia.lo \&lt;br /&gt;
        XDisplay.lo \&lt;br /&gt;
        XVisual.lo \&lt;br /&gt;
        XWindow.lo&lt;br /&gt;
(Makes sure platform.a gets built - this can probably be configured with a configure&lt;br /&gt;
switch, but I couldn&#039;t find it)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6751</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Compiling&amp;diff=6751"/>
		<updated>2009-10-22T18:47:16Z</updated>

		<summary type="html">&lt;p&gt;Mmrtnt: /* Other build systems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Compiling BZFlag is the act of taking the raw source codes for the game and using tools to build an executable application(s) for a target system.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In order to compile a user must have his or her own copy of the [[BZFlag_Source|Source Code]]. The code can be obtained from a source archive from the [[Download]] page, or from the [[BZFlag_SVN]] server.&lt;br /&gt;
&lt;br /&gt;
==Readme Files==&lt;br /&gt;
Users should always read the README files for the appropriate operating system. These files are located in the root directory of the source code tree.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
BZFlag is capable of being built on a number of compilers. The compiler used will depend in some way on the operating system of the computer doing the build.&lt;br /&gt;
&lt;br /&gt;
Linux computers, use the GCC compiler.&lt;br /&gt;
Macintosh Computers use the XCode compiler&lt;br /&gt;
Windows Computers can use the Visual C++ compiler, or the MinGW compiler (based on GCC)&lt;br /&gt;
&lt;br /&gt;
===GCC===&lt;br /&gt;
The GCC build as a number of requirements;&lt;br /&gt;
* Automake X.XX&lt;br /&gt;
* Autoconf X.XX&lt;br /&gt;
* Autotools X.XX&lt;br /&gt;
* SDL Development libraries 1.2.10 or greater (on Mac OS X you need 2.99 from svn and SDL 1.3 which is also only in SVN, to build BZFlag x86_64 binaries; i386 binaries should build fine using Mac OS X version 10.6 after setting the correct environment variables to avoid building x86_64 instead)&lt;br /&gt;
* OpenGL Development libraries 1.1 or greater&lt;br /&gt;
&lt;br /&gt;
If the required dependencies are installed, the user must then run the following commands from at root level of the source tree&lt;br /&gt;
&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Please note that depending on permissions levels the &#039;&#039;&#039;make install&#039;&#039;&#039; command may need to be run as an administrator or root.&lt;br /&gt;
On Mac you can either run make to find any problems, or xcodebuild (after ./configure) to make an .app that is useable.&lt;br /&gt;
&lt;br /&gt;
===XCode===&lt;br /&gt;
Launch XCode and open the &#039;&#039;&#039;bzflag/BZFlag.xcodeproj&#039;&#039;&#039; project. Note that XCode should have &#039;&#039;&#039;BZFlag&#039;&#039;&#039; selected as the active target and &#039;&#039;&#039;Development&#039;&#039;&#039; as the active build configuration. Click on &#039;&#039;&#039;Targets&#039;&#039;&#039; then click the &#039;&#039;&#039;Build&#039;&#039;&#039; icon. When this process completes, your application will be in &#039;&#039;&#039;bzflag/build/Development&#039;&#039;&#039;. You can then move it wherever you like.&lt;br /&gt;
&lt;br /&gt;
===Visual C++===&lt;br /&gt;
&lt;br /&gt;
==== 2.0.x ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2003 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to compile you need &#039;&#039;&#039;ALL&#039;&#039;&#039; of the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&amp;amp;DisplayLang=en Microsoft DirectX SDK April 2007] (Only the Headers and Libraries)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en Windows Platform SDK] (This is not required for Visual C++ 2008) &amp;lt;br&amp;gt;&lt;br /&gt;
[http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip LibCURL]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=67586&amp;amp;use_mirror=superb-east&amp;amp;filename=glew-1.5.1-win32.zip&amp;amp;1970168 GLEW] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
==== 2.99.x =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In order to compile, you need to have Visual C++ 2008 or higher (Express version works just fine).&amp;lt;br&amp;gt;&lt;br /&gt;
To get the latest Express version of Visual C++, visit [http://www.microsoft.com/express/vc/ http://www.microsoft.com/express/vc/]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&amp;amp;displaylang=en Microsoft DirectX SDK November 2008]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/project/downloading.php?group_id=30480&amp;amp;use_mirror=superb-west&amp;amp;filename=pdc34dll.zip&amp;amp;38017788 PDCurses] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then need to add them to your VC++ Directories, both include and lib folders.&lt;br /&gt;
&lt;br /&gt;
===Other build systems===&lt;br /&gt;
Other build systems may be supported in the various readme files (minGW, IRIX, SOLARIS,etc..)&lt;br /&gt;
&lt;br /&gt;
===Solaris 10 (Oct, 2009)===&lt;br /&gt;
&lt;br /&gt;
This is what I had to do to get bzflag-2.0.12 to compile and run on Solaris 10&lt;br /&gt;
&lt;br /&gt;
Install Sparc packages (in opt) from [http://sunfreeware.com Sunfreeware]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl-7.19.6-sol10-sparc-local.gz&lt;br /&gt;
libidn-1.14-sol10-sparc-local.gz&lt;br /&gt;
libssh2-1.2-sol10-sparc-local.gZ&lt;br /&gt;
openssl-0.9.8k-sol10-sparc-local.gz&lt;br /&gt;
bintl-3.4.0-sol10-sparc-local.gz&lt;br /&gt;
libiconv-1.11-sol10-sparc-local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error saying that a library has moved, you might have to go into the library&#039;s .la file and update its location.&lt;br /&gt;
&lt;br /&gt;
Modify environment variables&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Modify CPPFLAGS:&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib &amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:/opt/SMCcurl/lib:/opt/SMClibidn/lib:/opt/SMClintl/lib:/opt/SMClssh2/lib:/opt/SMCliconv/lib:/opt/SMCossl/lib:/opt/SMCossl/ssl/lib&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit sources&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In include/SceneNode.h, change &amp;quot;glColor&amp;quot; to myColor&amp;quot;:&lt;br /&gt;
(Solves the &amp;quot;Expected &#039;)&#039; before &#039;-&amp;gt;&#039; token&amp;quot; error)&lt;br /&gt;
&lt;br /&gt;
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)&lt;br /&gt;
#define myColor4f(r, g, b, a)   SceneNode::myColor4f(r, g, b, a)&lt;br /&gt;
#define myColor3fv(rgb)         SceneNode::myColor3fv(rgb)&lt;br /&gt;
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)&lt;br /&gt;
&lt;br /&gt;
static void         myColor3f(GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;
static void         myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)&lt;br /&gt;
static void         myColor3fv(const GLfloat* rgb)&lt;br /&gt;
static void         myColor4fv(const GLfloat* rgba)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fix Makefiles&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile&lt;br /&gt;
(Solves the inet_aton unresolved symbol error)&lt;br /&gt;
&lt;br /&gt;
LIBS = -lsocket -lm -lresolv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make and test!&lt;br /&gt;
&lt;br /&gt;
 make; src/bzflag/bzflag&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mmrtnt</name></author>
	</entry>
</feed>