#!/usr/bin/env python

import sys, os
from glob import glob

_, srcdir, depfile, output = sys.argv

depfiles = glob(os.path.join(srcdir, '*'))

quoted_depfiles = [x.replace(' ', '\ ') for x in depfiles]

with open(output, 'w') as f:
    f.write('I am the result of globbing.')
with open(depfile, 'w') as f:
    f.write('%s: %s\n' % (output, ' '.join(quoted_depfiles)))
