[cig-commits] commit: Adding Mac fixes.

Mercurial hg at geodynamics.org
Mon Nov 24 11:22:57 PST 2008


changeset:   60:1e9fabdc2314
user:        LukeHodkinson
date:        Thu Mar 27 23:29:56 2008 +0000
files:       SConstruct
description:
Adding Mac fixes.


diff -r 0df0fc25deca -r 1e9fabdc2314 SConstruct
--- a/SConstruct	Thu Mar 27 23:26:56 2008 +0000
+++ b/SConstruct	Thu Mar 27 23:29:56 2008 +0000
@@ -13,13 +13,24 @@ if 'CC' in env['ENV']:
 if 'CC' in env['ENV']:
     env['CC'] = env['ENV']['CC']
 
+# Need to modify building shared libraries when on Mac OS X.
+if platform.system() == 'Darwin':
+    env.AppendUnique(SHLINKFLAGS=['-flat_namespace',
+                                  '-single_module',
+                                  '-undefined', 'suppress'])
+    import SCons.Util # And fix RPATHs.
+    env['LINKFLAGS'] = SCons.Util.CLVar('')
+    env['RPATHPREFIX'] = ''
+    env['RPATHSUFFIX'] = ''
+    env['_RPATH'] = ''
+
 # Configuring or building? Or helping?
 if 'config' in COMMAND_LINE_TARGETS or 'help' in COMMAND_LINE_TARGETS:
     import packages
     opts = Options() # Create our options database.
 
     # Setup all the packages we want configured.
-    env.Package(packages.stgMagma, opts)
+    env.Package(packages.stgMagma, opts, True)
 
     # Displaying help?
     if 'help' in COMMAND_LINE_TARGETS:
@@ -34,20 +45,20 @@ else:
     # Prepare our construction environment.
     env.load_config('config.cfg') # Load configuration.
     SConscript('StgSCons', exports='env') # Setup our StG specific utils.
-    if env['staticLibraries']: # Static libs or shared?
-        env.library_builder = env.StaticLibrary
-    else:
-        env.library_builder = env.SharedLibrary
     env.Default(env['buildPath']) # Needed for different build paths.
-    if platform.system() == 'Darwin': # Need to modify building shared libraries when on Mac OS X.
-        env.AppendUnique(SHLINKFLAGS=['-flat_namespace',
-                                      '-single_module',
-                                      '-undefined', 'suppress'])
-        import SCons.Util # And fix RPATHs.
-        env['LINKFLAGS'] = SCons.Util.CLVar('')
-        env['RPATHPREFIX'] = ''
-        env['RPATHSUFFIX'] = ''
-        env['_RPATH'] = ''
+    env.Append(CPPDEFINES=['HAVE_SCONS'])
+
+    # Another Mac OS X hack.
+    if platform.system() == 'Darwin':
+	env['_abspath'] = lambda x: File(x).abspath
+        env.Append(SHLINKFLAGS=['-install_name', '${_abspath(TARGET)}'])
+
+    # Prepare library builders.
+    env.library_builders = []
+    if env['static_libraries']:
+        env.library_builders += [env.StaticLibrary]
+    if env['shared_libraries']:
+        env.library_builders += [env.SharedLibrary]
 
     # Specify targets.
     SConscript('StGermain/SConscript', exports='env')



More information about the CIG-COMMITS mailing list