These instructions can be used either to build X10 from source code checked out of the repository or from an X10 source release obtained from the downloads page. To download the source code for a particular X10 release, visit https://github.com/x10-lang/x10/releases.

Assumptions and Prerequisites

This assumes that JAVA_HOME is set to a Java 8 compatible SDK.

You will also need Ant 1.10.2 or better, as well as g++ 4.4 or better (optionally xlC 11.1 or better), binutils, wget, and GNU make.

Note for Linux users: The X10 build uses the javah task, which is not included in the default ant package. You would need to install ant-nodeps (on RedHat/Gentoo-based systems) or ant-optional (on Debian/SuSE-based systems).

Note for MacOS users: The default Java installation on recent versions of MacOS is not a complete JDK even if it comes with the javac compiler. You must install a proper JDK to build X10 from sources, that is, a Java 8 JDK from Oracle. If JAVA_HOME is not set, the build will use the preferred Java installation as returned by /usr/libexec/java_home.

Note for Windows users: You can build X10 within the cygwin environment. The minimum Cygwin version required to build X10 is 1.7.1, as Cygwin releases prior to 1.7.1 broke the shared library behavior of g++ 4.3.2.  Make sure you have these packages:  gcc, g++, wget, make, binutils, diffutils, libtool, git, patch, time. If you are running a 64-bit build of Windows 10, you can also build X10 using the Windows Subsystem for Linux Ubuntu image.

Getting the source

If you are building from a source code release, simply untar or unzip it.  If not, clone the X10 GitHub repository:

git clone git@github.com:x10-lang/x10.git

Now that you have all the source; build it by doing:

cd x10/x10.dist
ant dist

See section below for arguments you may wish to pass to ant.

Updating and rebuilding

To refresh the code from git, do

cd x10; git pull

After updating your code from git, you probably need to do a fairly complete rebuild.

cd x10/x10.dist
ant squeakyclean dist

Optional arguments to ant

If you want to build a maximally optimized versions of the class libraries, supply the arguments -D NO_CHECKS=true -Doptimize=true  i.e. run

 ant -DNO_CHECKS=true -Doptimize=true squeakyclean dist

NO_CHECKS=true ensures that no constraint type-checks and array bounds checks are performed at run time.
You can also build fairly optimized, but still safe, class libraries by just using -Doptimize=true.

To disable GC, supply the argument -DDISABLE_GC=true. Note that on all platfroms except AIX, GC is enabled by default. GC is not currently supported on AIX.

To build faster, supply -Davailable.procs=n, where n is the number of cores you want to use for the build (default=2).

If you want to use the MPI runtime, supply -DX10RT_MPI=true. For PAMI support, set -DX10RT_PAMI=true. See X10RT Implementations for more details on these.

Example: checkout and compile the entire source code on Windows

  • Install cygwin to directory c:\cygwin,
    with the packages: gcc (all of them), wget, make, binutils, libtool, git, patch.
  • Download Apache Ant to C:\cygwin\home\USERNAME\apache-ant-1.10.5 (version 1.10.5 is current as of this writing, but be sure to use a path that corresponds to the version you downloaded).
  • checkout the source code:
    git clone git@github.com:x10-lang/x10.git C:/cygwin/home/USERNAME/x10
  • Edit the file C:\cygwin\home\USERNAME\.bash_profile
    And add:
    if [ -d "${HOME}/bin" ] ; then
          PATH=${HOME}/bin:${PATH}
    fi
    PATH=${HOME}/apache-ant-1.8.0/bin:${HOME}/x10/x10.dist/bin:${PATH}
    export CYGWIN="nodosfilewarning"
    LC_ALL=C
    LANG=C
       

    Create a bin directory: C:\cygwin\home\USERNAME\bin
    and add a file there called: x10make
    with the content:

       #!/bin/sh
       cd ~
       cd x10
       git pull
       cd x10.dist
       ant squeakyclean dist