Skip to content

Latest commit

 

History

History
79 lines (57 loc) · 3.33 KB

BUILD.md

File metadata and controls

79 lines (57 loc) · 3.33 KB

How to build ZXTune

Prerequisites

  • make tool
  • boost 1.48+ library
  • qt 4.8+ library (only for zxtune-qt application)
  • GCC toolkit for linux
  • MINGW toolkit or
  • Microsoft Visual C++ 13.0 Express with DirectX SDK for windows

Environment setup

All the build settings specified via make ... <propname>=<propvalue> can be stored in optional file variables.mak in the project's root and will be used for all builds. For windows optional file variables.bat can be used to setup environment for build shell provided by shell.bat

Possible targets

Location of Makefile files of main locations are apps/zxtune123, apps/zxtune-qt and apps/xtractor for zxtune123,zxtune-qt and xtractor respectively.

Build results

In case of successfull build resulting binaries will be located at bin folder with some possible subfolders according to build modes.

Building for linux with system boost/qt libraries installed

Run:

make system.zlib=1 -C <path to Makefile>

Building in windows environment

Common steps for mingw/msvc building are:

  • choose some directory for prebuilt environment (prebuilt.dir in variables.mak)
  • choose x86 or x86_64 architecture ($(arch) variable mentioned below)
  • optionally create variables.bat to set up make tool availability

After performing particular environment setup described above, use shell.bat to get console session with required parameters set. To start building run:

make -C <path to Makefile>

Building for mingw

Building for windows

FAQ

Why so cumbersome?

To support all the features required for successfull project support. BTW, ZXTune is quite complex end-user product, so optimizing it for other developers is not a goal.

Why not to use ${BUILDSYSTEMNAME} instead of archaic make?

Short answer- because I'm fully satisfied by the current one and don't want to waste time without any profit. If you are advanced in ${BUILDSYSTEMNAME} and want to introduce it in ZXTune project, please contact with maintainer to discuss requirements and possible pitfalls.