Installation

This page describes some details of the installation process and gives hints for trouble shooting.

Reference Platforms

Reference platforms for compilation (all 64bit) are shown below. Compilation should work there.

Platform Compiler Role
Arch Linux gcc 7.1.1 and clang 4.0 Development platform
Mac OS X Yosemite Apple LLVM version 6.0 Build platform for Mac OS images (*.dmg)
Windows 8 MinGW gcc 4.9.3 Build platform for Windows installer (*.exe)
Ubuntu 16.04 LTS (Xenial) gcc 5.4.0 Build platform for Ubuntu packages (*.deb)
FreeBSD 11 clang 3.8.0 Testing, see note below
OpenBSD 6 gcc 4.2.1 Testing
Cent OS 7 gcc 4.8.5 Testing
Fedora 25 gcc 6.3.1 Testing
OpenSUSE 42.2 gcc 4.8.5 Testing

UNIX-like Systems

The distribution is based on automake, so the traditional configure/make should be sufficient on most systems.

Prerequisites

You need wxWidgets including the headers. Version 3.0 is recommended. Legacy version 2.8 works as well. Version 2.6 is not supported any more.

Example list for wx 3.0 installation on Ubuntu is

The following command can be pasted to the console:
sudo apt-get install libwxbase3.0-0 libwxbase3.0-dev libwxgtk3.0-0 libwxgtk3.0-dev wx3.0-headers wx3.0-i18n libfontconfig1-dev

Other platforms have only 2 or 3 such packages. On Redhat/Fedora the wx packages are called wxGTK and wxGTK-dev.

We recommend Unicode packages if your platform provides Ansi and Unicode versions of the software. If not mentioned, Unicode will most likely be the default.

You can also compile wx from source code, see the wxWidgets Site.

Additional dependencies are

configure

Default installation directory ("prefix") is according to GNU conventions under /usr/local. Data directory would bei /usr/share/maitreya8, the binaries would be located at /usr/local/bin.

If you want to change this, type

./configure --prefix=<directory>

where <directory> could be something like '/usr' or '/opt'.

If the configure script complains about a wrong automake version you can run the autogen.sh script to create the automake stuff from scratch. Automake and aclocal must be installed in that case.

The wx-config script is essential for the platform dependent compiler switches. configure must find it, otherwise the program will not compile. wx-config is searched in various standard directories. If configure doesn't find your wx-config, start configure with the option

--with-wx-config=<name>

The resulting executable (src/gui/maitreya8.bin) will be quite big. You can strip if you don't want debugging informations (strip src/gui/maitreya8.bin).

The font "Saravali.ttf" from the directory "src/fonts" must be installed on your system.

This is done automatically by 'make install' and can be done manually as follows

Debian Linux and Derivatives

On Debian and derivates (Ubuntu, Mint etc.) there are packages for Swiss Ephemeris available.

The binaries and headers are available in the packages libswe0 resp. libswe-dev.

The packages can be used for compilation of Maitreya.

export LIBSWE_CFLAGS=-I/usr/include
export LIBSWE_LIBS="-lswe"
configure --with-swe=system

Data files for the swiss ephemeris are available in the packages

The data files will be installed under /usr/share/ephe. Maitreya will recognize the data files on startup and set the path to the directory automatically, see General Configuration/Ephemeris.

Free BSD

wxGTK must be installed. It can be found in the section x11-toolkits. Unicode version of wxgtk 3.0 is recommended.

The script wx-config is named wxgtk2u-3.0-config. The configure command looks like

./configure --with-wx-config=wxgtk2u-3.0-config
If configure complains about missing fontconfig installation you can set these environment variables and call configure again. See note below (C shell syntax, use export command for bash or ksh).

setenv FONTCONFIG_CFLAGS "-I/usr/include"
setenv FONTCONFIG_LIBS "-lfontconfig"
./configure --with-wx-config=wxgtk2u-3.0-config
make
If font installation with make install does not work you can install it manually instead: copy the font Saravali.ttf from the source directory src/fonts to /usr/local/lib/X11/fonts/TTF and restart the application.

Windows Systems

Visual Studio is not supported any more.

MinGW

The compilation with MinGW is a bit more complicated.

First step: install MinGW. This is straight forward. Read the corresponding MingGW documentation.

Second step: Installation of wxWidgets

Get the source code for wxWidgets from wxWidgets.org. You can fetch either the windows packages (like wx-msw) or the wxAll package. Unpack the source code. Documentation is under doc/msw.

Go to the the root directory of the wxWidgets source code distribution.

Type

./configure --disable-shared --enable-unicode
make
make install

You can also leave the option --disable-shared. You will then get a shared library of wxWidgets. The release will be bigger then.

If everything goes well, you'll have a ready-to-use wxWidgets installation.

You can test your installation by compiling one of the samples (e.g. sample minimal). Just go to the directory, type

make

and start the example.

Third step: Installation of Maitreya

Create a directory for the source code tree, e.g. c:\maitreya. Enter this directory.

Unpack the source code archive

unzip maitreya-<version>.zip (zip file)
or tar jxvf maitreya-<version>.tar.bz2 (bzip2 file) etc.

Type

make -f Makefile.win

Hope that everything's going well.

The executable (src/gui/maitreya.8exe) will be quite big. You can strip if you don't want debugging informations (strip src/gui/maitreya.exe).

Note

You need the MinGW DLL to start the program. So you can either start the program from the MinGW shell or you provide the files (one or more mingw*.dll) on the path.

These files are located in the msys or mingw directory. It's okay to copy them to the place where the executable or Maitreya is located. Probably you can also copy them to the windows directory, try it.

Compilation on Mac OS X

The program compiles and runs on Mac OS X Yosemite or later. GNU gcc and g++ are required (install xcode)

The following steps work on Mac OS X Yosemite with wxWidgets-3.0.3: download wxWidgets source package, unpack it. Create folder for build, change to folder and call configure and make

../configure --disable-shared --with-macosx-version-min=10.6
make
Unpack the maitreya release and call configure and make.

export CC="gcc -mmacosx-version-min=10.6"
export CXX="g++ -mmacosx-version-min=10.6"
./configure --with-wx-config=[path-to-wx-build]/wx-config
make
Calling the script "create_mac_release.sh" will create the release directory and application folder "Maitreya8.app" with required data. It can be started with the "open" command or with mouse click from the Finder.

Create the disk image with

create_mac_release.sh dmg