Skip to content
Nithin Philips edited this page Jan 15, 2012 · 3 revisions

Appendices

.. index:: GPL license
.. index:: FDL license

License

This document is published under the GNU FDL:

Copyright (C) 2011 Keith Brooke, Nithin Philips

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

A copy of the license is available at <http://www.gnu.org/licenses/fdl.html>.

SMOz is free software:

Copyright (C) 2011 Nithin Philips <[email protected]>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Credits

.. todo:: Write Credits

.. index:: Help, Mailing list, SourceForge support website
.. index:: see: Support; Help

Getting Help

Check the SourceForge website to see the best way to receive support: https://sourceforge.net/projects/smoz/support

A mailing list is available at <[email protected]> . You can subscribe to it or browse archives.

Contributing

It's easy to contribute to SMOz.

If you are a user, help is needed in providing support for other users, maintaining the website and the user manual, and more. If you'd like to help, please get in touch: <[email protected]>

If you are a programmer, you can fork the repository at GitHub, make changes to SMOz, and when you're ready, send me a pull request to have your changes integrated into the primary repo. You can also send your changes as standard patch files.

Building SMOz

You can use either Visual Studio or Rake with Albacore to build the project. Building with Rake is the preferred method and it is described here.

.. index:: Ruby, .NET 4.0 SDK, Rake, Albacore, RubyZip, Rgl, Git
.. index:: see: Windows 7 SDK; .NET 4.0 SDK

Setting Up the Build Environment

  1. Install Git for Windows

  2. Install the Windows 7 and .NET 4.0 SDK.

  3. Install Ruby using the RubyInstaller.

  4. After installing ruby, from the Command Prompt, run:

    gem install rake
    gem install albacore
    gem install rgl
    gem install rubyzip
    
  5. Make sure that the paths to the tools, git, .NET framework tools and ruby are in your PATH.

For more information on Albacore, visit the Albacore wiki.

.. index:: Python, Sphinx, HTML Help Workshop, TeX Live, Github, Cygwin

Getting the Source and Building

You can checkout the latest source code via git. Two public mirrors are available, at SourceForge and GitHub.

From SourceForge:

git clone git://smoz.git.sourceforge.net/gitroot/smoz/smoz

Or, from GitHub:

git clone git://github.com/nithinphilips/SMOz.git

To build SMOz, open the Command prompt at the project root and run:

rake

The default task compiles the code, builds the installer and creates all the packages necessary for distribution.

The default task does not build the documentation. To include the documentation in your distribution, run:

rake doc dist

To see a list of all available tasks, run:

rake -T

These are the currently available tasks:

Target Description
build Compiles the application
clean Cleans all the object files, binaries, dist packages etc.
dep_graph Generates a graph of all the tasks and their relationships.
deploy:packages Packages the application and uploads it to the SourceForge website.
deploy:website Builds and uploads the website to the SourceForge server.
dist Builds the application, installer and packages source and binaries (the default).
dist:bin Packages binaries into a distribution ready archive.
dist:installer Packages the binaries into a Windows installer.
dist:src Packages the source code into an archive.
doc Builds the documentation.
doc:dev Builds developer's documentation for any class libraries.
doc:usr Builds the application user manual using Sphinx.
doc:website Builds the website using Sphinx.
tests Runs any unit tests.
.. index:: Dependency graph

Rake tasks are often dependent on other tasks to perform parts of their job. The following graph has a complete list all tasks in the SMOz Rakefile and their relationship to each other. It may be helpful when trying to achieve something that is not already supported.

Detailed dependency graph of SMOz Rakefile
.. index:: HTML documentation, CHM documentation, PDF documentation

Building the SMOz Documentation

Setting up the Documentation Build Environment

The documentation for SMOz is written using Sphinx. You can view the latest documentation online at https://github.com/nithinphilips/SMOz/wiki

If you'd like to generate HTML, PDF or HTML Help formats of the documentation, you'll need to install Sphinx and the required tools.

  1. Install Sphinx

    Before installing Sphinx, you'll need to install Python and setuptools.

    There are two ways to install Python. If you already have Cygwin installed, you can use the Python package from Cygwin. Otherwise, see http://www.python.org/download/ for the Windows installer.

    Depending on how you installed Python, follow the proper instructions to install setuptools.

    Once setuptools are installed, run:

    easy_install -U Sphinx
    
  2. Install HTML Help Workshop

    HTML Help Workshop is required to create .chm output.

    Download and install it from https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21138.

    You should add the install path your PATH environment variable.

  3. Install Tex Live

    Tex Live is required to create .pdf output.

    Download and install it from http://www.tug.org/texlive/acquire-netinstall.html

    Note

    If you have Cygwin installed, run the installation script from a Cygwin shell to install it there.

    You should add the install path your PATH environment variable.

.. index:: Building SMOz, Running Rake, Build targets, Build dependency graph

Getting the Documentation Source and Building

The Documentation is hosted at GitHub.

To checkout the source, run:

git clone git://github.com/nithinphilips/SMOz.wiki.git

The documentation uses a makefile to build. To build the html output format, run:

make html

The following targets are available:

Target Description
html to make standalone HTML files
dirhtml to make HTML files named index.html in directories
singlehtml to make a single large HTML file
pickle to make pickle files
json to make JSON files
htmlhelp to make HTML files and a HTML help project
qthelp to make HTML files and a qthelp project
devhelp to make HTML files and a Devhelp project
epub to make an epub
latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
latexpdf to make LaTeX files and run them through pdflatex
text to make text files
man to make manual pages
texinfo to make Texinfo files
info to make Texinfo files and run them through makeinfo
linkcheck to check all external links for integrity