SDK Build Environment for Linux Platform - magic-lantern-studio/mle-documentation GitHub Wiki

This page discusses how to build the Magic Lantern SDK for Linux platforms using the C++ implementation.

Table of Contents

Dependencies

The Linux build of the Magic Lantern SDK has the following dependencies:

  1. Ubuntu 22.04 LTS 64-bit operating system.
    • Ubuntu 18.04 LTS 64-bit operating system is no longer supported.
  2. Eclipse IDE for C/C++ Developers (Oxygen Release 4.7.0)
  3. GNU g++ toolchain (sudo apt-get install g++).
  4. Java Ant toolchin
  5. Version 4.0.0 of Coin 3D is built and installed.
    • Instructions assume that the installation directory is ~/bin/Coin3D.
    • Coin3D is an implementation of the SGI Inventor framework. It is required by the Magic Lantern Rehearsal Player.
    • The most recent version can be found at https://github.com/magic-lantern-studio/coin.
    • To build the source, use the instructions on Building Coin.
  6. Version 1.4.0 of SoXt is built and installed.
  7. Version 3.18.0 of FreeImage

[!Note]

Dependency on version 8.6.4.1 of ActiveTcl from ActiveState has been deprecated. Python is now required for mastering Digital Workprints.

Assumptions

These instructions assume the following

  • You already know how to bring up the Ubuntu 22.04 LTS 64-bit host development platform.
  • You already know how to install packages in Ubuntu using the apt-get utility.
  • You already know how to use the Eclipse for C/C++ Development IDE.
  • You already know how to use Git.
  • The Magic Lantern software has been downloaded into the "~/Projects/MagicLantern" directory and the MLE_HOME environment variable is set to "~/Projects/MagicLantern".

Environment Variables

MLE_HOME Environment Variable

Set the variable MLE_HOME to reference the home of the Magic Lantern source. This document assumes that it is set to "$HOME/Projects/MagicLanternStudio".

MLE_ROOT Environment Variable

Set the variable MLE_ROOT to reference the root directory where the Magic Lantern components will be installed. This document assumes that it is set to "/opt/MagicLantern".

MLE_WORKPRINTS Environment Variable

Set the variable MLE_WORKPRINTS to the root directory where Magic Lantern Digital Workprints can be located. This document assumes that it is set to $HOME/Projects/MagicLanternStudio.

The Magic Lantern Studio assumes that the Digital Workprints will be located under the $MLE_WORKPRINTS/workprints directory.

TCL_HOME Environment Variable [Deprecated]

Set the TCL_HOME variable to the installation directory for ActiveTcl. For these instructions, use ~/bin/ActiveTcl-8.6.

COINDIR Environment Variable

Set the COINDIR variable to the installation directory for Coin3D. For these instructions, use ~/bin/Coin3D.

FREEIMAGEDIR Environment Variable

Set the FREEIMAGEDIR variable to the installation directory for FreeImage. For these instructions, use ~/bin/FreeImage/Dist.

Details

To build the Magic Lantern components using the Eclipse C/C++ toolchain, use the following instructions.


Common Build Environment

Start by installing the Common Build Environment for Linux Platform.


Install Eclipse IDE for C/C++ Developers

The Eclipse development toolchain needs to be installed on the Ubuntu host development platform:

  1. tar -xvzf eclipse-inst-jre-linux64.tar.gz -C ~/bin
  2. cd ~/bin/eclipse-installer
  3. ./eclipse-inst
  4. Choose "Eclipse IDE for C/C++ Developers" from the list of choices in eclipseinstaller dialog.
  5. Modify the configuration parameters in the C/C++ IDE installation page (if desired) and select INSTALL.

Install Coin 3D

Coin and SoXt are requirements for building and running the Rehearsal Player on a Linux platform. Instructions for building these dependencies can be found at

Deprecated

Install FreeImage

To install FreeImage, you can do the following:

$ sudo apt install libfreeimage-dev

If you want to build this library from source instead, then follow the instructions on the FreeImage Build Instructions for Linux wiki page.

