1. Boris Nagaev
  2. facts

Overview

facts, random fact viewer
Copyright (C) 2010 Boris Nagaev

facts is licensed under the GNU GPL Version 2.
Other versions of the GPL do not apply.

=======================================================================

Runtime-requirements:
 * Wt 3.1.11+: http://www.webtoolkit.eu/wt/doc/reference/html/InstallationUnix.html
   at least libwt, libwthttp, libwtsqlite3
 * boost: signals, thread, random, system, regex
 * spawn-fcgi (for fcgi mode)

Build-requirements:
 * ccache
 * g++ 4.5+ (lto is used in release version)
 * gnu make
 * qmake
 * inkscape (Font Steve (package ttf-sjfonts) is used for logo and favicon)
 * convert by ImageMagick
 * upx (is used to compress release version)

Build and run:
 * run `make` to build the executable
 * run `make run` to run the server
 * run `make install` to install the application system-wide
Variables of Makefile:
 * BUILD (=debug), build type: debug | release
 * MODE (=http), wt connector: http | fcgi
 * PORT (=5711), ADDRESS (=0.0.0.0): port and address of http or fcgi server
 * SOCKET (=/var/run/facts/facts.socket for install version,
            $(BUILD)/facts-$(MODE).socket for local version)
   Only for fcgi mode. Connection through unix socket is prefered over ADDRESS:PORT, if both given.
Installation-only variables:
 * RUN_USER (=www-data), RUN_GROUP (=www-data), owner of installed non-executable files
 * INTEGRATE_INTO, comma-separated list of services to integrate into (possible: nginx,monit)
 * URL_PREFIX, url-prefix to use while integrating into web-servers
 * HOST_NAME (=facts), hostname to use while integrating into web-servers
 * NGINX_CONF = /etc/nginx/sites-available/facts
 * MONIT_CONF = /etc/monit/conf.d/facts

Following standard variables affect installation paths:
 * prefix = /usr/local
 * exec_prefix = $(prefix)
 * datarootdir = $(prefix)/share
 * datadir = $(datarootdir)
 * sysconfdir = $(prefix)/etc
 * localstatedir = $(prefix)/var
 * bindir = $(exec_prefix)/bin
To use ubuntu standard paths use `make install-ubuntu` instead of `make install`.