OSX 64-bit

20:58 < mabshoff> It needs to use the flags python was build with, not some random stuff people thing 20:58 < mabshoff> think is good. 20:58 < mabshoff> I told Robert about it.

But:

[06:36] <mabshoff> But it doesn't match the python flags. I checked on it once. [06:37] <was_> It's distutils. [06:37] <was_> Cython doesn't have anything to do with the flags. }}}

Build Order of packages for 2.10.alpha2

Build Notes

Sage 2.10.alpha2 port to 64 bit OSX:

prereq-0.3:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   SAGE_OPT="-O2 -g -m64 " && export SAGE_OPT
fi

More changes in spkg/base/bzip2-1.0.4-install

#####################################################################
gmp-4.2.1.p12: broken, need to update to 4.2.2, skip patching

add ABI=64, otherwise set ABI=32

Maybe: Our gmp 4.2.1 is FUBAR, i.e. Cygwin problems

Important: add extern __inline__ gmp-h.in fix for Darwin

#####################################################################
termcap-1.3.1:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   CFLAGS="-O2 -g -m64 " && export CFLAGS
fi

Note: Fix dylib build on OSX!

#####################################################################
readline-5.2.p0:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   CFLAGS="-O2 -g -m64 " && export CFLAGS
fi

Note: Fix dylib build on OSX!

#####################################################################
pari-2.3.3:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   CFLAGS="-g -m64 " && export CFLAGS
fi

        GP/PARI CALCULATOR Version 2.3.3 (released)
   i386 running darwin (x86-64/GMP kernel) 64-bit version
  compiled: Jan 13 2008, gcc-4.0.1 (Apple Inc. build 5465)
   (readline not compiled in, extended help available)


#####################################################################
ntl-5.4.1.p10

in build():

     if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
         CFLAGS=" -m64 $CFLAGS"
         CXXFLAGS=" -m64 $CXXFLAGS"
     fi

libntl.dylib is 32 bits. In patches/ntl_makefile add "-m64":
libntl.dylib: $(OBJ)
        $(CXX) -m64 -fPIC -dynamiclib -undefined dynamic_lookup -o libntl.dylib $(OBJ) $(GMP_LIBDIR) $(GMP_LIB)

#####################################################################
cremona-20071219.p1:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
    echo "64 bit MacIntel build"
    PICFLAG=-m64
    export PICFLAG
fi

OPTFLAG overwrites CC and CXX

#####################################################################
flint-1.05

spkg-install:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   FLINT_TUNE=" -fPIC -m64"
fi

In the dylib Darwin case:

    if ["$SAGE64" = "yes" ]; then
       $MAKE libflint.dylib64
    else
       $MAKE libflint.dylib
    fi

in src/makefile add

libflint.dylib64: $(FLINTOBJ)
        $(CC) -m64 -single_module -fPIC -dynamiclib -o libflint.dylib $(FLINTOBJ) $(LIBS)

spkg-check:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   FLINT_TUNE=" -fPIC -m64"
fi


#####################################################################
zlib-1.2.3.p3:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   CFLAGS=" -m64 $CFLAGS -fPIC -g -I\"$SAGE_LOCAL/include\""
else
   CFLAGS="$CFLAGS -fPIC -g -I\"$SAGE_LOCAL/include\""
fi
export CFLAGS

#####################################################################
sqlite-3.5.3.p1:

bsd:standard mabshoff$ tar xjf sqlite-3.5.3.p1.spkg
tar: sqlite-3.5.3.p1/src/test: time stamp 2038-01-18 19:14:07 is 947212601 s in the future

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CXXFLAGS="-O2 -g -m64 "; export CXXFLAGS
fi

#####################################################################
plibgpg_error-1.5

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CXXFLAGS="-O2 -g -m64 "; export CXXFLAGS
fi

#####################################################################
libgcrypt-1.2.4

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CXXFLAGS="-O2 -g -m64 "; export CXXFLAGS
fi

#####################################################################
opencdk-0.5.9

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CXXFLAGS="-O2 -g -m64 "; export CXXFLAGS
fi

