# HG changeset patch
# User R. Andrew Ohana <andrew.ohana@gmail.com>
# Date 1328377373 28800
# Node ID 1766ed11cfd8e67243229c03040f2fff8bf89356
# Parent  4e939f9229a7e0ddb1f1607a248bfcbba50e496b
add fwrapv cflag when building with clang

diff --git a/SPKG.txt b/SPKG.txt
--- a/SPKG.txt
+++ b/SPKG.txt
@@ -64,6 +64,10 @@
 
 == Changelog ==
 
+=== python-2.7.2.p2 (R. Andrew Ohana, 4 February 2012) ===
+ * add fwrapv cflag when building with clang
+ * refactor spkg-install
+
 === python-2.7.2.p1 (Jeroen Demeyer, 4 January 2012) ===
  * Trac #9958: delete $SAGE_ROOT/devel/sage-*/build directories of
    older Python versions to fix upgrading.
diff --git a/patches/configure.in.patch b/patches/configure.in.patch
new file mode 100644
--- /dev/null
+++ b/patches/configure.in.patch
@@ -0,0 +1,16 @@
+--- src/configure.in.orig	2012-01-31 11:07:02.000000000 -0800
++++ src/configure.in	2012-01-31 11:08:49.000000000 -0800
+@@ -931,6 +931,13 @@
+         if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
+            WRAP="-fwrapv"
+         fi
++
++        # Clang also needs -fwrapv
++        case $CC in
++            *clang*) WRAP="-fwrapv"
++            ;;
++        esac
++
+ 	case $ac_cv_prog_cc_g in
+ 	yes)
+ 	    if test "$Py_DEBUG" = 'true' ; then
diff --git a/patches/configure.patch b/patches/configure.patch
new file mode 100644
--- /dev/null
+++ b/patches/configure.patch
@@ -0,0 +1,16 @@
+--- src/configure.orig	2012-01-31 11:01:56.000000000 -0800
++++ src/configure	2012-01-31 11:06:49.000000000 -0800
+@@ -5418,6 +5418,13 @@
+         if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
+            WRAP="-fwrapv"
+         fi
++
++        # Clang also needs -fwrapv
++        case $CC in
++            *clang*) WRAP="-fwrapv"
++            ;;
++        esac
++
+ 	case $ac_cv_prog_cc_g in
+ 	yes)
+ 	    if test "$Py_DEBUG" = 'true' ; then
diff --git a/spkg-install b/spkg-install
--- a/spkg-install
+++ b/spkg-install
@@ -57,33 +57,29 @@
 {
     rm -f "$SAGE_LOCAL"/lib/libpython*
 
+    if [ `uname` = "Darwin" ]; then
+        EXTRAFLAGS="$EXTRAFLAGS --disable-toolbox-glue "
+    fi
+
+    if [ "x$SAGE64" = xyes ]; then
+        if [ `uname` = "Darwin" ]; then
+            echo "64 bit OSX build enabled"
+            OPT="-g -O3 -m64 -Wall -Wstrict-prototypes"; export OPT
+            EXTRAFLAGS="$EXTRAFLAGS --with-gcc=\"gcc -m64\""
+        elif [ `uname` = "SunOS" ]; then
+            echo "64 bit Open Solaris build enabled"
+            OPT="-g -O3 -m64 -Wall -Wstrict-prototypes"; export OPT
+            EXTRAFLAGS="$EXTRAFLAGS --with-gcc=\"gcc -m64\""
+        fi
+    fi
+
     EXTRAFLAGS="$EXTRAFLAGS --enable-shared"; export EXTRAFLAGS
 
-    if [ `uname` = "Darwin" ]; then
-        if [ "x$SAGE64" = xyes ]; then
-            echo "64 bit OSX build enabled"
-            OPT="-g -O3 -m64 -Wall -Wstrict-prototypes"; export OPT
-            ./configure $EXTRAFLAGS --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib" \
-	    --enable-unicode=ucs4 --with-gcc="gcc -m64" --disable-toolbox-glue
-        else
-            ./configure $EXTRAFLAGS --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib" \
-	    --enable-unicode=ucs4 --disable-toolbox-glue
-        fi
-    elif [ `uname` = "SunOS" ]; then
-        if [ "x$SAGE64" = xyes ]; then
-            echo "64 bit Open Solaris build enabled"
-            OPT="-g -O3 -m64 -Wall -Wstrict-prototypes"; export OPT
-            ./configure $EXTRAFLAGS --prefix="$SAGE_LOCAL"  --libdir="$SAGE_LOCAL/lib" \
-            --enable-unicode=ucs4 --with-gcc="gcc -m64"
-        else
-            ./configure $EXTRAFLAGS --prefix="$SAGE_LOCAL"  --libdir="$SAGE_LOCAL/lib" \
-            --enable-unicode=ucs4
-        fi
-    else
-        ./configure $EXTRAFLAGS --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib"  --enable-unicode=ucs4 \
-            CC="$CC $CFLAGS" CXX="$CXX $CXXFLAGS"
-    fi
-
+    ./configure $EXTRAFLAGS \
+        --prefix="$SAGE_LOCAL" \
+        --libdir="$SAGE_LOCAL/lib"  \
+        --enable-unicode=ucs4 \
+        CC="$CC $CFLAGS" CXX="$CXX $CXXFLAGS"
 
     if [ $? -ne 0 ]; then
         echo >&2 "Error configuring Python."
