Yoink - The alien-smashing action game
---------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Contents:
I. Users
a) General information
b) Requirements
- c) License
-II. Developers
+ c) Installing
+ d) License
+II. Developers and Packagers
a) Notes regarding the code
- b) Sending patches
-III. Packagers
- a) The build system
- b) Targeting Win32
+ b) Packaging
+ c) Sending patches
I. Users
---------
+========
a) General information
+----------------------
Yoink is a game created by Neil Carter for Mac OS. You play the part of a
flying alien heroine who must defend her home on Earth from other airborne
this simple, fast-moving action game to a wider audience.
b) Requirements
+---------------
boost headers
libpng
libvorbis
Lua
OpenAL
-OpenGL
-pkgconfig (build-time dependency)
+OpenGL (including GLU)
+pkg-config
SDL
-c) License
+c) Installing
+-------------
+
+To build and install Yoink yourself, you should first make sure you have
+all the required libraries. Then, issue these commands at a command-line
+prompt:
+
+ cd /path/to/project
+ ./configure
+ make && make install
+
+where /path/to/project is the path to the directory where this file is.
+
+That will compile and install Yoink into the /usr/local directory. To run
+Yoink, issue this command:
+
+ /usr/local/bin/yoink
+
+or just ``yoink'' if /usr/loca/bin is already in your PATH. You can also
+install Yoink to a different directory or change a lot of build options
+using the configure script. See ./configure --help and the file INSTALL
+for details.
+
+d) License
+----------
The new code is released under the 2-clause BSD license. The old code and
-original resources are provided under the zlib/libpng License. See the
-file COPYING for complete details. The full texts of applicable licenses
-can be found in doc/licenses/.
+original resources are provided under the zlib/libpng License. See file
+COPYING for complete details. The full texts of applicable licenses can be
+found in doc/licenses.
-II. Developers
---------------
+II. Developers and Packagers
+============================
a) Notes regarding the code
+---------------------------
The code is a complete rewrite, containing none of the original code. I've
made some effort to put the more generic or reusable code into a separate
-library called Moof. I've also made an effort to incorporate 3rd-party
+library called libmoof. I've also made an effort to incorporate 3rd-party
code that happened to fit well into what I needed. So, generally, the
source code is separated into these three categories:
1. Yoink-specific code.
-This is the code directly in src/. These classes reside in no namespace.
+This is the code in the directory src. These classes reside in no explicit
+namespace.
2. Reusable code.
-Currently, the code is in src/Moof/, and it is compiled as a convenience
-library. These classes and helper functions reside in the Mf namespace.
-Since I wrote this code alongside the Yoink-specific stuff, there is
-somewhat of a blurry line between the two categories, unfortunately.
+The code is in src/moof, and it is compiled as a convenience library.
+These classes and helper functions reside in the moof namespace. Since I
+wrote this code alongside the Yoink-specific stuff, there is somewhat of a
+blurry line between the two categories, unfortunately.
-3. 3rd-party code.
+3. Third-party code.
This is made up of free code from other projects or libraries (aside from
-the explicit dependencies above), the licenses of which are also in the
-COPYING file. This code resides in various namespaces and in various
-subdirectories.
+the explicit dependencies above), the licenses of which are also noted in
+the file COPYING. This code resides in various namespaces and in various
+subdirectories of src.
-b) Sending patches
+b) Packaging
+------------
-I'll gladly entertain patches if you want to fix bugs or whatnot. Just
-email me your stuff or tell me where to pull from (git). If you're
-interested in that, please observe the following:
+Here are some tips to help packagers:
-* Stick to the coding style of the source code files you edit. Follow the
- general style of method and variable naming, as well as white spacing
- formatting. In particular, use literal tabs with an assumed tabstop of
- 4 characters. Also, limit line lengths to 75 characters.
+* The build scripts are written in Lua, so make sure the Lua interpreter
+ is installed. That shouldn't be a problem since Yoink depends on the
+ Lua library anyway.
-* For legal reasons, don't include other peoples' code with your patch.
- You must also agree to license your changes according to the same terms
- and conditions as the files you edit, usually the 2-clause BSD license.
-
-* If you want to add your contact information to the file AUTHORS, please
- just do it in the patch you provide.
-
-
-III. Packagers
---------------
-
-a) The build system
+* The makefile will probably only work well with GNU make. On some
+ systems, this is installed as gmake.
-You can probably tell that the build system of this package is built from
-autoconf and automake. It should be fairly sane. If you find any build
-system problems or code which doesn't compile cleanly on your platform,
-feel free to send back patches.
+* The configure script supports most of the useful options that an
+ autoconf-generated script would have, and the makefile supports DESTDIR.
-b) Targeting Win32
+c) Sending patches
+------------------
-If you have a working mingw32 toolchain with all the dependencies, you can
-build a win32 binary using a command such as this:
+I'll gladly entertain patches if you want to help out. Just email me your
+stuff or tell me where to pull if you use git. If you're interested in
+that, please observe the following:
-./configure --host=mingw32 --prefix=/usr/mingw32/usr
+* Stick to the coding style of the source code files you edit. Follow the
+ general style of method and variable naming, as well as white space
+ formatting. In particular, use literal tabs with an assumed tabstop of
+ 4 characters. Also, try to limit line lengths to 75 characters.
-where mingw32 is the correct name of your toolchain and the prefix points
-to the installation of your toolchain. I maintain an archive of most of
-the dependencies. The package is in the git repository; just unzip it onto
-your toolchain and configure/compile. If everything goes smoothly, you
-should have a new, shiny yoink.exe. You can then build a complete
-installer using "make package" if you have nsis installed.
+* For legal reasons, don't include other peoples' code with your patch.
+ You must also agree to license your changes according to the same terms
+ and conditions as the files you edit, usually the 2-clause BSD license.
-I haven't tried building with cygwin or mingw32 on an actual Windows
-machine, let alone VS. You're on your own if you go that route.
+* If you want your name and contact information in the file AUTHORS,
+ please make it so in the patch you provide.