 -----
 Developing GSport
 -----
 David Schmidt (david__schmidt at users dot souceforge dot net)
 -----

Developing GSport

 Information, mosly concerning building, about various platforms:

* General build instructions

 You need to build with a <<<make>>> utility.
There's a default Makefile, which should work for nearly any environment.
The Makefile includes a file called <<<vars>>> which defines the platform-
dependent variables.  You need to make <<<vars>>> point to (or be) the appropriate
file for your machine.

 With the autotools version of the build, the following sequence will
execute the build from the main directory:

----------------
autoreconf
automake --add-missing
autoheader
autoconf
sh configure
make
----------------

* Win32

 There is a different port of KEGS by Chea Chee Keong (akilgard) called
KEGS32.  It was originally available from {{{http://web.archive.org/web/20071107082448/http://www.geocities.com/akilgard/kegs32/}http://www.geocities.com/akilgard/kegs32}},
but geocities has since closed.
The Win32 code in GSport is leveraged from KEGS32.

 GSport can be compiled with {{{http://www.mingw.org/}Mingw}}
and {{{http://www.cygwin.com/}Cygwin}} as well as via standard Microsoft compiler suites.

 In order to compile with Cygwin:

------------------
cd into the src/ directory
rm vars
ln -s vars_win32 vars
make
------------------

 You need to have a ROM file (named
ROM, ROM.01, or ROM.03) in the same directory as the resulting executable.

 To quit, either click the close box, or force quit the application.
You can also middle-click (if you have a 3-button mouse) or
Shift-F6 to get the debugger in the terminal window, and then type "q".

* Mac OS X

 Use the <<<vars_mac>>> file:

-------------------------------------
cd into the src/ directory
rm vars; ln -s vars_mac vars
make
-------------------------------------

 After the <<<make>>> has finished, it will create the application <<<GSport>>>.

* X86 Linux

 Use the <<<vars_x86linux>>> file:

-------------------------------------
cd into the src/ directory
rm vars; ln -s vars_x86linux vars
make
-------------------------------------

 The resulting executable is called <<<gsportx>>>.

 The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.

 For audio, GSport needs access to <<</dev/dsp>>>.  If the permissions do not allow
GSport to access <<</dev/dsp>>>, it can fail with a cryptic error message.  As root,
just do: <<<chmod 666 /dev/dsp>>> .

 If you do not have the <<</dev/dsp>>> device, GSport will not start unless you
tell it to disable audio with the following command-line argument:
<<<./gsportx -audio 0>>>

* PowerPC Linux

 Use the <<<vars_linuxppc>>> file:

-------------
cd into the src/ directory
rm vars; ln -s vars_linuxppc vars
make
---------

 The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.

 Audio is currently disabled by default, but you can try turning it on
by runnning the command: <<<gsportx -audio 1>>>.  It sounds horrible, but sounds do
come out.

* Solaris SPARC

 Use the <<<vars_solaris>>> file:

-------------------------------------
cd into the src/ directory
rm vars; ln -s vars_solaris vars
make
-------------------------------------

 The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.

 Audio is currently disabled by default, but you can try turning it on
by runnning the command: <<<gsportx -audio 1>>>

* Solaris x86

 Use the <<<vars_x86solaris>>> file:

-------------------------------------
cd into the src/ directory
rm vars; ln -s vars_x86solaris vars
make
-------------------------------------

 The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.

 Audio is currently disabled by default, but you can try turning it on
by runnning the command: <<<gsportx -audio 1>>>

* Other platforms - "C"

 If you are porting to an X-windows and Unix-based machine, it should be
easy.  Start with <<<vars_x86linux>>> if you are a little-endian machine, or
<<<vars_linuxppc>>> if you are big endian.  Don't define <<<-DGSPORT_LITTLE_ENDIAN>>>
unless your processor is little-endian (x86, Alpha).  Mac, Sun, MIPS,
HP, Motorola, and IBM are big-endian.

* Capabilties 

*-----:------:------:------:------:------+
 <<Platform>> | <<Base IIgs Emulation>> | <<Ethernet>> | <<Text Printer>> | <<Graphical Printer>> | <<Drag/Drop Disks>>
*-----:------:------+
 Linux     | Yes | No  | Yes  | Yes  | No  |
*-----:------:------+
 Macintosh | Yes | No  | Yes  | Yes  | No  | 
*-----:------:------+
 Windows   | Yes | Yes | Yes  | Yes | Yes | 
*-----:------:------+

[]

* Building Graphical Printer Support 

 Until graphical parallel printer support is generally integrated into all builds, the following work needs to be done:

 * Install Simple DirectMedia Layer ({{{http://www.libsdl.org/}SDL}}) and Freetype in your build environment - you'll need to link to their libraries 

 * Add the <<<-DHAVE_SDL>>> option to your <<<CCOPTS>>> and add the same (perhaps to a new) <<<CPPOPTS>>> in your <<<vars>>> file

 * Add something like <<<-I/usr/include/freetype2>>> and <<<-I/usr/include/SDL>>> options to your <<<CCOPTS>>> and add the same (perhaps for a new) <<<CPPOPTS>>> in your <<<vars>>> file to point to the SDL and Freetype include files

 * Include SDL and Freetype libraries to <<<EXTRA_LIBS>>> in your <<<vars>>> file (i.e. <<<EXTRA_LIBS = -lSDL -lfreetype>>>)

 * Include the Win32 common dialog library to <<<EXTRA_LIBS>>> as part of your final linkage if you're on Windows (i.e. <<<EXTRA_LIBS = -lSDL -lfreetype -lcomdlg32>>>)

 * After building, you'll need the file <<<parallel.rom>>> in the same directory that <<<config.txt>>> is found

 * You'll probably want a monospaced TrueType font file easily accessible to add as part of the GSport configuration

 * Run through the emulated printer {{{printer.html}configuration}} steps

 []