183 lines
4.9 KiB
Plaintext
183 lines
4.9 KiB
Plaintext
|
|
Portability Libraries.
|
|
======================
|
|
by Steve Baker.
|
|
|
|
All the documentation and installation instructions
|
|
are now online at:
|
|
|
|
http://plib.sourceforge.net
|
|
|
|
They are also downloadable - along with example
|
|
programs and demos from the same site.
|
|
|
|
|
|
SUPPORT:
|
|
|
|
Please don't email me (Steve Baker) directly - I
|
|
get *WAY* too much mail as it is! Instead, please
|
|
sign up to the PLIB user's mailing list. Instructions
|
|
can be found here:
|
|
|
|
http://plib.sourceforge.net
|
|
|
|
|
|
LICENSING:
|
|
|
|
These libraries are offered as OpenSource freeware
|
|
under the provisions of the GNU Library Public
|
|
License (LGPL). Those terms and conditions are
|
|
detailed in the file 'LICENSE' in this directory.
|
|
|
|
I have added a short preamble to LGPL that removes
|
|
no rights from ordinary users but offers special
|
|
dispensation to allow PLIB to be used under certain
|
|
commercial conditions (such as Games Consoles) where
|
|
the constraints of LGPL are impossible to meet.
|
|
|
|
| As a special exception Steve Baker gives permission to link these
|
|
| libraries with proprietary software and distribute the resulting
|
|
| executable without including that proprietary code in any distribution
|
|
| as the LGPL would normally dictate.
|
|
|
|
|
| This exception is ONLY granted in the case of an embedded system in
|
|
| which there is no possibility of an end user re-linking or recompiling
|
|
| against new versions of this library that may appear in the future.
|
|
|
|
|
|
REQUIREMENTS:
|
|
|
|
In addition to the libraries that I provide, you
|
|
will also need OpenGL (OpenGL 1.1 or later -
|
|
Mesa 3.0 or later) and GLUT (The OpenGL utilities
|
|
toolkit - version 3.7 or later) and a hardware 3D
|
|
graphics accellerator that supports OpenGL.
|
|
|
|
|
|
WHAT DO YOU GET?
|
|
|
|
The following libraries are provided:
|
|
|
|
JS -- A Joystick interface.
|
|
PUI -- A simple GUI built on top of OpenGL.
|
|
SG -- Some Standard Geometry functions (vector and
|
|
matrix math, spheres, boxes, frustra, etc)
|
|
SL -- A Games-oriented Sound Library.
|
|
FNT -- OpenGL texture-mapped font Library.
|
|
PW -- A minimalist windowing library.
|
|
PSL -- A C-like scripting language.
|
|
SSG -- A Simple Scene Graph API built on top of OpenGL.
|
|
NET -- Some Networking functions for games.
|
|
UTIL-- Utilities - things that your OS would normally
|
|
handle - but these functions are portable.
|
|
|
|
SSGAUX -- Some optional additional high level features for SSG
|
|
PUIAUX -- Some optional additional high level features for PUI
|
|
|
|
|
|
DIRECTORY STRUCTURE:
|
|
|
|
PLIB expects to be installed in one standard place:
|
|
|
|
/usr/lib
|
|
|
|
...with header files at:
|
|
|
|
/usr/include/plib
|
|
|
|
|
|
PORTABILITY and DEPENDANCIES:
|
|
|
|
Although all these libraries are designed to be easily
|
|
portable (and more importantly so that programs using
|
|
them can be UTTERLY portable), some of them have not
|
|
yet been ported to all operating systems.
|
|
|
|
JS -- Currently Linux/Windows/BSD only.
|
|
|
|
UL -- Should be portable to POSIX-compliant
|
|
OS's ... and Windows.
|
|
|
|
SG -- Totally portable, no dependancies.
|
|
|
|
PUI -- Requires OpenGL also FNT and SG.
|
|
PUI also requires some kind of windowing
|
|
library - which could be PW - or GLUT,
|
|
freeglut, SDL, FLTK - or others.
|
|
|
|
PSL -- Requires UL.
|
|
|
|
PW -- Requires UL.
|
|
|
|
NET -- Should be portable to POSIX-compliant
|
|
OS's.
|
|
|
|
FNT and SSG -- Require OpenGL, SG and UL.
|
|
|
|
SSGAUX -- Requires SSG - and hence OpenGL, SG and UL.
|
|
PUIAUX -- Requires PUI - and hence FNT and SG.
|
|
|
|
SL -- This has now been ported onto:
|
|
|
|
Linux
|
|
FreeBSD
|
|
OpenBSD
|
|
M$ Windows (NT,95,98 - so far)
|
|
MacOS
|
|
SGI IRIX
|
|
Sun Solaris
|
|
Any operating system that supports OSS (The
|
|
Open Sound System).
|
|
|
|
NOTE: SL has a subsidiary library 'SM' that
|
|
can be used to control the audio mixer - but
|
|
that is not portable beyond Linux. You might
|
|
get it to work under OSS-based sound systems
|
|
too. Don't use SM if you want to write portable
|
|
code.
|
|
|
|
No other requirements.
|
|
|
|
|
|
AUX LIBRARIES AND TOOLS:
|
|
|
|
The 'tools' directory contains a number of useful tools
|
|
and utility programs that are either built using PLIB or
|
|
which are specifically useful when writing PLIB programs.
|
|
|
|
|
|
COMPILING/LINKING WITH PLIB
|
|
|
|
In your source code, add any combination of:
|
|
|
|
#include <plib/ul.h>
|
|
#include <plib/js.h>
|
|
#include <plib/sg.h>
|
|
#include <plib/fnt.h>
|
|
#include <plib/pu.h>
|
|
#include <plib/ssg.h>
|
|
#include <plib/pw.h>
|
|
#include <plib/puAux.h>
|
|
#include <plib/psl.h>
|
|
#include <plib/sl.h>
|
|
#include <plib/net.h>
|
|
#include <plib/ssgAux.h>
|
|
|
|
Add any of these to your link line:
|
|
|
|
-lplibjs -lplibssgaux -lplibssg -lplibsl -lplibpu
|
|
-lplibpuaux -lplibpw -lplibpsl -lplibfnt -lplibnet
|
|
-lplibsg -lplibul
|
|
|
|
Under UNIX/Linux, you'll also need:
|
|
|
|
-lGLU -lGL -L/usr/X11/lib -lX11 -lXext -lXmu -lm
|
|
|
|
...and perhaps a -l for whatever windowing library
|
|
you're using - unless it's the built-in PW library.
|
|
|
|
Steve Baker.
|
|
<sjbaker1@airmail.net>
|
|
http://www.sjbaker.org
|
|
|