# liblto_plugin.la - a libtool library file
# Generated by libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a
#
# Please DO NOT delete this file!
# It is necessary for linking the library.

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

# Names of this library.
library_names='liblto_plugin.so.0.0.0 liblto_plugin.so.0 liblto_plugin.so'

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

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

# Libraries that this one depends upon.
dependency_libs=' -L/usr/local/google/home/jnewlin/src/uclibc/buildroot/output/host/lib -L/usr/local/google/home/jnewlin/src/uclibc/buildroot/output/host/usr/lib'

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

# Version information for liblto_plugin.
current=0
age=0
revision=0

# Is this an already installed library?
installed=yes

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

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

# Directory that this library needs to be installed in:
libdir='/usr/local/google/home/jnewlin/src/uclibc/buildroot/output/host/usr/libexec/gcc/mipsel-buildroot-linux-uclibc/4.9.1'