Note that on Linux, the FREEIMAGEDIR environment variable is not currently being used by the Magic Lantern build system.

Note that FreeImage v3.18.0 is required for Ubuntu 18.04 platform (earlier versions fail to build).


Install log4cxx

The log4cxx library is used by the Digital Workprint library to log debug messages. To install the log4cxx library, use

$ sudo apt-get install liblog4cxx-dev

Add SSH key to Github Account

The Magic Lantern repositories on Github are configured to use SSH. In order to retrieve the source, you will need to generate an SSH key and install the key in your Github user account. Instructions for doing this step may be found at Adding a new SSH key to your Github account

Note that in order to avoid entering your passphrase each time you access a repository, you will want to add the key to your ssh-agent. Instructions for doing this may be found at Generating a new SSH key and adding it to the ssh-agent


Retrieve the Source

Using the Google 'repo' command, retrieve the Magic Lantern source:

$ mkdir Github-MagicLantern
$ cd Github-MagicLantern
$ repo init -u [email protected]:magic-lantern-studio/mle-manifests
$ repo sync

After the source code has been retrieved, it is necessary to stage the $MLE_HOME directory. To do this, links will be created from the MLE_HOME directory to the downloaded source located in Github-MagicLantern. Run the following script in the Github-MagicLantern directory:

$ ./mle-core-env/bin/scripts/stagemle.sh 

Build the Core util Library for Tools

These instructions build the Core util libraries for the Magic Lantern Studio tools using the Eclipse IDE.

  • Eclipse Project: "$MLE_HOME/Core/util/linux/build/.project"

Import the above Eclipse project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above libmlutil project.

In the Eclipse ProjectExplorer, right-click on the libmlutil project and select "Build Project" from the pop-up menu.

[!NOTE] Before building, you may need to first regenerate the autoconf environment. The easiest way to do this is from the command line. In a terminal, change to the project directory (i.e. "cd $MLE_HOME/Core/util/linux/build") and then run "make distclean").

"make maintainer-clean" will clobber just about everything that is auto-generated.

To install the library, right-click on the libmlutil project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

The library components that are built include

Library Directory Location Component
libmlutil.a "$MLE_ROOT/lib" Magic Lantern SDK (Debug)
libmlutil.so "$MLE_ROOT/lib" Magic Lantern SDK (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for util

Use the following instructions to build the libmlutil libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make libmlutil_install

[!NOTE] Use "make libmlutil_clean" to remove all build artifacts.

See Linux Makefile Targets for more information on available build targets.


Build the Core math Libraries

These instructions build the Core math libraries for the Magic Lantern Studio tools, the Magic Lantern SDK for the OpenGL target, and the Magic Lantern Rehearsal Player. The Eclipse IDE development tool is used.

  • Eclipse Project: "$MLE_HOME/Core/math/linux/libmlmath/.project"

Import the above Eclipse project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above libmlmath project.

In the Eclipse ProjectExplorer, right-click on the libmlmath project and select "Build Project" from the pop-up menu.

[!NOTE] Before building, you may need to first regenerate the autoconf environment. The easiest way to do this is from the command line. In a terminal, change to the project directory (i.e. "cd $MLE_HOME/Core/math/linux/libmlmath") and then run "make distclean").

To install the library, right-click on the libmlmath project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

The library components that are built for the Magic Lantern SDK (OpenGL Target Platform) include

Library Directory Location Component
libmlmath.a "$MLE_ROOT/lib/" Magic Lantern SDK (Debug)
libmlmath.so "$MLE_ROOT/lib" Magic Lantern SDK (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for math

Use the following instructions to build the libmlmath libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make libmlmath_install

See Linux Makefile Targets for more information on available build targets.


Build the Digital Workprint Libraries

These instructions build the Digital Workprint libraries for the Magic Lantern Studio tools and Rehearsal Player using the Eclipse IDE.

  • Eclipse Project: "$MLE_HOME/DigitalWorkprint/lib/linux/.project"

Import the above Eclipse project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above libDWP project.

In the Eclipse ProjectExplorer, right-click on the libDWP project and select "Build Project" from the pop-up menu.

[!NOTE] Before building, you may need to first regenerate the autoconf environment. The easiest way to do this is from the command line. In a terminal, change to the project directory (i.e. "cd $MLE_HOME/DigitalWorkprint/lib/linux") and then run "make distclean").

