You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
183 lines
4.9 KiB
183 lines
4.9 KiB
12 years ago
|
|
||
|
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
|
||
|
|