Edward,
The xplor-nih builds use a findPython script which uses
the python get_config_var() call in distutils.sysconfig to
determine the build flags. For example, when I set
/sw/bin/python2.6 as the python, it produces...
PYTHON=/sw/bin/python2.6
PYTHON_VERSION=2.6
PYTHON_PREFIX=/sw
PYTHON_LIBFILE=/sw/lib/python2.6/config/libpython2.6.a
PYTHON_LDFLAGS+=-ldl
PYTHON_LDFLAGS+=
PYTHON_LDFLAGS+=
PYTHON_INCLUDE=/sw/include/python2.6
PYTHON_DESTSHARED=/sw/lib/python2.6/lib-dynload
PYTHON_DESTLIB=/sw/lib/python2.6
PYTHON_LIBDIRNAME=lib
This is from the calls...
echo PYTHON=$python
echo PYTHON_VERSION=`$python \
-c 'import sys; print "%d.%d" % sys.version_info[:2]'`
echo PYTHON_PREFIX=`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("prefix")'`
if [ "$USE_MACOSX_FRAMEWORKS" = "1" ] || [ "$ARCH_IS_DARWIN" != "1" ]; then
echo PYTHON_LDFLAGS=`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("LINKFORSHARED")'`
fi
if [ "$USE_MACOSX_FRAMEWORKS" != "1" ]; then
echo PYTHON_LIBFILE=`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("LIBPL") + "/" + get_config_var("LIBRARY")'`
fi
if [ "$ARCH_IS_DARWIN" != "1" ]; then
echo PYTHON_LDFLAGS+=-L`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("LIBPL")'`
echo PYTHON_LDFLAGS+=-l`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("LIBRARY")[3:-2]'`
fi
echo PYTHON_LDFLAGS+=`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("LIBS")'`
echo PYTHON_LDFLAGS+=`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("LOCALMODLIBS")'`
echo PYTHON_LDFLAGS+=`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("SYSLIBS")'`
echo PYTHON_INCLUDE=`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("INCLUDEPY")'`
echo PYTHON_DESTSHARED=`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("DESTSHARED")'`
echo PYTHON_DESTLIB=`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("DESTLIB")'`
# this next for redhat, Suse (others?) who have done the wrong thing for amd64
# and placed native libs in /usr/lib64
# FIX: note the assumed unix path syntax
echo PYTHON_LIBDIRNAME=`$python \
-c 'from distutils.sysconfig import *; \
print get_config_var("LIBDIR").split("/")[-1]'`
On Mon, Aug 17, 2009 at 05:15:57PM +0200, Edward d'Auvergne wrote:
> Hi,
>
> The way we can solve this issue is to first type the gcc linking
> command by hand, rather than using scons. Then once all is
> functional, I can fix the Scons script. Here is what Douglas Kojetin
> did to make this work
> (https://mail.gna.org/public/relax-devel/2006-11/msg00092.html), and
> then I tailored the scons script to match. If you cut an past this
> gcc command, can you compile the modules and run the system test
> without failures? Also, once this is all functional, I would like to
> get your changes (well, modified to be compatible with all other
> operating systems) into the repository so that it is easier for you
> next time.
>
> Cheers,
>
> Edward
>
>
>
> 2009/8/17 Jack Howarth <[email protected]>:
> > Edward,
> > I'll have to look into that as I'm not very familar with scons.
> > Currently for 1.3.3, it is sufficient to use...
> >
> > --- relax-1.3.0.orig/relax 2007-02-19 00:36:06.000000000 -0500
> > +++ relax-1.3.0/relax 2008-08-11 02:13:30.000000000 -0400
> > @@ -1,4 +1,4 @@
> > -#! /usr/bin/env python
> > +#! /usr/bin/env python2.X
> >
> > ###############################################################################
> > #
> > #
> > --- relax-1.3.0/scons/install.py.sav 2008-08-10 15:31:01.000000000 -0400
> > +++ relax-1.3.0/scons/install.py 2008-08-10 16:01:22.000000000 -0400
> > @@ -112,8 +112,8 @@
> > ###############
> >
> > # Run relax to create the *.pyc files.
> > - print "\nRunning relax to create the byte-compiled *.pyc files."
> > - system(env['SYMLINK'] + " --test")
> > + # print "\nRunning relax to create the byte-compiled *.pyc files."
> > + # system(env['SYMLINK'] + " --test")
> >
> > # Final print out.
> > print "\n\n\n"
> > --- relax-1.3.0.orig/sconstruct 2007-02-19 00:36:06.000000000 -0500
> > +++ relax-1.3.0/sconstruct 2008-08-11 02:02:56.000000000 -0400
> > @@ -94,7 +94,7 @@
> > SYS = SYSTEM
> >
> > # Mac OS X installation path.
> > - INSTALL_PATH = sys.prefix + sep + 'local'
> > + INSTALL_PATH = 'FINK_INSTALL_DIR' + sep + 'lib'
> >
> >
> > # All other operating systems.
> > @@ -111,16 +111,15 @@
> > ###############
> >
> > # Relax installation directory.
> > -RELAX_PATH = INSTALL_PATH + sep + 'relax'
> > +RELAX_PATH = INSTALL_PATH + sep + 'relax-py2X'
> >
> > # Installation path for binaries.
> > -BIN_PATH = INSTALL_PATH + sep + 'bin'
> > +BIN_PATH = 'FINK_INSTALL_DIR' + sep + 'bin'
> >
> > # Symbolic link installation path.
> > SYMLINK = BIN_PATH + sep + 'relax'
> >
> >
> > -
> > # The distribution files.
> > #########################
> >
> > @@ -486,7 +485,7 @@
> >
> > # Catch Mac OS X and send the correct command line options to the
> > linker (these may become redundant as SCons improves).
> > if env['PLATFORM'] == 'darwin':
> > - env.Append(LINKFLAGS = ['-bundle', '-bundle_loader',
> > sys.prefix + path.sep + 'bin' + path.sep + 'python', '-dynamic'])
> > + env.Append(LINKFLAGS = ['-bundle', '-bundle_loader',
> > sys.prefix + path.sep + 'bin' + path.sep + 'python2.X', '-dynamic'])
> > env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS')
> > env['SHLIBSUFFIX'] = '.so'
> >
> >
> > to build against the fink python24 and python25 packages.
> > Jack
> >
> > On Mon, Aug 17, 2009 at 03:55:06PM +0200, Edward d'Auvergne wrote:
> >> Hi,
> >>
> >> It could be, that Python 2.6 dynamically linked libraries are now
> >> compiled differently to earlier Python versions. I'll have to look
> >> that up as well. Would you know the linker options now required?
> >>
> >> Cheers,
> >>
> >> Edward
> >>
> >>
> >> 2009/8/17 Jack Howarth <[email protected]>:
> >> > Edward,
> >> > I think I see the problem. The link line is missing a linkage on either
> >> > /sw/lib/python2.6/config/libpython2.6.a or
> >> > /sw/lib/python2.6/config/libpython2.6,dylib.
> >> > What do you have for the linkage of maths_fns/relax_fit.so on linux? Does
> >> > that build explicitly link in the python library?
> >> > Jack
> >> >
> >> >
> >> > On Mon, Aug 17, 2009 at 11:50:10AM +0200, Edward d'Auvergne wrote:
> >> >> Hi,
> >> >>
> >> >> Thank you for building these packages (or at least attempting for now
> >> >> ;). I'm still looking into the problem, but it's looking like the
> >> >> Python header files are missing or are from an old version. Do you
> >> >> know if this could be the issue, that the Python development packages
> >> >> are out of date or are missing?
> >> >>
> >> >> Cheers,
> >> >>
> >> >> Edward
> >> >>
> >> >>
> >> >>
> >> >> On Sun, Aug 16, 2009 at 4:08 AM, Jack Howarth<[email protected]>
> >> >> wrote:
> >> >> > Edward,
> >> >> > I am trying to build updated relax-py packaging
> >> >> > for fink using the 1.3.4 release on x86_64 fink
> >> >> > with python2.6. Although your web page indicates
> >> >> > that the binaries available are built against
> >> >> > python 2.5 and 2.6, I am seeing build failures
> >> >> > when I try here with scons 1.2.0...
> >> >> >
> >> >> > /sw/bin/python2.6 /sw/bin/scons
> >> >> > scons: Reading SConscript files ...
> >> >> > scons: done reading SConscript files.
> >> >> > scons: Building targets ...
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > ###########################
> >> >> > # Compiling the C modules #
> >> >> > ###########################
> >> >> >
> >> >> >
> >> >> > Building the relaxation curve fitting module 'maths_fns/relax_fit.so'
> >> >> >
> >> >> > gcc -o maths_fns/c_chi2.os -c -I/sw/include/python2.6
> >> >> > -I/sw/lib/python2.6/site-packages/numpy/core/include -fPIC
> >> >> > maths_fns/c_chi2.c
> >> >> > gcc -o maths_fns/exponential.os -c -I/sw/include/python2.6
> >> >> > -I/sw/lib/python2.6/site-packages/numpy/core/include -fPIC
> >> >> > maths_fns/exponential.c
> >> >> > gcc -o maths_fns/relax_fit.os -c -I/sw/include/python2.6
> >> >> > -I/sw/lib/python2.6/site-packages/numpy/core/include -fPIC
> >> >> > maths_fns/relax_fit.c
> >> >> > gcc -o maths_fns/relax_fit.so -bundle -bundle_loader
> >> >> > /sw/bin/python2.6 -dynamic maths_fns/c_chi2.os
> >> >> > maths_fns/exponential.os maths_fns/relax_fit.os
> >> >> > Undefined symbols:
> >> >> > "_PyArg_ParseTupleAndKeywords", referenced from:
> >> >> > _setup in relax_fit.os
> >> >> > "_PyErr_Print", referenced from:
> >> >> > _initrelax_fit in relax_fit.os
> >> >> > "_Py_InitModule4_64", referenced from:
> >> >> > _initrelax_fit in relax_fit.os
> >> >> > "_PyArg_ParseTuple", referenced from:
> >> >> > _func in relax_fit.os
> >> >> > _dfunc in relax_fit.os
> >> >> > "_PyExc_RuntimeError", referenced from:
> >> >> > __import_array in exponential.os
> >> >> > __import_array in exponential.os
> >> >> > __import_array in exponential.os
> >> >> > __import_array in relax_fit.os
> >> >> > __import_array in relax_fit.os
> >> >> > __import_array in relax_fit.os
> >> >> > "_PyList_New", referenced from:
> >> >> > _back_calc_I in relax_fit.os
> >> >> > "__Py_NoneStruct", referenced from:
> >> >> > _setup in relax_fit.os
> >> >> > _setup in relax_fit.os
> >> >> > _setup in relax_fit.os
> >> >> > "_PyExc_ImportError", referenced from:
> >> >> > _initrelax_fit in relax_fit.os
> >> >> > "_PyCObject_AsVoidPtr", referenced from:
> >> >> > __import_array in exponential.os
> >> >> > __import_array in relax_fit.os
> >> >> > "_PyCObject_Type", referenced from:
> >> >> > __import_array in exponential.os
> >> >> > __import_array in relax_fit.os
> >> >> > "_PyImport_ImportModule", referenced from:
> >> >> > __import_array in exponential.os
> >> >> > __import_array in relax_fit.os
> >> >> > "_PyErr_SetString", referenced from:
> >> >> > _initrelax_fit in relax_fit.os
> >> >> > "_PyErr_Format", referenced from:
> >> >> > __import_array in exponential.os
> >> >> > __import_array in exponential.os
> >> >> > __import_array in exponential.os
> >> >> > __import_array in relax_fit.os
> >> >> > __import_array in relax_fit.os
> >> >> > __import_array in relax_fit.os
> >> >> > "_PyList_SetItem", referenced from:
> >> >> > _back_calc_I in relax_fit.os
> >> >> > "_PyObject_GetAttrString", referenced from:
> >> >> > __import_array in exponential.os
> >> >> > __import_array in relax_fit.os
> >> >> > "_Py_BuildValue", referenced from:
> >> >> > _func in relax_fit.os
> >> >> > _d2func in relax_fit.os
> >> >> > _back_calc_I in relax_fit.os
> >> >> > ld: symbol(s) not found
> >> >> >
> >> >> > Is the 1.3.4 release really python2.6 compatible or do I need
> >> >> > additional
> >> >> > patches? Thanks in advance for any information.
> >> >> > Jack
> >> >> > ps I am updating the minfx-py package to the newer 1.0.2 release of
> >> >> > course for the python 2.6 compatibility changes.
> >> >> >
> >> >> > _______________________________________________
> >> >> > relax (http://nmr-relax.com)
> >> >> >
> >> >> > This is the relax-users mailing list
> >> >> > [email protected]
> >> >> >
> >> >> > To unsubscribe from this list, get a password
> >> >> > reminder, or change your subscription options,
> >> >> > visit the list information page at
> >> >> > https://mail.gna.org/listinfo/relax-users
> >> >> >
> >> >
> >
_______________________________________________
relax (http://nmr-relax.com)
This is the relax-users mailing list
[email protected]
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-users