diff --git a/loopy/target/c/c_execution.py b/loopy/target/c/c_execution.py index faef3cb942f8f2e535e6a26a015fb292fd27e075..4f275e0a64b8eed60b9ce270f889d8524efde744 100644 --- a/loopy/target/c/c_execution.py +++ b/loopy/target/c/c_execution.py @@ -195,14 +195,10 @@ class CCompiler(object): :class:`CExecutionWrapperGenerator` """ - source_suffix = 'c' - default_exe = 'gcc' - default_compile_flags = '-std=c99 -g -O3 -fPIC'.split() - default_link_flags = '-shared'.split() - - def __init__(self, cc=default_exe, cflags=default_compile_flags, - ldflags=None, libraries=None, - include_dirs=[], library_dirs=[], defines=[]): + def __init__(self, cc='gcc', cflags='-std=c99 -g -O3'.split(), + ldflags=[], libraries=[], + include_dirs=[], library_dirs=[], defines=[], + source_suffix='c'): # try to get a default toolchain self.toolchain = guess_toolchain() # copy in all differing values @@ -218,6 +214,7 @@ class CCompiler(object): getattr(self.toolchain, k) != v) self.toolchain = self.toolchain.copy(**diff) self.tempdir = tempfile.mkdtemp(prefix="tmp_loopy") + self.source_suffix = source_suffix def _tempname(self, name): """Build temporary filename path in tempdir.""" @@ -245,9 +242,16 @@ class CCompiler(object): class CPlusPlusCompiler(CCompiler): """Subclass of CCompiler to invoke a C++ compiler.""" - source_suffix = 'cpp' - default_exe = 'g++' - default_compile_flags = '-g -O3'.split() + + def __init__(self, cc='g++', cflags='', + ldflags=[], libraries=[], + include_dirs=[], library_dirs=[], defines=[], + source_suffix='cpp'): + + super(CPlusPlusCompiler, self).__init__( + cc=cc, cflags=cflags, ldflags=ldflags, libraries=libraries, + include_dirs=include_dirs, library_dirs=library_dirs, + defines=defines, source_suffix=source_suffix) class CompiledCKernel(object):