I got the crazy notion to try to compile a native vim binary for android, and one of its dependencies is libncurses.
Make sure you have the ndk installed and working.
You'll need the agcc wrapper, a perl script that creates appropriate command line arguments for arm-eabi-gcc. I learned today that the order of arguments to gcc can be quite significant while linking. I kept getting errors about the "__aeabi_unwind_cpp_pr0" symbol and common functions like printf not being found when it tried to link.
So I hacked Vlad's hacked agcc to make sure that libgcc.a and libc.a get put at the end of the command line, which seems to be necessary for static linking. Here's my hacked version of Vlad's agcc.
Make sure both agcc and arm-eabi-gcc are in your path.
CC=agcc.pl ./configure --host=arm-eabi --without-cxx-binding
When I tried to build, I got errors saying "'struct lconv' has no member named 'decimal_point'"", because android has a broken locale implementation.
So I commented out the HAVE_LOCALE_H line from include/ncurses_cfg.h. (Is there a better way to force configure to set a value like that during the ./configure process?)
It might be possible to build ncurses with the C++ binding, but I didn't try.
Once I had all that fixed, the make ran just fine, and I ended up with lib/libncurses.a.