Well, xindy is built on top of a (not particularly portable) Lisp
system. (The files it dumps aren't even portable across machines that
are running Solaris 2 - a dump file made on a Sparc 5 is rejected by
an UltraSparc.)
To make it portable you need to change the code so that it works under
a portable Lisp. Is there a Lisp system that works (almost)
identically under Unix, DOS, Windows, Mac, etc. etc.? The answer is
yes; its name is Emacs.