To install the library, right-click on the libDWP project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

The library components that are built for the Magic Lantern SDK (OpenGL Target Platform) include

Library Directory Location Component
libDWP.a "$MLE_ROOT/lib/" Magic Lantern SDK (Debug)
libDWP.so "$MLE_ROOT/lib" Magic Lantern SDK (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

The executable components that are built for the Magic Lantern SDK include

Executable Directory Location Component
DWPChecker.exe "$MLE_ROOT/bin" DWP Validation tool, Magic Lantern Studio (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for DWP

Use the following instructions to build the libDWP libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make libDWP_install

See Linux Makefile Targets for more information on available build targets.


Build the Digital Playprint Libraries

These instructions build the Digital Playprint libraries for the Magic Lantern Studio tools using the Eclipse IDE.

  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/lib/linux/.project"

Import the above Eclipse project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above libDPP project.

In the Eclipse ProjectExplorer, right-click on the libDPP project and select "Build Project" from the pop-up menu.

To install the library, right-click on the libDPP project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

The library components that are built for the Magic Lantern Studio include

Library Directory Location Component
libDPP.a "$MLE_ROOT/lib" Magic Lantern SDK (Debug)
libDPP.so "$MLE_ROOT/lib" Magic Lantern SDK (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for DPP

Use the following instructions to build the libDPP libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make libDPP_install

See Linux Makefile Targets for more information on available build targets.


Build the Digital Playprint Runtime Library for Tools

These instructions explain how to build the Digital Playprint runtime component employed by the Magic Lantern Studio mastering tools using the Eclipse IDE.

  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/runtime/linux/.project"

Import the above Eclipse project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above libplayprint project.

In the Eclipse ProjectExplorer, right-click on the libplayprint project and select "Build Project" from the pop-up menu.

To install the library, right-click on the libplayprint project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

The library components that are built for the Magic Lantern Studio include

Library Directory Location Component
libplayprint.a "$MLE_ROOT/lib" Magic Lantern SDK (Debug)
libplayprint.so "$MLE_ROOT/lib" Magic Lantern SDK (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for playprint

Use the following instructions to build the libplayprint libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make libplayprint_install

See Linux Makefile Targets for more information on available build targets.


Build the Mastering Library and Tools

These instructions explain how to build the Digital Playprint library employed by the Magic Lantern Studio mastering tools. It also explains how to build the mastering tools.

  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/libDPPGen/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/gentables/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/gengroup/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/genscene/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/genmedia/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/genmakefile/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/genppscript/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/gendpp/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/dumpgroup/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/dumpscene/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/dumpmedia/.project"
  • Eclipse Project: "$MLE_HOME/DigitalPlayprint/master/linux/dumpdpp/.project"

Import the above Eclipse projects by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above Eclipse project.

In the Eclipse ProjectExplorer, right-click on the Eclipse project and select "Build Project" from the pop-up menu.

To install the library, right-click on the Eclipse project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

The library components that are built include

Library Directory Location Component
libDPPGen.a "$MLE_ROOT\lib" Magic Lantern Studio Mastering Library (Debug)
libDPPGend.so "$MLE_ROOT\lib" Magic Lantern Studio Mastering Library (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

The executable tools that are built include

Exectuable Directory Location Component
gentables.exe "$MLE_ROOT\bin" Generates the tables (source code) for the title (Debug)
gengroup.exe "$MLE_ROOT\bin" Generates the Group chunks for the DPP (Debug)
genscene.exe "$MLE_ROOT\bin" Generates the Scene chunks for the DPP (Debug)
genmedia.exe "$MLE_ROOT\bin" Generates the MediaRef chunks for the DPP (Debug)
gendppscript.exe "$MLE_ROOT\bin" Generates a TCL script for laying out the DPP (Debug)
gendpp.exe "$MLE_ROOT\bin" Generates a DPP using the TCL script (Debug)
genmakefile.exe "$MLE_ROOT\bin" Generates a Makefile for the title (Debug)
dumpgroup.exe "$MLE_ROOT\bin" Dump the contents of a Group chunk (Debug)
dumpmedia.exe "$MLE_ROOT\bin" Dump the contents of a MediaRef chunk (Debug)
dumpscene.exe "$MLE_ROOT\bin" Dump the contents of a Scene chunk (Debug)
dumpdpp.exe "$MLE_ROOT\bin" Dump the contents of a Digital Playprint (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for mastering

Use the following instructions to build the mastering libraries and tools in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make libDPPGen_install
  3. make gentables_install
  4. make gengroup_install
  5. make genscene_install
  6. make genmedia_install
  7. make genmakefile_install
  8. make genppscript_install
  9. make gendpp_install
  10. make dumpgroup_install
  11. make dumpscene_install
  12. make dumpmedia_install
  13. make dumpdpp_install

See Linux Makefile Targets for more information on available build targets.


Build the Magic Lantern Runtime Engine Libraries

These instructions build the Magic Lantern SDK Runtime Engine libraries for the Inventor and OpenGL platforms using the Eclipse IDE.

  • Eclipse Makefile: "$MLE_HOME/Core/mlert/linux/rehearsal/.project"
  • Eclipse Makefile: "$MLE_HOME/Core/mlert/linux/runtime/.project"
  • Eclipse Makefile: "$MLE_HOME/Core/mlert/linux/inventor/.project"

Import the above Eclipse projects by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above libmlert projects.

Build for the Inventor targets. The Rehearsal Player is an Inventor target utilizing the Coin3D implementation for Inventor. In the Eclipse ProjectExplorer, right-click on the libmlert-rehearsal project and select "Build Project" from the pop-up menu.

To install the library, right-click on the libmlert-rehearsal project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

Build for the OpenGL target. In the Eclipse ProjectExplorer, right-click on the libmlert-runtime project and select "Build Project" from the pop-up menu.

To install the library, right-click on the libmlert-runtime project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

The library components that are built for the Magic Lantern Studio include

Library Directory Location Component
libmlert.a "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern SDK (Debug)
libmlert.so "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern SDK (Debug)
libmlert.a "$MLE_ROOT/lib/mle/inventor" Magic Lantern SDK (Debug)
libmlert.so "$MLE_ROOT/lib/mle/inventor" Magic Lantern SDK (Debug)
libmlert.a "$MLE_ROOT/lib/mle/runtime" Magic Lantern SDK (Debug)
libmlert.so "$MLE_ROOT/lib/mle/runtime" Magic Lantern SDK (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for Runtime Engine

Use the following instructions to build the runtime engine libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make libmlert_install

See Linux Makefile Targets for more information on available build targets.


Build the Magic Lantern SDK Properties Distribution

These instructions discuss how to build the Properties and Digital Workprints for Magic Lantern SDK. The Eclipse project is

  • Eclipse Makefile: "$MLE_HOME/Parts/props/linux/.project"

Build the props Project

Import the above Eclipse props project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the props project and select "Build Project" from the pop-up menu.

This distributes the props header files to "$MLE_ROOT/include/mle" and the props workprint files to "$MLE_ROOT/include/workprints". There are no props related libraries.

Note: the Wizzer Works ISM (Independent Software Module) scripts are no longer used to install the property artifacts.

Batch Build Instructions for properties

Use the following instructions to build the properties libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make props_install

See Linux Makefile Targets for more information on available build targets.


Build the Magic Lantern SDK MediaRefs

These instructions build the Magic Lantern MediaRefs for the Inventor platform. There are three targets for the Inventor components:

  • Eclipse Makefile: "$MLE_HOME/Parts/mediaref/inventor/build/linux/ivmref-rehearsal/.project"
  • Eclipse Makefile: "$MLE_HOME/Parts/mediaref/inventor/build/linux/ivmref-inventor/.project"
  • Eclipse Makefile: "$MLE_HOME/Parts/mediaref/inventor/build/linux/ivmref-runtime/.project"

Build the ivmref-rehearsal Project

Import the above Eclipse ivmref-rehearsal project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivmref-rehearsal project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
Mle3dModelMediaref.a "$MLE_ROOT/lib/mle/rehearsal" 3D Model MediaRef for Inventor target (Debug)
Mle3dModelMediaref.so "$MLE_ROOT/lib/mle/rehearsal" 3D Model MediaRef for Inventor target (Debug)
Mle3dTextureMapMediaref.a "$MLE_ROOT/lib/mle/rehearsal" 3D Texture Map MediaRef for Inventor target (Debug)
Mle3dTextureMapMediaref.so "$MLE_ROOT/lib/mle/rehearsal" 3D Texture Map MediaRef for Inventor target (Debug)
Mle3dColorMapMediaref.a "$MLE_ROOT/lib/mle/rehearsal" 3D Color Map MediaRef for Inventor target (Debug)
Mle3dColorMapMediaref.so "$MLE_ROOT/lib/mle/rehearsal" 3D Color Map MediaRef for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the ivmref-inventor Project

Import the above Eclipse ivmref-inventor project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivmref-inventor project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
Mle3dModelMediaref.a "$MLE_ROOT/lib/mle/inventor" 3D Model MediaRef for Inventor target (Debug)
Mle3dModelMediaref.so "$MLE_ROOT/lib/mle/inventor" 3D Model MediaRef for Inventor target (Debug)
Mle3dTextureMapMediaref.a "$MLE_ROOT/lib/mle/inventor" 3D Texture Map MediaRef for Inventor target (Debug)
Mle3dTextureMapMediaref.so "$MLE_ROOT/lib/mle/inventor" 3D Texture Map MediaRef for Inventor target (Debug)
Mle3dColorMapMediaref.a "$MLE_ROOT/lib/mle/inventor" 3D Color Map MediaRef for Inventor target (Debug)
Mle3dColorMapMediaref.so "$MLE_ROOT/lib/mle/inventor" 3D Color Map MediaRef for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the ivmref-runtime Project

Import the above Eclipse ivmref-runtime project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivmref-runtime project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
Mle3dModelMediaref.a "$MLE_ROOT/lib/mle/runtime" 3D Model MediaRef for Inventor target (Debug)
Mle3dModelMediaref.so "$MLE_ROOT/lib/mle/runtime" 3D Model MediaRef for Inventor target (Debug)
Mle3dTextureMapMediaref.a "$MLE_ROOT/lib/mle/runtime" 3D Texture Map MediaRef for Inventor target (Debug)
Mle3dTextureMapMediaref.so "$MLE_ROOT/lib/mle/runtime" 3D Texture Map MediaRef for Inventor target (Debug)
Mle3dColorMapMediaref.a "$MLE_ROOT/lib/mle/runtime" 3D Color Map MediaRef for Inventor target (Debug)
Mle3dColorMapMediaref.so "$MLE_ROOT/lib/mle/runtime" 3D Color Map MediaRef for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for mediarefs

Use the following instructions to build the mediarefs libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make mediarefs_install

See Linux Makefile Targets for more information on available build targets.


Build the Magic Lantern SDK Roles

These instructions build the Magic Lantern Roles for the Inventor platform. There are three targets for the Inventor components:

  • Eclipse Makefile: "$MLE_HOME/Parts/roles/inventor/build/linux/ivrole-rehearsal/.project"
  • Eclipse Makefile: "$MLE_HOME/Parts/roles/inventor/build/linux/ivrole-inventor/.project"
  • Eclipse Makefile: "$MLE_HOME/Parts/roles/inventor/build/linux/ivrole-runtime/.project"

Build the ivrole-rehearsal Project

Import the above Eclipse ivrole-rehearsal project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivrole-rehearsal project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
libivroles.a "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio SDK (Debug)
libivroles.so "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio SDK (Debug)
MleIv2dRole.a "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio 2D Role for Inventor target (Debug)
MleIv2dRole.so "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio 2D Role for Inventor target (Debug)
MleIv3dRole.a "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio 3D Role for Inventor target (Debug)
MleIv3dRole.so "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio 3D Role for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the ivrole-inventor Project

Import the above Eclipse ivrole-inventor project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivrole-inventor project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
libivroles.a "$MLE_ROOT/lib/mle/inventor" Magic Lantern Studio SDK (Debug)
libivroles.so "$MLE_ROOT/lib/mle/inventor" Magic Lantern Studio SDK (Debug)
MleIv2dRole.a "$MLE_ROOT/lib/mle/inventor" Magic Lantern Studio 2D Role for Inventor target (Debug)
MleIv2dRole.so "$MLE_ROOT/lib/mle/inventor" Magic Lantern Studio 2D Role for Inventor target (Debug)
MleIv3dRole.a "$MLE_ROOT/lib/mle/inventor" Magic Lantern Studio 3D Role for Inventor target (Debug)
MleIv3dRole.so "$MLE_ROOT/lib/mle/inventor" Magic Lantern Studio 3D Role for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the ivrole-runtime Project

Import the above Eclipse ivrole-runtime project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivrole-runtime project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
libivroles.a "$MLE_ROOT/lib/mle/runtime" Magic Lantern Studio SDK (Debug)
libivroles.so "$MLE_ROOT/lib/mle/runtime" Magic Lantern Studio SDK (Debug)
MleIv2dRole.a "$MLE_ROOT/lib/mle/runtime" Magic Lantern Studio 2D Role for Inventor target (Debug)
MleIv2dRole.so "$MLE_ROOT/lib/mle/runtime" Magic Lantern Studio 2D Role for Inventor target (Debug)
MleIv3dRole.a "$MLE_ROOT/lib/mle/runtime" Magic Lantern Studio 3D Role for Inventor target (Debug)
MleIv3dRole.so "$MLE_ROOT/lib/mle/runtime" Magic Lantern Studio 3D Role for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for roles

Use the following instructions to build the roles libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make roles_install

See Linux Makefile Targets for more information on available build targets.


Build the Magic Lantern SDK Sets

These instructions build the Magic Lantern Sets for the Inventor platform. There are three targets for the Inventor targer:

  • Eclipse Makefile: "$MLE_HOME/Parts/sets/inventor/build/ivset-rehearsal/.project"
  • Eclipse Makefile: "$MLE_HOME/Parts/sets/inventor/build/ivset-inventor/.project"
  • Eclipse Makefile: "$MLE_HOME/Parts/sets/inventor/build/ivset-runtime/.project"

Build the ivset-rehearsal Project

Import the above Eclipse ivset-rehearsal project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivset-rehearsal project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
MleIvSet.a "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio Set for Inventor target (Debug)
MleIvSet.so "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio Set for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the ivset-inventor Project

Import the above Eclipse ivset-inventor project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivset-inventor project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
MleIvSet.a "$MLE_ROOT/lib/mle/inventor" Magic Lantern Studio Set for Inventor target (Debug)
MleIvSet.so "$MLE_ROOT/lib/mle/inventor" Magic Lantern Studio Set for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the ivset-runtime Project

Import the above Eclipse ivset-runtime project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivset-runtime project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
MleIvSet.a "$MLE_ROOT/lib/mle/runtime" Magic Lantern Studio Set for Inventor target (Debug)
MleIvSet.so "$MLE_ROOT/lib/mle/runtime" Magic Lantern Studio Set for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for sets

Use the following instructions to build the sets libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make sets_install

See Linux Makefile Targets for more information on available build targets.


Build the Magic Lantern SDK Stages

These instructions build the Magic Lantern Stages for the Inventor platform. There are three targets for the Inventor components:

  • Eclipse Makefile: "$MLE_HOME/Parts/stages/inventor/build/linux/ivstage-rehearsal/.project"
  • Eclipse Makefile: "$MLE_HOME/Parts/stages/inventor/build/linux/ivstage-inventor/.project"
  • Eclipse Makefile: "$MLE_HOME/Parts/stages/inventor/build/linux/ivstage-runtime/.project"

Build the ivstage-rehearsal Project

Import the above Eclipse ivstage-rehearsal project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivstage-rehearsal project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
MleIvtage.a "$MLE_ROOT/lib/mle/rehearsal" Stage for Inventor target (Debug)
MleIvStage.so "$MLE_ROOT/lib/mle/rehearsal" Stage for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the ivstage-inventor Project

Import the above Eclipse ivstage-inventor project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivstage-inventor project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
MleIvtage.a "$MLE_ROOT/lib/mle/inventor" Stage for Inventor target (Debug)
MleIvStage.so "$MLE_ROOT/lib/mle/inventor" Stage for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the ivstage-runtime Project

Import the above Eclipse ivstage-runtime project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivstage-runtime project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
MleIvtage.a "$MLE_ROOT/lib/mle/runtime" Stage for Inventor target (Debug)
MleIvStage.so "$MLE_ROOT/lib/mle/runtime" Stage for Inventor target (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for stages

Use the following instructions to build the stages libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make stages_install

See Linux Makefile Targets for more information on available build targets.


Build the Magic Lantern SDK Actors

These instructions build the Magic Lantern Actors for the Inventor platform. There are three targets for the Inventor components:

  • Eclipse Makefile: "$MLE_HOME/Parts/actors/inventor/build/linux/ivactor-rehearsal/.project"
  • Eclipse Makefile: "$MLE_HOME/Parts/actors/inventor/build/linux/ivactor-inventor/.project"
  • Eclipse Makefile: "$MLE_HOME/Parts/actors/inventor/build/linux/ivactor-runtime/.project"

Build the ivactor-rehearsal Project

Import the above Eclipse ivactor-rehearsal project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivactor-rehearsal project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
MleEscapeActor.a "$MLE_ROOT/lib/mle/rehearsal" Escape Key Actor (Debug)
MleEscapeActor.so "$MLE_ROOT/lib/mle/rehearsal" Escape Key Actor (Debug)
Mle3dCameraActor.a "$MLE_ROOT/lib/mle/rehearsal" 3D Camera Actor (Debug)
Mle3dCameraActor.so "$MLE_ROOT/lib/mle/rehearsal" 3D Camera Actor (Debug)
Mle2dImageActor.a "$MLE_ROOT/lib/mle/rehearsal" Image Actor(Debug)
Mle2dImageActor.so "$MLE_ROOT/lib/mle/rehearsal" Image Actor (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the ivactor-inventor Project

Import the above Eclipse ivactor-inventor project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivactor-inventor project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
MleEscapeActor.a "$MLE_ROOT/lib/mle/inventor" Escape Key Actor (Debug)
MleEscapeActor.so "$MLE_ROOT/lib/mle/inventor" Escape Key Actor (Debug)
Mle3dCameraActor.a "$MLE_ROOT/lib/mle/inventor" 3D Camera Actor (Debug)
Mle3dCameraActor.so "$MLE_ROOT/lib/mle/inventor" 3D Camera Actor (Debug)
Mle2dImageActor.a "$MLE_ROOT/lib/mle/inventor" Image Actor(Debug)
Mle2dImageActor.so "$MLE_ROOT/lib/mle/inventor" Image Actor (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the ivactor-runtime Project

Import the above Eclipse ivactor-runtime project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above linux project.

In the Eclipse ProjectExplorer, right-click on the ivactor-runtime project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
MleEscapeActor.a "$MLE_ROOT/lib/mle/runtime" Escape Key Actor (Debug)
MleEscapeActor.so "$MLE_ROOT/lib/mle/runtime" Escape Key Actor (Debug)
Mle3dCameraActor.a "$MLE_ROOT/lib/mle/runtime" 3D Camera Actor (Debug)
Mle3dCameraActor.so "$MLE_ROOT/lib/mle/runtime" 3D Camera Actor (Debug)
Mle2dImageActor.a "$MLE_ROOT/lib/mle/runtime" Image Actor(Debug)
Mle2dImageActor.so "$MLE_ROOT/lib/mle/runtime" Image Actor (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for actors

Use the following instructions to build the actors libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make actors_install

See Linux Makefile Targets for more information on available build targets.


Build the Magic Lantern Authoring Toolkit

These instructions build the Magic Lantern Studio Authoring Toolkit, ATK, for the Inventor platform.

  • Eclipse Makefile: "$MLE_HOME/ATK/linux/rehearsal/.project"

Import the above Eclipse project by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above rehearsal project.

In the Eclipse ProjectExplorer, right-click on the libmleatk project and select "Build Project" from the pop-up menu.

The library components that are built include

Library Directory Location Component
libmleatk.a "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio ATK (Debug)
libmleatk.so "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio ATK (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for ATK

Use the following instructions to build the ATK libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make libmleatk_install

See Linux Makefile Targets for more information on available build targets.


Build the Magic Lantern Loader Libraries

These instructions build the Magic Lantern SDK loader libraries for the Rehearsal, Runtime and Inventor platforms using the Eclipse IDE.

  • Eclipse Makefile: "$MLE_HOME/Loaders/rehearsal/.project"
  • Eclipse Makefile: "$MLE_HOME/Loaders/runtime/.project"
  • Eclipse Makefile: "$MLE_HOME/Loaders/inventor/.project"

Import the above Eclipse projects by selecting "File->Import...". This will bring up a Import dialog where you can choose "Existing Projects into Workspace" under the "General" tree item. Select "Next>" button to continue and browse to the above libmlloaders projects.

Build the libmlloaders_rehearsal Project

Build for the Rehearsal targets. The Rehearsal Player is an Inventor target utilizing the Coin3D implementation for Inventor. In the Eclipse ProjectExplorer, right-click on the libmlloaders-rehearsal project and select "Build Project" from the pop-up menu.

To install the library, right-click on the libmlloaders-rehearsal project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

The library components that are built include

Library Directory Location Component
libmlloaders.a "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio Loaders (Debug)
libmlloaders.so "$MLE_ROOT/lib/mle/rehearsal" Magic Lantern Studio Loaders (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the libmlloaders-runtime Project

Build for the Runtime targets. In the Eclipse ProjectExplorer, right-click on the libmlloaders-runtime project and select "Build Project" from the pop-up menu.

To install the library, right-click on the libmlloaders-runtime project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

The library components that are built include

Library Directory Location Component
libmlloaders.a "$MLE_ROOT/lib/mle/runtime" Magic Lantern Studio Loaders (Debug)
libmlloaders.so "$MLE_ROOT/lib/mle/runtime" Magic Lantern Studio Loaders (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the libmlloaders-inventor Project

Build for the Runtime targets. In the Eclipse ProjectExplorer, right-click on the libmlloaders-inventor project and select "Build Project" from the pop-up menu.

To install the library, right-click on the libmlloaders-inventor project and select "Make Targets->Build..." from the pop-up menu. This will bring up a dialog panel showing the possible Make Targets for this project. Select "install" from Target list and then complete the action by selecting the "Build" button.

The library components that are built include

Library Directory Location Component
libmlloaders.a "$MLE_ROOT/lib/mle/inventor" Magic Lantern Studio Loaders (Debug)
libmlloaders.so "$MLE_ROOT/lib/mle/inventor" Magic Lantern Studio Loaders (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Batch Build Instructions for Loaders

Use the following instructions to build the loader libraries in batch mode (without Eclipse):

  1. cd $MLE_HOME/build/linux
  2. make libmlloaders_install

See Linux Makefile Targets for more information on available build targets.


Unit Testing

Magic Lantern uses the Google Test framework to perform unit testing. For more information on setting up Google Test and executing test cases developed for Magic Lantern, please go to

Unit Testing for Linux Platform


Rehearsal Player

The Magic Lantern Rehearsal Player is based on Open Inventor as implemented by the Coin3D and the SoXt libraries. The above instructions support the SDK for the Open Inventor target. More details for building the Rehearsal Player can be found at

Rehearsal Player Build Environment for Linux Platform