2.6 Compiling from UNIX source

To compile and install a UNIX executable from the source release asymptote-x.xx.src.tgz in the subdirectory x.xx under

https://sourceforge.net/projects/asymptote/files/

execute the commands:

gunzip asymptote-x.xx.src.tgz
tar -xf asymptote-x.xx.src.tar
cd asymptote-x.xx

By default the system version of the Boehm garbage collector will be used; if it is old we recommend first putting https://github.com/ivmai/bdwgc/releases/download/v8.0.4/gc-8.0.4.tar.gz https://www.ivmaisoft.com/_bin/atomic_ops/libatomic_ops-7.6.10.tar.gz in the Asymptote source directory.

On UNIX platforms (other than MacOS X), we recommend using version 3.2.1 of the freeglut library. To compile freeglut, download

https://prdownloads.sourceforge.net/freeglut/freeglut-3.2.1.tar.gz

and type (as the root user):

gunzip freeglut-3.2.1.tar.gz
tar -xf freeglut-3.2.1.tar
cd freeglut-3.2.1
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS=-fcommon .
make
make install

Then compile Asymptote with the commands

./configure
make all
make install

Be sure to use GNU make (on non-GNU systems this command may be called gmake). To build the documentation, you may need to install the texinfo-tex package. If you get errors from a broken texinfo or pdftex installation, simply put

https://asymptote.sourceforge.io/asymptote.pdf

in the directory doc and repeat the command make all.

For a (default) system-wide installation, the last command should be done as the root user. To install without root privileges, change the ./configure command to

./configure --prefix=$HOME/asymptote

One can disable use of the Boehm garbage collector by configuring with ./configure --disable-gc. For a list of other configuration options, say ./configure --help. For example, under MacOS X, one can tell configure to use the clang compilers and look for header files and libraries in nonstandard locations:

./configure CC=clang CXX=clang++ CPPFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib

If you are compiling Asymptote with gcc, you will need a relatively recent version (e.g. 3.4.4 or later). For full interactive functionality, you will need version 4.3 or later of the GNU readline library. The file gcc3.3.2curses.patch in the patches directory can be used to patch the broken curses.h header file (or a local copy thereof in the current directory) on some AIX and IRIX systems.

The FFTW library is only required if you want Asymptote to be able to take Fourier transforms of data (say, to compute an audio power spectrum). The GSL library is only required if you require the special functions that it supports.

If you don’t want to install Asymptote system wide, just make sure the compiled binary asy and GUI script xasy are in your path and set the configuration variable dir to point to the directory base (in the top level directory of the Asymptote source code).