From: Charles McGarvey Date: Mon, 23 Nov 2009 20:33:48 +0000 (-0700) Subject: updated documentation X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=commitdiff_plain;h=5918751f97a3eb976a7b24647786109edc58234c updated documentation --- diff --git a/COPYING b/COPYING index 50a0424..de839c9 100644 --- a/COPYING +++ b/COPYING @@ -1,73 +1,72 @@ -Excluding certain portions of this software as mentioned in the last section of -this document, the software packaged and/or distributed alongside this file are -licensed according to the following terms and conditions: +Excluding certain portions of this software as mentioned later in this +document, the software distributed alongside this file are licensed +according to the following terms and conditions: The Simplified BSD License -Copyright © 2009, Charles McGarvey +Copyright (c) 2009, Charles McGarvey All rights reserved. -Redistribution and use in source and binary forms, with or without +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -1. Redistributions of source code must retain the above copyright notice, +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- +--------------------------------------------------------------------------- -Portions of this software are owned by third parties and licensed under separate -terms and conditions. These portions, although packaged together according to -the distribution rights granted by their own individual licenses, are used and -provided under their separate terms and conditions and therefore the above -license can not necessarily be applied to such portions. Neither do the terms -and conditions associated with the following portions necessarily apply to the -files released under the above license. Please refer to the specific licenses -used by each of the following portions to understand your rights of use and -distribution of these portions. +Portions of this software are owned by third parties and licensed under +separate terms and conditions. These portions, although packaged together +according to the distribution rights granted by their own individual +licenses, are used and provided under their separate terms and conditions +and therefore the above license can not necessarily be applied to such +portions. Neither do the terms and conditions associated with the +following portions necessarily apply to the files released under the above +license. The texts of applicable licences can be found in doc/licenses/. Portion: beatthecube.xm, nightfusion.xm Source: http://8bitcollective.com/members/FearofDark/ -Copyright: © 2009, Stephen H. Johnston +Copyright: (c) 2009, Stephen H. Johnston License: CCPL-Attribution-ShareAlike-NonCommercial-2.5 Portion: ConvertUTF.{c,h} Source: http://www.unicode.org/Public/PROGRAMS/CVTUTF/ -Copyright: © 2000-2004, Unicode, Inc. +Copyright: (c) 2000-2004, Unicode, Inc. License: see file comments Portion: original image and sound resources Source: http://www.nether.org.uk/bad_mac_code.html -Copyright: © 2003, Neil Carter +Copyright: (c) 2003, Neil Carter License: zlib-libpng Portion: cml Source: http://www.cmldev.net/ -Copyright: © 2009, Jesse Anders +Copyright: (c) 2009, Jesse Anders License: Boost-1.0 Portion: fastevents.{c,h} Source: http://www.gameprogrammer.com/fastevents/fastevents1.html -Copyright: © 2002, Bob Pendleton +Copyright: (c) 2002, Bob Pendleton License: LGPL-2.1 Portion: stlplus Source: http://stlplus.sourceforge.net/ -Copyright: © 1999-2004 Southampton University, 2004-2009 Andy Rushton +Copyright: (c) 1999-2004 Southampton University, 2004-2009 Andy Rushton License: BSD diff --git a/Makefile.am b/Makefile.am index b8f7420..0df126f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,8 +1,13 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = data doc src extra +SUBDIRS = data src +EXTRA_DIST = extra +if WIN32 +else + SUBDIRS += doc +endif run: all $(MAKE) -C src run @@ -11,33 +16,15 @@ debug: all $(MAKE) -C src debug -if WIN32 - -INSTALLER_NAME = yoinksetup-$(VERSION).exe - -.PHONY: package -package: $(INSTALLER_NAME) +.PHONY: docs package -$(INSTALLER_NAME): all - @echo "Creating win32 installer..." - @(sh make-win32-installer.sh $(INSTALLER_NAME) 2> installer.log 1>&2 && \ - rm installer.log && echo "Done.") || \ - (echo "Installer compilation failed!"; \ - echo "Check installer.log for details."; exit 1) +docs: + $(DOXYGEN) +if WIN32 +package: all + $(MAKE) -C win32 installer else -if LINUX - -.PHONY: package -package: rpm - -rpm: dist-bzip2 - @echo "Creating RPM package..." - @($(RPMBUILD) -ba --nodeps extra/yoink.spec 2> rpmbuild.log 1>&2 && \ - rm rpmbuild.log && echo "Done.") || \ - (echo "rpmbuild failed!"; \ - echo "Check rpmbuild.log for details."; exit 1) - -endif +package: dist-bzip2 endif diff --git a/README b/README index 3f99fc6..7dba113 100644 --- a/README +++ b/README @@ -1,18 +1,37 @@ -Yoink is a game originally developed 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 alien invaders. +Yoink - The alien-smashing action game +-------------------------------------- + +Contents: + +I. Users + a) General information + b) Requirements + c) License +II. Developers + a) Notes regarding the code + b) Porting +III. Packagers + a) The build system + b) Help requested + + +I. Users +-------- + +a) General information + +Yoink is a game originally developed 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 alien invaders. This version of the game uses all new code and modern frameworks to bring this simple, fast-moving action game to a wider audience. -The new code is released under the BSD-2 license. The old code and original -resources are provided under the zlib/libpng License. See COPYING for complete -details. - -Dependencies: +b) Requirements -boost headers +boost +headers freealut libvorbis Lua @@ -21,14 +40,24 @@ OpenGL SDL SDL_image (with libpng support) +c) License + +The new code is released under the BSD-2 license. The old code and +original resources are provided under the zlib/libpng License. See COPYING +for complete details. The full texts of applicable licenses can be found +in doc/licenses/. + -Notes regarding the code: +II. Developer +------------- -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 code that -happened to fit well into what I needed. So, generally, the source code is -separated into these three categories: +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 +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. @@ -37,13 +66,39 @@ This is the code directly in src/. These classes reside in no namespace. 2. Reusable code. Currently, the code is in src/Moof/, and it is compiled as a convenience -library. These classes and other 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. +library. These classes and other 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. 3. 3rd-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. +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. + +b) Porting + +Portability is a goal of this project. To this end, Yoink is written in +standard C++ and takes advantage of cross-platform libraries. If code +changes are required to cleanly build Yoink on your platform, please send +back patches. + + +III. Packagers +-------------- + +a) The build system + +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 +problems, especially any bugs which complicate packaging on certain +systems, please send back patches. + +b) Help requested + +If you can create packages for your favorite platform, please send them +back to me and/or place the package in a public repository appropriate for +your distribution or platform. I would especially appreciate packages in +common formats such as deb, rpm, or OS X app bundles. diff --git a/configure.ac b/configure.ac index f75ce60..0d9f5fd 100644 --- a/configure.ac +++ b/configure.ac @@ -27,6 +27,8 @@ AC_PROG_INSTALL AC_PROG_RANLIB AM_PROG_CC_C_O +AC_PATH_PROGS([DOXYGEN], [doxygen]) +AC_SUBST(DOXYGEN) # # Configure platform-specific stuff. @@ -55,8 +57,6 @@ case "${host}" in ;; *-linux-gnu*) LINUX=yes - AC_PATH_PROGS([RPMBUILD], [rpmbuild]) - AC_SUBST(RPMBUILD) ;; esac @@ -148,7 +148,7 @@ if test x$WIN32 = xyes then DATADIR="data" else - eval eval DATADIR="${datadir}/yoink" + eval eval DATADIR="${datadir}/$PACKAGE" fi AC_SUBST([DATADIR]) @@ -308,14 +308,18 @@ AC_SUBST([DATA_FILES]) # Create the build files. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +if test x$WIN32 = xyes +then + make_win32="win32/Makefile win32/build-installer.sh" +else + make_doc="doc/Makefile doc/yoink.6" +fi + AC_CONFIG_FILES([Makefile data/Makefile - doc/Makefile - doc/yoink.6 - extra/Makefile - extra/yoink.spec - make-win32-installer.sh - src/Makefile]) + src/Makefile + $make_doc + $make_win32]) AC_CONFIG_HEADERS([src/config.h]) diff --git a/data/Makefile.am b/data/Makefile.am index 0ab7958..80718f7 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,9 +1,9 @@ nobase_dist_pkgdata_DATA = @DATA_FILES@ -appsdir=$(prefix)/share/applications +appsdir=$(datadir)/applications dist_apps_DATA = yoink.desktop -pixmapdir=$(prefix)/share/pixmaps +pixmapdir=$(datadir)/pixmaps dist_pixmap_DATA = yoink.png diff --git a/doc/Makefile.am b/doc/Makefile.am index c74ebdb..c2f51c3 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,3 +1,4 @@ man6_MANS = yoink.6 +EXTRA_DIST = licenses yoink.6 diff --git a/extra/Makefile.am b/extra/Makefile.am deleted file mode 100644 index 36c2e60..0000000 --- a/extra/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ - -EXTRA_DIST = yoink.ebuild - diff --git a/extra/yoink.spec.in b/extra/yoink.spec.in deleted file mode 100644 index 8d10855..0000000 --- a/extra/yoink.spec.in +++ /dev/null @@ -1,49 +0,0 @@ -Summary: Alien-smashing action game. -Name: yoink -Version: @VERSION@ -Release: 1 -License: BSD -Group: Amusements/Games -Source0: http://www.dogcows.com/yoink/%{name}-%{version}.tar.bz2 -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root -BuildRequires: boost-devel -BuildRequires: freealut-devel -BuildRequires: libvorbis-devel -BuildRequires: lua-devel -BuildRequires: mesa-libGL-devel -BuildRequires: openal-devel -BuildRequires: SDL-devel -BuildRequires: SDL_image-devel -Requires: freealut -Requires: libvorbis -Requires: lua -Requires: openal -Requires: SDL -Requires: SDL_image -%description -Leap tall buildings! Crush stupid robots beneath your feet! Wield your -extra-terrestrial powers in the defence of humanity, and send those alien -invaders back from whence they came! This is Yoink. - -You play the part of a flying alien heroine who must defend her home on Earth -from other airborne alien invaders. The game draws inspiration from classic -arcade games like Joust, Bombjack, Rampage, and Defender--simple, fast-moving -action. -%prep -%setup -%build -%configure -make -%install -rm -rf $RPM_BUILD_ROOT -%makeinstall -%clean -rm -rf $RPM_BUILD_ROOT -%files -%defattr(-,root,root) -%{_bindir}/yoink -%doc %{_mandir}/man6/* -%doc AUTHORS ChangeLog COPYING README TODO -%{_datadir}/yoink -%{_datadir}/applications/* -%{_datadir}/pixmaps/* diff --git a/make-win32-installer.sh.in b/win32/build-installer.sh.in similarity index 99% rename from make-win32-installer.sh.in rename to win32/build-installer.sh.in index 2f251c2..5c3b5d9 100644 --- a/make-win32-installer.sh.in +++ b/win32/build-installer.sh.in @@ -11,7 +11,7 @@ MAKENSIS="@MAKENSIS@" STRIP="@STRIP@" # Anchor paths -ROOT_DIR="$PWD" +ROOT_DIR="$PWD/.." # Stuff COMPRESSION="/solid lzma"