parameters: (self, sources, output_dir=None, macros=None,
                  include_dirs=None, debug=0, extra_preargs=None,
                  extra_postargs=None, depends=None)
return_statement: return objects
docstring: Compile one or more source files.
  
          'sources' must be a list of filenames, most likely C/C++
          files, but in reality anything that can be handled by a
          particular compiler and compiler class (eg. MSVCCompiler can
          handle resource files in 'sources').  Return a list of object
          filenames, one per source filename in 'sources'.  Depending on
          the implementation, not all source files will necessarily be
          compiled, but all corresponding object filenames will be
          returned.
  
          If 'output_dir' is given, object files will be put under it, while
          retaining their original path component.  That is, "foo/bar.c"
          normally compiles to "foo/bar.o" (for a Unix implementation); if
          'output_dir' is "build", then it would compile to
          "build/foo/bar.o".
  
          'macros', if given, must be a list of macro definitions.  A macro
          definition is either a (name, value) 2-tuple or a (name,) 1-tuple.
          The former defines a macro; if the value is None, the macro is
          defined without an explicit value.  The 1-tuple case undefines a
          macro.  Later definitions/redefinitions/ undefinitions take
          precedence.
  
          'include_dirs', if given, must be a list of strings, the
          directories to add to the default include file search path for this
          compilation only.
  
          'debug' is a boolean; if true, the compiler will be instructed to
          output debug symbols in (or alongside) the object file(s).
  
          'extra_preargs' and 'extra_postargs' are implementation- dependent.
          On platforms that have the notion of a command-line (e.g. Unix,
          DOS/Windows), they are most likely lists of strings: extra
          command-line arguments to prepand/append to the compiler command
          line.  On other platforms, consult the implementation class
          documentation.  In any event, they are intended as an escape hatch
          for those occasions when the abstract compiler framework doesn't
          cut the mustard.
  
          'depends', if given, is a list of filenames that all targets
          depend on.  If a source file is older than any file in
          depends, then the source file will be recompiled.  This
          supports dependency tracking, but only at a coarse
          granularity.
  
          Raises CompileError on failure.
docstring_summary: Compile one or more source files.
docstring_tokens: Compile one or more source files .
function: def compile(self, sources, output_dir=None, macros=None,
                  include_dirs=None, debug=0, extra_preargs=None,
                  extra_postargs=None, depends=None):
          """Compile one or more source files.
  
          'sources' must be a list of filenames, most likely C/C++
          files, but in reality anything that can be handled by a
          particular compiler and compiler class (eg. MSVCCompiler can
          handle resource files in 'sources').  Return a list of object
          filenames, one per source filename in 'sources'.  Depending on
          the implementation, not all source files will necessarily be
          compiled, but all corresponding object filenames will be
          returned.
  
          If 'output_dir' is given, object files will be put under it, while
          retaining their original path component.  That is, "foo/bar.c"
          normally compiles to "foo/bar.o" (for a Unix implementation); if
          'output_dir' is "build", then it would compile to
          "build/foo/bar.o".
  
          'macros', if given, must be a list of macro definitions.  A macro
          definition is either a (name, value) 2-tuple or a (name,) 1-tuple.
          The former defines a macro; if the value is None, the macro is
          defined without an explicit value.  The 1-tuple case undefines a
          macro.  Later definitions/redefinitions/ undefinitions take
          precedence.
  
          'include_dirs', if given, must be a list of strings, the
          directories to add to the default include file search path for this
          compilation only.
  
          'debug' is a boolean; if true, the compiler will be instructed to
          output debug symbols in (or alongside) the object file(s).
  
          'extra_preargs' and 'extra_postargs' are implementation- dependent.
          On platforms that have the notion of a command-line (e.g. Unix,
          DOS/Windows), they are most likely lists of strings: extra
          command-line arguments to prepand/append to the compiler command
          line.  On other platforms, consult the implementation class
          documentation.  In any event, they are intended as an escape hatch
          for those occasions when the abstract compiler framework doesn't
          cut the mustard.
  
          'depends', if given, is a list of filenames that all targets
          depend on.  If a source file is older than any file in
          depends, then the source file will be recompiled.  This
          supports dependency tracking, but only at a coarse
          granularity.
  
          Raises CompileError on failure.
          """
          # A concrete compiler class can either override this method
          # entirely or implement _compile().
  
          macros, objects, extra_postargs, pp_opts, build = \
                  self._setup_compile(output_dir, macros, include_dirs, sources,
                                      depends, extra_postargs)
          cc_args = self._get_cc_args(pp_opts, debug, extra_preargs)
  
          for obj in objects:
              try:
                  src, ext = build[obj]
              except KeyError:
                  continue
              self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
  
          # Return *all* object filenames, not just the ones we just built.
          return objects
function_tokens: def compile ( self , sources , output_dir = None , macros = None , include_dirs = None , debug = 0 , extra_preargs = None , extra_postargs = None , depends = None ) : # A concrete compiler class can either override this method # entirely or implement _compile(). macros , objects , extra_postargs , pp_opts , build = self . _setup_compile ( output_dir , macros , include_dirs , sources , depends , extra_postargs ) cc_args = self . _get_cc_args ( pp_opts , debug , extra_preargs ) for obj in objects : try : src , ext = build [ obj ] except KeyError : continue self . _compile ( obj , src , ext , cc_args , extra_postargs , pp_opts ) # Return *all* object filenames, not just the ones we just built. return objects