GDL (GNU Data Language) is a free/libre open-source program that runs most IDL code. Specifically, GDL claims to be completely IDL 7.x compatible, and has many features from IDL 8. GDL is actively developed on GitHub. GDL is easily installed by:
apt install gnudatalanguage
brew install gnudatalanguage
- Windows: get the latest build from AppVeyor artifact or release
If you choose to compile GDL from source on Linux:
apt install libbz2-dev libplplot-dev libfontconfig1-dev libncurses5-dev libreadline-dev libgsl0-dev libwxgtk3.0-dev libmagick++-dev libnetcdf-dev libhdf4-alt-dev libgraphicsmagick++1-dev libhdf5-serial-dev libfftw3-dev python3-dev libeigen3-dev pslib-dev libqhull-dev
Download GDL source and extract
tar xf gdl-*.gz cd gdl-*
Compile GDL Gnu Data Language program.
If Anaconda Python is present,
conda deactivate first to avoid library problems when building GDL.
cmake -DEIGEN3=OFF -DHDF=OFF -DPSLIB=OFF -DENABLE_DYNDRIVERS=OFF -DCMAKE_BUILD_TYPE=Release -B build --install-prefix ~/.local cmake --build build --parallel
(optional) Check the install. You will see several plots appearing and disappearing automatically during this test, which takes a few minutes. With GDL 0.9.8:
cmake --build build --target check
The following tests FAILED: 93 - test_fft_leak.pro (Failed) 96 - test_file_delete.pro (Failed) 103 - test_fix.pro (Failed) 106 - test_formats.pro (Failed) 114 - test_hdf5.pro (Failed) 123 - test_la_least_squares.pro (Failed) 129 - test_make_dll.pro (Failed) 140 - test_n_tags.pro (Failed) 142 - test_obj_isa.pro (Failed) 144 - test_parse_url.pro (Failed) 166 - test_resolve_routine.pro (Failed) 168 - test_rounding.pro (Failed) 190 - test_total.pro (Failed)
Install (do not use sudo).
cmake --install build
Do not build on an ExFAT / FAT32 drive, as the build will fail since symbolic links are not allowed on ExFAT / FAT32.
If cmake reports
libeigen being too old, read below to the optional LibEigen3 section, or use
If you wish to use your Linux repo’s older version of IDL, just use
/usr/local/bin/gdl or similar, or rename
~/.local/bin/gdl0.98 or similar.
- Errors on runtime search path conflicts: temporarily comment out those paths in
~/.bashrc(typically from Anaconda Python, libreadline, libhistory, libz, libjpeg.so)
libeigenbeing too old: get a newer libeigen by downloading libeigen and extract to
~/libeigen. Then, recompile GDL including the configure option:
If you’re having problems with LZMA errors, you can try disabling HDF5 by adding option
cmake -DHDF5=OFF ..
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* cmake -B build --install-prefix ~/libeigen cmake --build build --parallel cmake --install build
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