General
----------------------------------------------------------------------------------

  If you can, you should use precompiled packages for your distribution.
  But if you cannot use them, or they are not available, please read
  this information before compiling.
  After your binary is successfuly compiled, you need to copy bin/ folder
  from git to specific directory by your system you compiled for.
  On Linux, you can easily do it by running make install.
  If you are unsure where is the right place, you can check it directly from
  QupZilla by clicking from Help Menu on Configuration Information, then in
  Path section.

  You may want to build QupZilla with debugging symbols (for generating
  backtrace of crash) as easily as adding one line to src/defines.pri:

               CONFIG += debug

  QupZilla requires Qt (>=4.7.0) and QtWebKit (at least version included in Qt 4.7)

Microsoft Windows
----------------------------------------------------------------------------------

  You need Microsoft Visual C++ Compiler 2010 or higher, Qt Libraries 4.8.0
  or higher, QtWebKit 2.3 or higher and Hunspell library in order to build QupZilla.
  It is possible, with small changes, to build also with older Microsoft compilers
  or without Hunspell spellchecking.
  However, it is not expected from Windows users to build their software, so only
  one configuration is supported by default.

Linux / Unix
----------------------------------------------------------------------------------

  You need to have Qt 4 (>= 4.7) or Qt 5 development libraries, pkg-config is
  highly recommended to correctly detect QtWebKit version.
  Next compulsory requirement is OpenSSL (libcrypto). X11 libraries are also
  required unless you specify NO_X11 build option.

  To build spellcheck plugin, you need:
     - QtWebKit 2.3 or higher
     - pkg-config installed
     - libhunspell-dev installed

  To build KWallet plugin, you need:
     - kdelibs-dev installed
     - set KDE_INTEGRATION build flag

  To build Gnome-Keyring plugin, you need
     - libgnome-keyring-dev installed
     - set GNOME_INTEGRATION build flag

  For debug build, gdb is required by qmake.

MAC OS X
----------------------------------------------------------------------------------

  There is no extra dependency, you only need Qt tools and XCode.
  After successful compilation, you need to run macdeploy.sh script to correctly
  build the application bundle. You will do it with following command:

    $ ./mac/macdeploy.sh <path-to-macdeployqt>

  You need to specifiy path to macdeployqt (usually in QTDIR/bin/macdeployqt) only
  if it is not in PATH.

OS/2
----------------------------------------------------------------------------------

  I cannot provide support for QupZilla on OS/2 as I don't have access to
  machine with OS/2, but it is possible to get QupZilla working there.

  Builds are provided by netlabs.org (http://svn.netlabs.org/qtapps/wiki/QT4%20Networking)

FreeBSD
----------------------------------------------------------------------------------

  You may need to set few sysctls to get QupZilla running with raster graphics system.

  For more informations, please see FAQ.


Available Defines
----------------------------------------------------------------------------------

  You can set define directly in file (src/defines.pri)
  or set environment variable by

    $ export NAME="value"

 General:
   PORTABLE_BUILD         QupZilla won't write any data outside of path of exection.
                          It will also disable plugins by default.
                          (disabled by default)

                          example:
                          $ export PORTABLE_BUILD="true"


   USE_WEBGL              Enable WebGL. You need to build QupZilla with WebKit built
                          with WebGL support, otherwise you won't be able to compile
                          without errors.
                          Only for QtWebKit lower than 2.3
                          (disabled by default)

                          example:
                          $ export USE_WEBGL="true"

   NONBLOCK_JS_DIALOGS    Enable non-blocking JavaScript dialogs from alert() prompt()
                          and confirm() functions. They are shown inside page and are not
                          blocking application window.
                          However, due to synchronous API, there is a possible crash when
                          closing browser windows with opened dialogs.
                          If you can take this risk and/or make sure you aren't closing browser
                          with opened dialogs, you may enable this option.
                          These dialogs are much more beautiful than normal QDialogs.
                          (disabled by default)

                          example:
                          $ export NONBLOCK_JS_DIALOGS="true"

   ENABLE_OPACITY_EFFECT  Enable opacity effect on animated tab previews. Tab previews
                          will then fade-in on show.
                          However, this feature may result in wrong scrolling into
                          anchor (#) links. Rendering of opacity effect may also be
                          garbled due to Flash.
                          (disabled by default)

                          example:
                          $ export ENABLE_OPACITY_EFFECT="true"

   DISABLE_UPDATES_CHECK  Disables option to check for updates at startup.
                          (disabled by default)

                          example:
                          $ export DISABLE_UPDATES_CHECK="true"


 Windows specific defines:

     W7API                Enable Windows 7 API support
                          Requires linking against libraries from Microsoft Visual C++
                          Compiler 2010
                          (enabled by default)

     W7TASKBAR            Enable Windows 7 Taskbar support
                          Requires linking against libraries from Microsoft Visual C++
                          Compiler 2010
                          May cause crash when downloading files on some systems.
                          (disabled by default)


 Linux / Unix specific defines:

     NO_X11               Disable all direct X11 calls.
                          Enable this when building for Wayland.

                          example:
                          $ export NO_X11="true"

     KDE_INTEGRATION      Enable KDE integration.
                          Currently it enables building of KWallet Password plugin,
                          which provides support for storing passwords in KWallet.

                          example:
                          $ export KDE_INTEGRATION="true"

     GNOME_INTEGRATION    Enable Gnome integration.
                          Currently it enables building of Gnome-Keyring Password plugin,
                          which provides support for storing passwords in Gnome-Keyring.

                          example:
                          $ export GNOME_INTEGRATION="true"

     USE_LIBPATH          By default, /usr/lib/ is used for libQupZilla and /usr/lib/qupzilla
                          for plugins.
                          You can change it by setting this define.

                          example:
                          $ export USE_LIBPATH="/usr/lib64"

     NO_SYSTEM_DATAPATH   By default, QupZilla is using /usr/share/qupzilla/ path
                          for storing themes and translations.
                          By setting this define, QupZilla will use path of execution.
                          (disabled by default)

                          example:
                          $ export NO_SYSTEM_DATAPATH="true"

     QUPZILLA_PREFIX      You can define different prefix.
                          QupZilla binary will then be moved to PREFIX/bin/, use
                          PREFIX/share/qupzilla/ as datadir, PREFIX/share/applications for
                          desktop launcher and PREFIX/share/pixmaps for icon.
                          (default prefix is "/usr/")

                          example:
                          $ export QUPZILLA_PREFIX="/usr"

     DISABLE_DBUS         Build without QtDBus module. Native desktop notifications
                          will be disabled.

                          example:
                          $ export DISABLE_DBUS="true"

