# libmpc.la - a libtool library file
# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1.1
#
# Please DO NOT delete this file!
# It is necessary for linking the library.

# The name that we can dlopen(3).
dlname=''

# Names of this library.
library_names=''

# The name of the static archive.
old_library='libmpc.a'

# Linker flags that can not go in dependency_libs.
inherited_linker_flags=''

# Libraries that this one depends upon.
dependency_libs=' -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib /usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib/libmpfr.la /usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib/libgmp.la -lm'

# Names of additional weak libraries provided by this library
weak_library_names=''

# Version information for libmpc.
current=3
age=0
revision=0

# Is this an already installed library?
installed=yes

# Should we warn about portability when linking against -modules?
shouldnotlink=no

# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''

# Directory that this library needs to be installed in:
libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib'
