Psi Dependencies
Shell Makefile QMake
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
aspell
gstbundle
openssl
psimedia
qca
zlib
.gitignore
README
detect_platform.mk
detect_platform.sh
fetch.sh

README

Prerequisites
-------------

  Windows:
    64-bit machine (required by the 64-bit toolchain)
    MinGW/MSYS (normal 32-bit install, version from August 1st, 2012 or later)
    Add 64-bit toolchain:
      get x86_64-w64-mingw32-gcc-4.7.1-release-win64_rubenvb.7z
      extract to c:\mingw64, so that you have /c/mingw64/bin/gcc.exe, etc.
    wget (mingw-get install msys-wget)
    coreutils (mingw-get install msys-coreutils)
    patch (mingw-get install msys-patch)
    zip (mingw-get install msys-zip)
    unzip (mingw-get install msys-unzip)
    bison (mingw-get install msys-bison)
    flex (mingw-get install msys-flex)
    perl (mingw-get install msys-perl, NOT ActiveState perl!)
    Qt built for 32-bit x86 (available on qt.nokia.com)
    Qt built for 64-bit x86 (you may need to build this yourself)
    Use an MSYS shell when building modules

  Mac:
    64-bit machine (even though universal binaries are produced)
    Xcode
    Qt built for 32-bit/64-bit x86 universal (you may need to build this
      yourself)

  Ensure you have access to create and/or write to the /psidepsbase directory.
  All modules are configured to use a prefix within that directory, and "sudo"
  is not used when running "make install" operations. It should be enough to
  create the directory in advance with correct permissions.

  NOTE: it is assumed that the root mount device is C:\MinGW\msys\1.0

Building a module
-----------------

  cd module_name
  make
 
  That's it. If all goes well, you'll end up with some archive file.

Available modules
-----------------

  Note: modules may depend on other modules. In this case, you'll just need to
  have built the dependency modules first.

  zlib - windows only.
  openssl - windows only. depends on zlib.
  aspell - windows only.
  gstbundle - windows and mac. windows version depends on zlib.
  qca - windows and mac. depends on qt and openssl. see below about qt vars.
  psimedia - windows and mac. depends on qt and gstbundle, as well as directx
    files. see below about qt vars and directx.

Qt Environment Variables
------------------------

On Windows, your Qt may be installed anywhere, and so you need to supply two
environment variables:

  QTDIR64 - location of 64-bit Qt using native path format with forward slashes
  QTDIR32 - location of 32-bit Qt using native path format with forward slashes

For example:

  cd qca
  QTDIR64=c:/qt/4.8.2-w64 QTDIR32=c:/qt/4.8.2 make

On Mac, you need only QTDIR, pointing to a 32/64-bit x86 build of Qt.

For example:

  cd qca
  QTDIR=/usr/local/Trolltech/Qt-4.8.2 make

DirectX Files
--------------

When building psimedia, it is expected that the DirectX SDK (June 2010) is
installed into C:\dxsdk, with modifications [1], and that the directx mingw
files [2] are stored in C:\dxmingw

[1] add "#define __null" near the top of Include/dsound.h
[2] http://psi-im.org/files/deps/dxmingw.zip

How it works
------------

Only packages not already built within a module will be built when "make" is
run. If a package fails to build, the build process will refuse to continue
until you fix the problem.

For each package to be built:
  1) a "build/{package/arch name}" directory is created as a workspace
  2) the package is attempted to be built, and installed into the prefix
  3) on success, a "build/{package/arch name}/ok" file is touched

The build script will only build a package if the "build/{package/arch name}"
directory does not exist, and it will only advance to the next package if the
directory exists and it contains an "ok" file.