-# help -------------------------------------------\r
-\r
-Help("""\r
-Usage: scons [OPTIONS] [TARGET] [CONFIG]\r
-\r
-[OPTIONS] and [TARGET] are covered in command line options, use scons -H\r
-\r
-[CONFIG]: KEY="VALUE" [...]\r
-a number of configuration options saved between runs in the """ + conf_filename + """ file\r
-erase """ + conf_filename + """ to start with default settings again\r
-\r
-CC\r
-CXX\r
- Specify C and C++ compilers (defaults gcc and g++)\r
- ex: CC="gcc-3.2"\r
- You can use ccache and distcc, for instance:\r
- CC="ccache distcc gcc" CXX="ccache distcc g++"\r
-\r
-JOBS\r
- Parallel build\r
- ex: JOBS="4" is a good setting on SMP machines\r
-\r
-BUILD\r
- Use debug/release to select build settings\r
- ex: BUILD="release" - default is debug\r
- OSX: use BUILD="info" to generate the set of release files\r
-\r
-SETUP\r
- Build a setup - default 0\r
-"""\r
-)\r
-\r
-# end help ---------------------------------------\r
- \r
-# sanity -----------------------------------------\r
-\r
-# use q decently recent python release\r
-EnsurePythonVersion( 2, 1 )\r
-# above 0.90\r
-EnsureSConsVersion( 0, 95 )\r
-print 'SCons ' + SCons.__version__\r
-\r
-# end sanity -------------------------------------\r
-\r
-# system detection -------------------------------\r
-\r
-# CPU type\r
-g_cpu = commands.getoutput('uname -m')\r
-exp = re.compile('.*i?86.*')\r
-if (g_cpu == 'Power Macintosh'):\r
- g_cpu = 'ppc'\r
-elif exp.match(g_cpu):\r
- g_cpu = 'x86'\r
-else:\r
- g_cpu = 'cpu'\r
-\r
-# OS\r
-OS = commands.getoutput('uname')\r
-\r
-if (OS == 'Linux'):\r
- # libc .. do the little magic!\r
- # NOTE: this used to work fine up to libc 2.3\r
- libc = commands.getoutput('/lib/libc.so.6 |grep "GNU C "|grep version|awk -F "version " \'{ print $2 }\'|cut -b -3')\r
-\r
-# end system detection ---------------------------\r
-\r
-# default settings -------------------------------\r
-\r
-CC='gcc'\r
-CXX='g++'\r
-JOBS='1'\r
-BUILD='debug'\r
-INSTALL='#install'\r
-SETUP='0'\r
-g_build_root = 'build'\r
-\r
-# end default settings ---------------------------\r
-\r
-# site settings ----------------------------------\r
-\r
-site_dict = {}\r
-if (os.path.exists(conf_filename)):\r
- site_file = open(conf_filename, 'r')\r
- p = pickle.Unpickler(site_file)\r
- site_dict = p.load()\r
- print 'Loading build configuration from ' + conf_filename\r
- for k, v in site_dict.items():\r
- exec_cmd = k + '=\"' + v + '\"'\r
- print exec_cmd\r
- exec(exec_cmd)\r
-\r
-# end site settings ------------------------------\r
-\r
-# command line settings --------------------------\r
-\r
-for k in serialized:\r
- if (ARGUMENTS.has_key(k)):\r
- exec_cmd = k + '=\"' + ARGUMENTS[k] + '\"'\r
- print 'Command line: ' + exec_cmd\r
- exec(exec_cmd)\r
-\r
-# end command line settings ----------------------\r
-\r
-# sanity check -----------------------------------\r
-\r
-if (SETUP == '1' and BUILD != 'release' and BUILD != 'info'):\r
- print 'Forcing release build for setup'\r
- BUILD = 'release'\r
-\r
-def GetGCCVersion(name):\r
- ret = commands.getstatusoutput('%s -dumpversion' % name)\r
- if ( ret[0] != 0 ):\r
- return None\r
- vers = string.split(ret[1], '.')\r
- if ( len(vers) == 2 ):\r
- return [ vers[0], vers[1], 0 ]\r
- elif ( len(vers) == 3 ):\r
- return vers\r
- return None\r
-\r
-ver_cc = GetGCCVersion(CC)\r
-ver_cxx = GetGCCVersion(CXX)\r
-\r
-# end sanity check -------------------------------\r
-\r
-# save site configuration ----------------------\r
-\r
-for k in serialized:\r
- exec_cmd = 'site_dict[\'' + k + '\'] = ' + k\r
- exec(exec_cmd)\r
-\r
-site_file = open(conf_filename, 'w')\r
-p = pickle.Pickler(site_file)\r
-p.dump(site_dict)\r
-site_file.close()\r
-\r
-# end save site configuration ------------------\r
-\r
-# general configuration, target selection --------\r
-\r
-SConsignFile( "scons.signatures" )\r
-\r
-g_build = g_build_root + '/' + BUILD\r
-\r
-SetOption('num_jobs', JOBS)\r
-\r
-LINK = CXX\r
-# common flags\r
-CCFLAGS = ''\r
-CXXFLAGS = '-pipe -DQ_NO_STLPORT '\r
-CPPPATH = []\r
-if (BUILD == 'debug'):\r
- CXXFLAGS += '-g -D_DEBUG '\r
- CCFLAGS += '-g -D_DEBUG '\r
-elif (BUILD == 'release'):\r
- CXXFLAGS += '-g -O2 '\r
- CCFLAGS += '-g -O2 '\r
-elif ( BUILD == 'info' ):\r
- print 'Preparing OSX release'\r
- ( line, major, minor ) = get_version()\r
- do_osx_setup( major, minor, 'osx-radiant-%s.run' % line )\r
- sys.exit( 0 )\r