xindy consists of (1) a run time engine, made up of a Common Lisp system with xindy-specific plugins, (2) Common Lisp code that makes up the xindy kernel, and (3) xindy modules.
To create the xindy run time engine, one needs to integrate the plugins into a Common Lisp system. We did this for CLISP, the result is in the binary distributions or in the platform-specific archives of older releases.
Then, the xindy kernel source code is compiled, and a final executable is created. In the case of CLISP, the executable consists of two files, a virtual machine and a memory image.