Compiling GDL (gnudatalanguage)

GDL (GNU Data Language) allows running most IDL code for free. You can install GDL via

apt install gnudatalanguage

or if you want the latest version, you can compile GDL as follows.

  1. Prereqs

     apt install libbz2-dev libplplot-dev libfontconfig1-dev libplplot-dev libncurses5-dev libreadline-dev libgsl0-dev libwxgtk2.8-dev libmagick++-dev libnetcdf-dev libhdf4-alt-dev libgraphicsmagick++1-dev libhdf5-serial-dev libfftw3-dev python-dev libeigen3-dev pslib-dev libqhull-dev
    
  2. Download GDL source and extract

    tar xf gdl-*.tgz
    
    cd gdl-*
    
  3. Compile GDL Gnu Data Language program

    mkdir release
    
    cd release
    
    cmake -DENABLE_DYNDRIVERS=OFF ..
    make -j4
    make check
    make install
    

If cmake reports libeigen being too old, read below to the optional LibEigen3 section.

Notes

  • Errors on runtime search path conflicts: temporarily comment out those paths in ~/.bashrc (typically from Anaconda Python, libreadline, libhistory, libz, libjpeg.so)
  • cmake error about libeigen being too old: get a newer libeigen by downloading libeigen and extract to ~/libeigen. Then, recompile GDL with
    cmake -DENABLE_DYNDRIVERS=OFF -DEIGEN3DIR=$HOME/libeigen
    make -j4
    make check
    make install
    

OR you can compile as in the section below

Basic GDL Compilation

If you’re having problems with LZMA errors, you can try disabling HDF5 by

cmake -DENABLE_DYNDRIVERS=OFF -DHDF5=OFF ..

LibEigen (optional)

When compiling GDL, you may need a libeigen3 newer than your operating system supports – feel free to download a newer version of libeigen3 and compile:

apt install gfortran libsuperlu3-dev libmetis-dev libscotch-dev libmpfr-dev libadolc-dev qt4-qmake

cd /tmp

tar xf 3.*.tar.bz2

cd eigen* && mkdir release && cd release

cmake ..

make install

GDL missing libraries fix

ln -s /usr/lib/x86_64-linux-gnu/libgsl.so.19 /usr/local/lib/libgsl.so.0

ln -s /usr/lib/libGraphicsMagick++-Q16.so.12 /usr/local/lib/libGraphicsMagick++.so.3

Leave a Comment