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.