2009/6/27 Dr. David Kirkby <david.kir...@onetel.net>:
>
> John H Palmieri wrote:
>>
>>
>> On Jun 27, 6:50 pm, "Dr. David Kirkby" <david.kir...@onetel.net>
>> wrote:
>>>> #!/usr/bin/bash
>>>> if [ `uname` = "SunOS" -a "`ld  --version  2>&1  | grep GNU`" = "" ]; then
>>>>    echo "Solaris system. The linker is NOT the GNU linker"
>>>>    echo "The correct compiler flags are '-Wl,-h,'"
>>>> elif  [ `uname` = "darwin" ]; then
>>>>    echo "OS X"
>>>>    echo "Correct compiler flags are '-Wl,-h,'"
>>>> else
>>>>    echo "Not OSX, or Solaris with the Sun linker"
>>>>    echo "The correct flags are '-Wl,-soname,'"
>>>> fi
>>> Actually, what i put above is printing the wrong flags for OS X, but you
>>> should see what I mean. I want something like this, which returns the
>>> right flags in python.
>>>
>>> #!/usr/bin/bash
>>> if [ `uname` = "SunOS" -a "`ld  --version  2>&1  | grep GNU`" = "" ]; then
>>>    echo "Solaris system. The linker is NOT the GNU linker"
>>>    echo "The correct compiler flags are '-Wl,-h,'"
>>> elif  [ `uname` = "darwin" ]; then
>>>    echo "OS X"
>>>    echo "Correct compiler flags are -Wl,-dylib_install_name -Wl,"
>>> else
>>>    echo "Not OSX, or Solaris with the Sun linker"
>>>    echo "The correct flags are '-Wl,-soname,'"
>>> fi
>>
>> I'm not exactly sure what you're looking for, but maybe try this:
>>
>> (interactively)
>>
>> sage: import os
>> sage: os.uname()
>> ('Darwin',
>>  'Macintosh.local',
>>  '9.7.0',
>>  'Darwin Kernel Version 9.7.0: Tue Mar 31 22:52:17 PDT 2009;
>> root:xnu-1228.12.14~1/RELEASE_I386',
>>  'i386')
>>
>> os.environ and os.system('ld --version') might also be helpful.  In a
>> python file:
>>
>>
>> import os
>>
>> sysname = os.uname()[0]
>> ld_version = (something involving os.system('ld --version'))
>> if sysname == 'Darwin' and ld_version == blahblahblah:
>>     print "hello, this is Darwin"
>> elif sysname == 'Solaris':  # I don't really know what the right thing
>> is for sysname here
>>     print "solaris"
>> else:
>>     print "other system"
>>
>> See <http://docs.python.org/library/os.html> for more on the Python os
>> module.
>>
>>   John
>
> Thanks john
>
> I was hoping to try to make the minimum changes to the code which
> exists, which seems almost what I want, but I somehow need to add the
> test. I assume this stuff below, which is the polybori file, defines
> some function which gets called elsewhere. I tried playing interactively
> with it, but can't seem to work out what is going on.
>
> def sonameprefix(env):
>      if env['PLATFORM']=="darwin":
>          return "-Wl,-dylib_install_name -Wl,"
>      else:
>          return '-Wl,-soname,'

print debugging time! (although this is not really debugging)

Change the function to this:

def sonameprefix(env):
     print "#######  LOOK HERE :", env['PLATFORM']
     if env['PLATFORM']=="darwin":
         return "-Wl,-dylib_install_name -Wl,"
     else:
         return '-Wl,-soname,'

Run it under solaris and note the value that is printed in the output.
 That is the platform name.

Then change the function to this:

def sonameprefix(env):
     if env['PLATFORM']=="darwin":
         return "-Wl,-dylib_install_name -Wl,"
     elif env['PLATFORM']==<what you found>:
         if 'GNU' in os.system('ld --version'):
            return <GNU flags>
         else:
             return <non-GNU flags>
     else:
         return '-Wl,-soname,'

And it should work.

Arnaud

P.S. Don't copy and paste the code that I wrote since I am certain the
indentation doesn't match because it was typed in the mail client.

> I've used the 'os' module before, but the code in polybori seems to do
> it another way. I don't really want to change it too much, since not
> understanding it, I'm more likely to do harm than good.
>
> dave
>
>
>
>
>>
>
>
> >
>



-- 
La brigade SnW veut vous recruter - http://brigade.snw.googlepages.com

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to