from zc.buildout import UserError
import fnmatch
import os

def post_make_hook(options, buildout):
  location = options['location']
  matches = [os.path.join(root, filename)
    for root, dirnames, filenames in os.walk(location)
    for filename in fnmatch.filter(filenames, 'libperl.a')]
  if not matches:
    raise UserError("ERROR - no libperl.* found!")
  if len(matches) > 1:
    print("WARNING - several libperl.a found, taking only the first one:",
          "\n".join(matches))

  # matches[0] is a prefix of "location"
  # For the symlink, we want the relative path.
  rel_link = os.path.relpath(os.path.dirname(matches[0]), location)
  simlink_location = os.path.join(location, "libs-c")
  if os.path.islink(simlink_location):
    os.unlink(simlink_location)
  os.symlink(rel_link, simlink_location)
  print("Created symlink \"libs-c\" to", rel_link)