SCons is terrible. seriously, stop using it. for us package maintainers that get to suffer at upstream's stupidity, these code snippets should help (stolen from some KDE code): import os import SCons.Util if os.environ.has_key('CC'): env['CC'] = os.environ['CC'] if os.environ.has_key('CFLAGS'): env['CCFLAGS'] += SCons.Util.CLVar(os.environ['CFLAGS']) if os.environ.has_key('CXX'): env['CXX'] = os.environ['CXX'] if os.environ.has_key('CXXFLAGS'): env['CXXFLAGS'] += SCons.Util.CLVar(os.environ['CXXFLAGS']) if os.environ.has_key('CPPFLAGS'): env['CCFLAGS'] += SCons.Util.CLVar(os.environ['CPPFLAGS']) if os.environ.has_key('LDFLAGS'): env['LINKFLAGS'] += SCons.Util.CLVar(os.environ['LDFLAGS'])