scons: Fix two problems with the way that the library path is generated.
authorNathan Binkert <nate@binkert.org>
Wed, 22 Apr 2009 00:17:15 +0000 (17:17 -0700)
committerNathan Binkert <nate@binkert.org>
Wed, 22 Apr 2009 00:17:15 +0000 (17:17 -0700)
1) -L is automatically added, so don't do it ourselves
2) prepend the paths for gzstream and libelf so they are certain to
come first. The problem is that python might add /usr/lib to the path
and the user might have a locally installed version of libelf installed.

SConstruct
ext/gzstream/SConscript
ext/libelf/SConscript

index cc5bbbdd9354931b2833a30fdb88934aee361a98..85b5a8ca02c83cc05e316b59044243e7fd989f9f 100644 (file)
@@ -557,13 +557,15 @@ py_lib_path = [ py_getvar('LIBDIR') ]
 # add the prefix/lib/pythonX.Y/config dir, but only if there is no
 # shared library in prefix/lib/.
 if not py_getvar('Py_ENABLE_SHARED'):
-    py_lib_path.append('-L' + py_getvar('LIBPL'))
+    py_lib_path.append(py_getvar('LIBPL'))
 
 py_libs = []
 for lib in py_getvar('LIBS').split() + py_getvar('SYSLIBS').split():
+    assert lib.startswith('-l')
+    lib = lib[2:]   
     if lib not in py_libs:
         py_libs.append(lib)
-py_libs.append('-l' + py_version)
+py_libs.append(py_version)
 
 env.Append(CPPPATH=py_includes)
 env.Append(LIBPATH=py_lib_path)
@@ -574,8 +576,6 @@ if not conf.CheckHeader('Python.h', '<>'):
     Exit(1)
 
 for lib in py_libs:
-    assert lib.startswith('-l')
-    lib = lib[2:]
     if not conf.CheckLib(lib):
         print "Error: can't find library %s required by python" % lib
         Exit(1)
index ec2939b8b71d7a9708eccfe74ca498ef3ed4037a..ef591229ec7c8429aec0d28ba41f1efb5ba05d48 100644 (file)
@@ -32,7 +32,7 @@ Import('env')
 
 env.Library('gzstream', [File('gzstream.cc')])
 
-env.Append(CPPPATH=Dir('.'))
+env.Prepend(CPPPATH=Dir('.'))
 env.Append(LIBS=['gzstream'])
-env.Append(LIBPATH=[Dir('.')])
+env.Prepend(LIBPATH=[Dir('.')])
 
index 5e3038317be9f5382b28edb5d8b8cb515d80723e..dff6fdaa99c7c712a583d66abc3b777514e679e0 100644 (file)
@@ -119,7 +119,7 @@ m4env.M4(target=File('libelf_msize.c'),
 # into either m5 or the library
 m4env.Library('elf', [m4env.SharedObject(f) for f in elf_files])
 
-env.Append(CPPPATH=Dir('.'))
+env.Prepend(CPPPATH=Dir('.'))
 env.Append(LIBS=['elf'])
-env.Append(LIBPATH=[Dir('.')])
+env.Prepend(LIBPATH=[Dir('.')])