# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.

import string

makefileTemplate = """# THIS FILE IS AUTOGENERATED BY ${caller} - DO NOT EDIT

DEPTH = @DEPTH@

topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
relativesrcdir = @relativesrcdir@

DIRS = \\
${dirs}

include $$(DEPTH)/config/autoconf.mk
"""

filesTemplate = """
MOCHITEST_FILES := \\
${files}

include $$(topsrcdir)/config/rules.mk
"""

def makefileString(entries):
  if not len(entries):
    return "  $(NULL)"
  return "\n".join(["  %s \\" % (entry, ) for entry in entries]) + "\n  $(NULL)"

def substMakefile(caller, path, subdirs, files):
  result = string.Template(makefileTemplate).substitute({
    "caller": caller,
    "dirs": makefileString(subdirs)
  })

  if files:
    result += string.Template(filesTemplate).substitute({
      "files": makefileString(files)
    })

  return result
