ClamShell Virtual Cross Compiler Environment
Date: February 5th, 2016
Documentation in progress.
Table of contents
The ClamShell Virtual Cross Compiler Environment, VCCE, is a Linux 14.04 Virtual Machine, VM, for VirtualBox. Developers do not have to be experts in Linux, just know some basic commands, as VirtualBox can be configured to share the Host Operating System's installation of XPlane. This allows plugin development on the Host machine and developers only need to provide their favorite source code editor, such as Eclipse,NotePad++ or Code Blocks etc...
ClamShell VCCE supports compiling for the below targets.
- Windows 32bit
- Windows 64bit
- Linux 64bit
- Linux 32bit - Only under ClamShell v1.x
To build with ClamShell, the ClamShell VM must be running and the local console window open.
1.1. Recommended Reading
If you are not a Linux user but want to learn more, below are a few references to get you started:
- Linux Bible" by Christopher Negus.
- The Linux Command Line: A Complete Introduction by William E. Shotts Jr.
- A Practical Guide to Linux Commands, Editors, and Shell Programming by Mark G. Sobell
1.2. Logging in
Since ClamShell is a Linux VM it is necessary to login.
The default login account:
User ID : 'user'
Password : 'password'
Most modern operating systems, OS, require the user to shutdown or stop the OS before powering down and Linux is no exception. This is to ensure critical data has finished writing to the hard disks. However for ClamShell this isn't very necessary since it is only a minimal install with very little services running and compiling is occurring on the Host's file system. So not stopping the VM should be fine. But lets not take any changes, our precious source code is at stake so to shut down ClamShell type:
sudo shutdown -h now
You will be prompted for a password and this is the same password that was used for login.
Using Clamshell is made to be easy, especially for developers not familiar with Linux, however some very basic knowledge is required.
2.1. Basics commands
If you are coming from a Windows environment and are familiar with the Shell Prompt there are two major items that are different. One, folder and file names are separated using the forward slash, '/', and everything typed is case sensitive. See the section called "Recommended Reading" for more information on using the Linux command line shell.
Since ClamShell is based from Ubuntu Linux there is no root user. Root user is equivalent to admin or the super user, basically God privileges. Some commands require 'root' privileges and this can be achieved by placing the command 'sudo' in front of the command. You will be prompted with a password whch is the same password that was used to log in with but you may not asked everytime for a passowrd. For the purpose of this guide there is only one command that requires 'sudo' and that is the shutdown command.
- The command for change directory is 'cd'
- To list a directory type 'ls'
- To build and package plugins see the Make System in the Programmers Guide.
3. Remote Development
Remote development is possible with the Clamshell VM, this provides the developer the ability for his or her IDE to execute the make commands vs having to have the ClamShell local console window open and type the make commands manually.
Setting up Remote Development Tools, RDT, is outside the scope of this guide as every IDE is different and may or may not support this feature. However to allow for RDT, ClamShell includes a SSH server which is enabled by default, however a change is required in the VirtualBox setup.
What is required is to take the ClamShell VM and set it's network interface to Bridge Mode. This will make the VM appear as if it is another machine on your network and if you have a Router the VM will be assigned a dynamic IP address.
Follow the below steps:
Before you start, ensure the ClamShell VM is not running.
Step 1: Select the ClamShell VM and select Settings.
Step 2: Select "Network" on the left and change the setting "Attached to" from NAT to "Bridged Adpater".
Click the "Okay button when done.
Step 3: Start ClamShell and login
Step 4: To find out the VM's IP address type 'ifconfig'.
The IP address will be listed with interface 'eth0'.
Example: In the above image it is 192.168.12.107
4. Building for Linux 32Bit
Linux 32bit is not supported in the latest version of ClamShell however Wingman provides 32bit libraries and the build systems supports building 32bit Linux plugins.
The reason for ClamShell not supporting 32bit Linux builds is due to a issue with having both 64 and 32 bit packages of freeglut3-dev and udev-dev in the same Linux system.
If you need to build Linux 32bit plugin then simply download a version 1.x.x of ClamShell-VCCE and configure it the same way as the latest version. Open VirtualBox and start ClamShell-VCCE V1.x.x and then log in and then change directories to your plugins source code then type:
5. Setup Ubuntu 14.04 Desktop
If you are already running an Ubuntu 14.04 64bit system and prefer not to use ClamShell then simply install the below packages.
You may need to add all users to the vboxsf group who will be compiling plugins , but only if your 14.04 64bit system is running under VirtualBox.
sudo usermod -a -G vboxsf
Once the above packages and steps are completed the Wingman Make System will work as described in the Programmers Guide.