4.9. Variant builds

The Link method may be used in conjunction with multiple construction environments to support variant builds. The following SConstruct and SConscript files would build separate debug and production versions of the same program side-by-side:

	% cat SConstruct
	env = Environment()
	env.Link('build/debug', 'src')
	env.Link('build/production', 'src')
	flags = '-g'
	SConscript('build/debug/SConscript', Export(env))
	flags = '-O'
	SConscript('build/production/SConscript', Export(env))
	% cat src/SConscript
	env = Environment(CCFLAGS = flags)
	env.Program('hello', 'hello.c')
	

The following example would build the appropriate program for the current compilation platform, without having to clean any directories of object or executable files for other architectures:

	% cat SConstruct
	build_platform = os.path.join('build', sys.platform)
	Link(build_platform, 'src')
	SConscript(os.path.join(build_platform, 'SConscript'))
	% cat src/SConscript
	env = Environment
	env.Program('hello', 'hello.c')