# This file is used to maintain libtool version info for libffi.  See
# the libtool manual to understand the meaning of the fields.  This is
# a separate file so that version updates don't involve re-running
# automake.
# CURRENT:REVISION:AGE
7:0:0
