 setupinfo.py | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/setupinfo.py b/setupinfo.py
index e04c38f..0549eaa 100644
--- a/setupinfo.py
+++ b/setupinfo.py
@@ -93,19 +93,6 @@ def ext_modules(static_include_dirs, static_library_dirs,
         source_extension = ".c"
         print("Building without Cython.")
 
-    lib_versions = get_library_versions()
-    versions_ok = True
-    if lib_versions[0]:
-        print("Using build configuration of libxml2 %s and libxslt %s" %
-              lib_versions)
-        versions_ok = check_min_version(lib_versions[0], (2, 7, 0), 'libxml2')
-    else:
-        print("Using build configuration of libxslt %s" %
-              lib_versions[1])
-    versions_ok |= check_min_version(lib_versions[1], (1, 1, 23), 'libxslt')
-    if not versions_ok:
-        raise RuntimeError("Dependency missing")
-
     base_dir = get_base_dir()
     _include_dirs = _prefer_reldirs(
         base_dir, include_dirs(static_include_dirs) + [INCLUDE_PACKAGE_PATH])
@@ -358,8 +345,9 @@ def get_library_versions():
 
 
 def flags(option):
-    xml2_flags = run_command(find_xml2_config(), "--%s" % option)
-    xslt_flags = run_command(find_xslt_config(), "--%s" % option)
+    pkg_config = os.environ.get('PKG_CONFIG', 'pkg-config')
+    xml2_flags = run_command(pkg_config, 'libxml-2.0', '--%s' % option)
+    xslt_flags = run_command(pkg_config, 'libxslt', '--%s' % option)
 
     flag_list = xml2_flags.split()
     for flag in xslt_flags.split():
