# This file is used to maintain libtool version info for libgfortran.
# 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
5:0:0
