def make_file (self, infiles, outfile, func, args,
                   exec_msg=None, skip_msg=None, level=1):
        if exec_msg is None:
            exec_msg = "generating %s from %s" % \
                       (outfile, string.join(infiles, ', '))
        if skip_msg is None:
            skip_msg = "skipping %s (inputs unchanged)" % outfile


        # Allow 'infiles' to be a single string
        if type(infiles) is StringType:
            infiles = (infiles,)
        elif type(infiles) not in (ListType, TupleType):
            raise TypeError, \
                  "'infiles' must be a string, or a list or tuple of strings"

        # If 'outfile' must be regenerated (either because it doesn't
        # exist, is out-of-date, or the 'force' flag is true) then
        # perform the action that presumably regenerates it
        if self.force or dep_util.newer_group (infiles, outfile):
            self.execute(func, args, exec_msg, level)

        # Otherwise, print the "skip" message
        else:
            log.debug(skip_msg)

    # make_file ()

# class Command


# XXX 'install_misc' class not currently used -- it was the base class for
# both 'install_scripts' and 'install_data', but they outgrew it.  It might
# still be useful for 'install_headers', though, so I'm keeping it around
# for the time being.
If no C{message} argument is passed to the L{PageRedirect} constructor
dataset/ETHPy150Open babble/babble/include/jython/Lib/distutils/cmd.py/Command.make_file--crossover with--dataset/ETHPy150Open nlloyd/SubliminalCollaborator/libs/twisted/web/test/test_error.py/PageRedirectTestCase.test_noMessageInvalidStatusLocationExists