This wiki was in read-only mode for many years, but can now be edited again. A lot of information will need to be updated.

Compiling/Solaris Notes: Difference between revisions

From BZFlagWiki
Jump to navigation Jump to search
Zehra (talk | contribs)
added category
Zehra (talk | contribs)
if anything, it will be official docs or moved to Compiling
Tag: New redirect
 
Line 1: Line 1:
=Solaris 10 (Oct, 2009)=
#REDIRECT [[Compiling]]
 
These notes are based on attempts to get bzflag-2.0.12 to compile and run on Solaris 10
 
==Sparc packages ==
Sparc packages (in /opt) from [http://sunfreeware.com Sunfreeware] are required to build.
 
It is not necessary to install in /opt.  If desired a user may skip all the "opt" stuff or substitute the correct location instead. Most of these packages will install in /usr/local.  /usr/local may not be available to all users. 
 
===Dependencies===
* curl-7.19.6-sol10-sparc-local.gz
* libidn-1.14-sol10-sparc-local.gz
* libssh2-1.2-sol10-sparc-local.gz
* openssl-0.9.8k-sol10-sparc-local.gz
* libintl-3.4.0-sol10-sparc-local.gz
* libiconv-1.11-sol10-sparc-local.gz
 
 
If an error is generated that indicates that a libary has been moved, it may be required to go into the library's .la file and update the location manualy.
 
Other errors that may require an update to the *.la files may look like:
 
libtool: link: cannot find the library `/usr/local/lib/libidn.la' or unhandled argument `/usr/local/lib/libidn.la'
 
If this is the case then the following lines in SMCliconv/lib/libiconv.la, etc, will need to be updated:
 
dependency_libs=' -R/usr/local/lib -R/usr/lib -R/usr/openwin/lib <b> -R/opt/SMCossl/ssl/lib </b> -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 <b> -L/opt/SMCossl/ssl/lib </b> -L/usr/local/BerkeleyDB.4.2/lib </b> /opt/SMClibidn/lib/libidn.la </b> -L/usr/local/pgsql/lib
-L/usr/X11R6/lib <b>/opt/SMClintl/lib/libintl.la</b> -lsec -lc <b>/opt/SMClssh2/lib/libssh2.la  /opt/SMCliconv/lib/libiconv.la </b> -lssl -lcrypto -lsocket -lnsl -lz'
 
These commands can be used to fix the missing links
 
ln -s /usr/sfw/bin/gmake /usr/sfw/bin/make
ln -s /usr/xpg4/bin/ar /usr/bin/ar
 
===Modifying environment variables===
<pre>
export CPPFLAGS="-I/opt/SMClintl/include -I/opt/SMCossl/ssl/include -I/opt/SMCcurl/include -I/opt/SMClssh2/include"
export CPPFLAGS="$CPPFLAGS -I/opt/SMClibidn/include -L/opt/SMClintl/lib -L/opt/SMCossl/ssl/lib -L/opt/SMCcurl/lib "
export CPPFLAGS="$CPPFLAGS -L/opt/SMClssh2/lib -L/opt/SMClibidn/lib -L/opt/c-ares/lib -L/pt/SMCossl/ssl/lib -I/usr/openwin/include/GL"
 
export LDFLAGS="-L/usr/lib -L/opt/SMClintl/lib -L/opt/SMClibidn/lib -L/opt/SMClssh2/lib"
 
export LD_LIBRARY_PATH="$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"
</pre>
 
===Runing configure===
<pre>
./configure --with-libcurl=/opt/SMCcurl --prefix=/opt/bzflag --build=sun4
</pre>
 
===Editing sources===
<pre>
In include/SceneNode.h, change "glColor" to myColor":
(Solves the "Expected ')' before '->' token" error)
 
#define myColor3f(r, g, b)      SceneNode::myColor3f(r, g, b)
#define myColor4f(r, g, b, a)  SceneNode::myColor4f(r, g, b, a)
#define myColor3fv(rgb)        SceneNode::myColor3fv(rgb)
#define myColor4fv(rgba)        SceneNode::myColor4fv(rgba)
 
static void        myColor3f(GLfloat r, GLfloat g, GLfloat b)
  #ifdef __MINGW32__
        {if (!colorOverride) ::myColor3f(r, g, b); };
  #else
        { (*color3f)(r, g, b); }
  #endif
 
      static void        myColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)
  #ifdef __MINGW32__
        {if (!colorOverride) ::myColor4f(r, g, b, a); };
  #else
        { (*color4f)(r, g, b, a); }
  #endif
 
      static void        myColor3fv(const GLfloat* rgb)
  #ifdef __MINGW32__
        {if (!colorOverride) ::myColor3fv(rgb); };
  #else
        { (*color3fv)(rgb); }
  #endif
 
      static void        myColor4fv(const GLfloat* rgba)
  #ifdef __MINGW32__
        {if (!colorOverride) ::myColor4fv(rgba); };
  #else
</pre>
 
===Fixing Makefiles===
<pre>
Add -lresolv to LIBS in src/bzfs/Makefile, src/bzflag/Makefile, src/bzadmin/Makefile
(Solves the inet_aton unresolved symbol error)
 
LIBS = -lsocket -lm -lresolv
 
In src/platform edit the Makefile and uncomment the Solaris stuff:
 
am_libPlatform_la_OBJECTS = PlatformFactory.lo \
        BzfDisplay.lo \
        BzfJoystick.lo \
        BzfVisual.lo \
        BzfWindow.lo \
        BzfMedia.lo \
        wave.lo \
        SolarisPlatformFactory.lo \
        SolarisMedia.lo \
        XDisplay.lo \
        XVisual.lo \
        XWindow.lo
</pre>
It is important to ensure that the platform.a file is built correctly.
 
===Make and test===
 
make; src/bzflag/bzflag
 
[[Category:Compiling]]

Latest revision as of 02:08, 10 November 2025

Redirect to: