if default_platform in ('linux', 'freebsd', 'darwin'):
default_dri = 'yes'
-elif default_platform in ('winddk',):
+elif default_platform in ('winddk', 'windows', 'wince'):
default_dri = 'no'
else:
default_dri = 'no'
#######################################################################
# Common options
-def Options():
- from SCons.Options import Options
- from SCons.Options.BoolOption import BoolOption
- from SCons.Options.EnumOption import EnumOption
- opts = Options('config.py')
- opts.Add(BoolOption('debug', 'build debug version', 'no'))
+def AddOptions(opts):
+ try:
+ from SCons.Options.BoolOption import BoolOption
+ except ImportError:
+ from SCons.Variables.BoolVariable import BoolVariable as BoolOption
+ try:
+ from SCons.Options.EnumOption import EnumOption
+ except ImportError:
+ from SCons.Variables.EnumVariable import EnumVariable as EnumOption
+ opts.Add(BoolOption('debug', 'debug build', 'no'))
+ opts.Add(BoolOption('profile', 'profile build', 'no'))
+ #opts.Add(BoolOption('quiet', 'quiet command lines', 'no'))
opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine,
allowed_values=('generic', 'x86', 'x86_64')))
opts.Add(EnumOption('platform', 'target platform', default_platform,
- allowed_values=('linux', 'cell', 'winddk')))
+ allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince')))
opts.Add(BoolOption('llvm', 'use LLVM', 'no'))
opts.Add(BoolOption('dri', 'build DRI drivers', default_dri))
- return opts
-
-
-#######################################################################
-# Convenience Library Builder
-# based on the stock StaticLibrary and SharedLibrary builders
-
-import SCons.Action
-import SCons.Builder
-
-def createConvenienceLibBuilder(env):
- """This is a utility function that creates the ConvenienceLibrary
- Builder in an Environment if it is not there already.
-
- If it is already there, we return the existing one.
- """
-
- try:
- convenience_lib = env['BUILDERS']['ConvenienceLibrary']
- except KeyError:
- action_list = [ SCons.Action.Action("$ARCOM", "$ARCOMSTR") ]
- if env.Detect('ranlib'):
- ranlib_action = SCons.Action.Action("$RANLIBCOM", "$RANLIBCOMSTR")
- action_list.append(ranlib_action)
-
- convenience_lib = SCons.Builder.Builder(action = action_list,
- emitter = '$LIBEMITTER',
- prefix = '$LIBPREFIX',
- suffix = '$LIBSUFFIX',
- src_suffix = '$SHOBJSUFFIX',
- src_builder = 'SharedObject')
- env['BUILDERS']['ConvenienceLibrary'] = convenience_lib
- env['BUILDERS']['Library'] = convenience_lib
-
- return convenience_lib
-
-
-#######################################################################
-# Build
-
-def make_build_dir(env):
- # Put build output in a separate dir, which depends on the current configuration
- # See also http://www.scons.org/wiki/AdvancedBuildExample
- build_topdir = 'build'
- build_subdir = env['platform']
- if env['dri']:
- build_subdir += "-dri"
- if env['llvm']:
- build_subdir += "-llvm"
- if env['machine'] != 'generic':
- build_subdir += '-' + env['machine']
- if env['debug']:
- build_subdir += "-debug"
- build_dir = os.path.join(build_topdir, build_subdir)
- return build_dir