----- Developing GSport ----- David Schmidt (1110325+david-schmidt@users.noreply.github.com) ----- Developing GSport Information, mostly concerning building, about various platforms: * General Build Instructions You need to build with a <<>> utility. There's a default Makefile, which should work for nearly any environment. The Makefile includes a file called <<>> which defines the platform- dependent variables. You need to make <<>> point to (or be) the appropriate file for your machine. * 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 the standard Microsoft compiler suites, download and install {{{https://www.visualstudio.com/downloads/download-visual-studio-vs}Microsoft Visual Studio Community 2015 from Microsoft's website}}. The build process requires Perl, such as {{{http://www.activestate.com/activeperl}ActiveState ActivePerl}}. Within Visual Studio, open the "gsport.sln" solution file. Set the "gsport" project as the "StartUp Project", and choose "Build Solution" from the "Build" menu. 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 <<>> file: ------------------------------------- cd into the src/ directory rm vars; ln -s vars_mac vars make ------------------------------------- After the <<>> has finished, it will create the application <<>>. * X86 Linux Use the <<>> file: ------------------------------------- cd into the src/ directory rm vars; ln -s vars_x86linux vars make ------------------------------------- The resulting executable is called <<>>. 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 <<>>. If the permissions do not allow GSport to access <<>>, it can fail with a cryptic error message. As root, just do: <<>> . If you do not have the <<>> 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 <<>> 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: <<>>. It sounds horrible, but sounds do come out. * Raspberry Pi At first, you may want to update/upgrade your base OS: * <<>> * <<>> [] Then, add a line with the value <<>> to the <<>> file and reboot to enable sound. Change the permissions to the resulting device <<>> (after rebooting): <<>> Depending on the version of your OS, the following packages may need to be installed: * xfonts-base: <<>> * libX11-dev: <<>> * libxext-dev: <<>> * libpcap-dev: <<>> [] Use the <<>> file for compilation: ------------- cd into the src/ directory rm vars; ln -s vars_pi vars make --------- The resulting executable is called <<>>. * Solaris SPARC Use the <<>> 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: <<>> * Solaris x86 Use the <<>> 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: <<>> * Other platforms - "C" If you are porting to an X-windows and Unix-based machine, it should be easy. Start with <<>> if you are a little-endian machine, or <<>> if you are big endian. Don't define <<<-DGSPORT_LITTLE_ENDIAN>>> unless your processor is little-endian (Alpha, x86, Mac Intel). Mac PPC, Sun, MIPS, HP, Motorola, and IBM Power are big-endian. * Under Development - Autotools Integration With the autotools branch, the following sequence will execute the build from the main directory: ---------------- autoreconf automake --add-missing autoheader autoconf sh configure make ---------------- * Extended {Capabilities} by Platform All platforms have a common core of capabilities: * Base IIgs emulation * Ensoniq sound emulation * Virtual serial ports mapped to real hardware or IP-emulated ports * Text and graphical printers [] The table below notes where the various builds differ in the support they have in the code base now for various extended capabilities. Turning the "No" boxes into "Yes" are all opportunities for contributions! *-----:------:------:------+ || <> || <> || <> || <> *-----:------:------:------+ Linux | No | No | No | *-----:------:------:------+ Macintosh | No | No | Yes | *-----:------:------:------+ Windows | 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 <<>> and add the same (perhaps to a new) <<>> in your <<>> file * Add something like <<<-I/usr/include/freetype2>>> and <<<-I/usr/include/SDL>>> options to your <<>> and add the same (perhaps for a new) <<>> in your <<>> file to point to the SDL and Freetype include files * Include SDL and Freetype libraries to <<>> in your <<>> file (i.e. <<>>) * Include the Win32 common dialog library to <<>> as part of your final linkage if you're on Windows (i.e. <<>>) * After building, you'll need the file <<>> in the same directory that <<>> 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 []