#####################################################################
gnutls-1.6.3

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CXXFLAGS="-O2 -g -m64 "; export CXXFLAGS
fi

#####################################################################
libpng-1.2.22.p3:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   CFLAGS=" -m64 $CFLAGS -fPIC -g -I\"$SAGE_LOCAL/include\""
else
   CFLAGS="$CFLAGS -fPIC -g -I\"$SAGE_LOCAL/include\""
fi
export CFLAGS

Note: gd-2.0.35 requires a dynamic libpng12.dylib

#####################################################################
python:


Makefile.pre.in: add "-m64" to LDFLAGS

export EXTRA_CFLAGS="-m64"
./configure --prefix="$SAGE_LOCAL" --without-libpng --enable-unicode=ucs4  --disable-toolbox-glue

posixmodule.c: setpgrp shit - unsolved - ifdef around it.

in local/lib/python2.5/config/Makefile: add -m64 to OPT
#####################################################################
freetype-2.3.5:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CXXFLAGS="-O2 -g -m64 "; export CXXFLAGS
fi

#####################################################################
gd-2.0.33.p5:

Update to 2.0.35

# needed to pick up zlib.h
if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   CFLAGS=" -m64 $CFLAGS -fPIC -g -I\"$SAGE_LOCAL/include\" -I$SAGE_LOCAL/include/freetype2/"
else
   CFLAGS="$CFLAGS -fPIC -g -I\"$SAGE_LOCAL/include\" -I$SAGE_LOCAL/include/freetype2/"
fi
export CFLAGS

Makefile.am: add "-m64"

#####################################################################
fortran-20071120.p3:

gfortran 4.2.2 compiled from scratch.

Add "-m64" to sage_fortran options, link x86_64 libgfortran.dylib

#####################################################################
gsl-1.9:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CPPFLAGS="-O2 -g -m64 "; export CPPFLAGS
fi

#####################################################################
iml-1.0.1.p8
if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CPPFLAGS="-O2 -g -m64 "; export CPPFLAGS
fi

#####################################################################
givaro-3.2.6.p5:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CPPFLAGS="-O2 -g -m64 "; export CPPFLAGS
fi

#####################################################################
linbox-20070915.p3:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CXXFLAGS="-O2 -g -m64 "; export CXXFLAGS
   CPPFLAGS="-O2 -g -m64 "; export CPPFLAGS
fi

#####################################################################
f2c-20070816:

uncomment "CFLAGS = -O" in f2c/makefile
uncomment "CFLAGS = -O -fPIC" in libf2c/makefile

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "
else
   CFLAGS="-fPIC"
fi

Dual architecture static lib is created, but f2c works

#####################################################################
numpy-20080104-1.0.4.p1: skipped
scipy-20071020-0.6.p2: skipped (due to numpy)
scipy_sandbox-20071020: skipped (due to numpy)
matplotlib-0.91.1.p1: skipped (due to numpy)
#####################################################################
mpfr-2.3.0.p0:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CXXFLAGS="-O2 -g -m64 "; export CXXFLAGS
   CPPFLAGS="-O2 -g -m64 "; export CPPFLAGS
fi

#####################################################################
mpfi:

if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
   echo "64 bit MacIntel"
   CFLAGS="-O2 -g -m64 "; export CFLAGS
   CXXFLAGS="-O2 -g -m64 "; export CXXFLAGS
   CPPFLAGS="-O2 -g -m64 "; export CPPFLAGS
fi


#####################################################################
quaddouble-2.2.p7: 

CXXFLAGS='-fPIC -O3 -Dx86 -m64'
export CXXFLAGS

#####################################################################
twisted-2.5.0.p8: depends on pymactoolbox.h?

gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -m64 -I/Users/mabshoff/sage-2.10.alpha2/local/include/python2.5 -c twisted/internet/cfsupport/cfsupport.c -o build/temp.macosx-10.3-i386-2.5/twisted/internet/cfsupport/cfsupport.o -w
In file included from twisted/internet/cfsupport/cfsupport.c:8:
/Users/mabshoff/sage-2.10.alpha2/local/include/python2.5/pymactoolbox.h:138: error: syntax error before ‘Track’
/Users/mabshoff/sage-2.10.alpha2/local/include/python2.5/pymactoolbox.h:140: error: syntax error before ‘Movie’
/Users/mabshoff/sage-2.10.alpha2/local/include/python2.5/pymactoolbox.h:142: error: syntax error before ‘MovieController’
/Users/mabshoff/sage-2.10.alpha2/local/include/python2.5/pymactoolbox.h:146: error: syntax error before ‘UserData’
/Users/mabshoff/sage-2.10.alpha2/local/include/python2.5/pymactoolbox.h:148: error: syntax error before ‘Media’
error: command 'gcc' failed with exit status 1
Error: Subprocess exited with result 1 for project core
Error installing Twisted networking framework

real    0m5.832s
user    0m1.288s
sys     0m0.744s
sage: An error occurred while installing twisted-2.5.0.p8
Please email sage-devel http://groups.google.com/group/sage-devel
explaining the problem and send the relevant part of
of /Users/mabshoff/sage-2.10.alpha2/install.log.  Describe your computer, operating system, etc.
If you want to try to fix the problem, yourself *don't* just cd to
/Users/mabshoff/sage-2.10.alpha2/spkg/build/twisted-2.5.0.p8 and type 'make'.
Instead type "/Users/mabshoff/sage-2.10.alpha2/sage -sh"
in order to set all environment variables correctly, then cd to
/Users/mabshoff/sage-2.10.alpha2/spkg/build/twisted-2.5.0.p8
(When you are done debugging, you can type "exit" to leave the
subshell.)
make[1]: *** [installed/twisted-2.5.0.p8] Error 1

#####################################################################
singular-3-0-4-1-20071209.p3:

CXXFLAGS="$CXXFLAGS -fPIC -O3 -g -m64"; export CXXFLAGS
CFLAGS="$CFLAGS -fPIC -O3 -g -m64"; export CFLAGS
CPPFLAGS="$CXXFLAGS -fPIC -O3 -g -m64"; export CPPFLAGS

#####################################################################
symmetrica-2.0:

Add -m64 in patches/makefile in three places

#####################################################################
libfplll-2.1.6-20071129

CFLAGS="$CFLAGS -fPIC $INCLUDES -L$SAGE_LOCAL/lib -m64"
CXXFLAGS="$CXXFLAGS -fPIC $INCLUDES -L$SAGE_LOCAL/lib -m64"
CPPFLAGS="$INCLUDES -m64"

#####################################################################
polybori:

64 bit MacIntel
Starting build...
Running build_polybori...
scons: Reading SConscript files ...
KeyError: 'PYTHONHOME':
  File "/Users/mabshoff/sage-2.10.alpha2/spkg/standard/polybori-0.1-r6/src/PolyBoRi-0.1/SConstruct", line 105:
    env=Environment(ENV = {'PATH': os.environ['PATH']}, options=opts,tools = tools, toolpath = '.')
  File "/Users/mabshoff/sage-2.10.alpha2/local/lib/scons-0.97/SCons/Environment.py", line 779:
    options.Update(self)
  File "/Users/mabshoff/sage-2.10.alpha2/local/lib/scons-0.97/SCons/Options/__init__.py", line 145:
    execfile(filename, values)
  File "custom.py", line 13:
    PYPREFIX=os.environ['PYTHONHOME']
  File "/Users/mabshoff/sage-2.10.alpha2/local/lib/python2.5/UserDict.py", line 22:
    raise KeyError(key)
Error building PolyBoRi.


#####################################################################
sage -b: devel/sage/c_lib/SConstruct 

## We want the debug and optimization flags, since debug symbols are so useful, etc.
env.Append( CFLAGS="-O2 -g -m64" )
env.Append( CXXFLAGS="-O2 -g -m64" )


#####################################################################

libm4fri

CFLAGS="$CFLAGS -fPIC $INCLUDES -L$SAGE_LOCAL/lib -m64"
CXXFLAGS="$CXXFLAGS -fPIC $INCLUDES -L$SAGE_LOCAL/lib -m64"
CPPFLAGS="$INCLUDES -m64"