# -*- mode: ruby -*-
# vi: set ft=ruby :

$script = <<SCRIPT
rm /home/vagrant/postinstall.sh

cat - > /home/vagrant/.bash_aliases <<"EOF"
export JULIA_VAGRANT_BUILD=1
BUILDOPTS="LLVM_CONFIG=llvm-config-3.3 USE_BLAS64=0"
for lib in LLVM ZLIB SUITESPARSE ARPACK BLAS FFTW LAPACK GMP MPFR PCRE LIBUNWIND READLINE GRISU OPENLIBM RMATH; do
    export BUILDOPTS="$BUILDOPTS USE_SYSTEM_$lib=1"
done

alias jlmake="make $BUILDOPTS"
EOF

apt-get update -qq -y
apt-get install python-software-properties -y
add-apt-repository ppa:staticfloat/julia-deps -y
apt-get update -qq -y
apt-get install g++ git make patchelf gfortran llvm-3.3 libsuitesparse-dev libncurses5-dev libopenblas-dev liblapack-dev libarpack2-dev libfftw3-dev libgmp-dev libpcre3-dev libunwind7-dev libreadline-dev libdouble-conversion-dev libopenlibm-dev librmath-dev libuv-julia-dev libmpfr-dev -y
SCRIPT

Vagrant.configure("2") do |config|
  # All Vagrant configuration is done here. The most common configuration
  # options are documented and commented below. For a complete reference,
  # please see the online documentation at vagrantup.com.

  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "precise64"

  # The url from where the 'config.vm.box' box will be fetched if it
  # doesn't already exist on the user's system.
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  config.vm.synced_folder "../..", "/home/vagrant/julia"

  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  # config.vm.provider :virtualbox do |vb|
  #   # Don't boot with headless mode
  #   vb.gui = true
  #
  #   # Use VBoxManage to customize the VM. For example to change memory:
  #   vb.customize ["modifyvm", :id, "--memory", "1024"]
  # end
  #
  # View the documentation for the provider you're using for more
  # information on available options.

  config.vm.provision :shell, :inline => $script
end
