The source code of bison 2.7 was downloaded from http://ftp.gnu.org/gnu/bison/. To build it with the Android build system, we added 2 subdirectories darwin-lib and linux-lib, as well as an Android.mk. We used the following steps to generate the Android.mk: 1) On a Mac OS X machine, run ./configure and make, you'll get a list of generated header files from the log. Copy them to darwin-lib; You can also get a list of source files from the log. Add them to LOCAL_SRC_FILES in the Android.mk. 2) Do the same thing on a Linux machine. 3) Comment out the PKGINCLUDEDIR line in darwin-lib/configmake.h and linux-lib/configmake.h, because we'll pass in the macro from the build system. 4) Define libbison and bison in the Android.mk.