--- ccp4-6.0.99e.orig/configure	2008-07-31 10:37:22.000000000 -0700
+++ ccp4-6.0.99e/configure	2008-07-31 10:39:18.000000000 -0700
@@ -643,45 +643,45 @@
 #     echo "! Beware -- the $system installation isn't properly tested." ; }
 syswarn='echo; echo "! Beware -- the $system installation is not properly tested."'
 
-if test -z "$onlylibs" ; then 
-   for i in CCP4_SCR BINSORT_SCR; do
-     if ( eval test -d \$$i || eval mkdir -p \$$i ) ; then :
-     else
-       eval echo "! No directory \$$i and can\'t create it."
-       echo "  Check the value of $i."
-       badvar=1
-     fi
-   done
-
-   for i in libdir bindir includedir; do
-     if ( eval test -d \$$i || eval mkdir -p \$$i ) ; then :
-     else
-       eval echo "! No directory \$$i and can\'t create it."
-       echo "  Check the argument of --$i."
-       badvar=1
-     fi
-   done
-
-   for i in $dotsrc $dotunsupp $dotunsuppsrc $dotdeprec $dotdeprecsrc ./lib ./lib/src ./lib/data ./ccp4i/etc/unix $mosflmdir/lib $mosflmdir/bin $mosflmdir/cbf/lib ; do
-     if test -d $i || mkdir $i; then :
-     else
-       eval echo "! No directory $i and can\'t create it."
-       badvar=1
-     fi
-   done
-else
-   # Kludge to fool the "Makefile" target in the top-level CCP4
-   # Makefile into not trying to remake src/Makefile.in
-   for i in $srcdir/src $srcdir/lib/src ; do
-     if test -d $i || mkdir $i; then
-       if ! test -f $i/Makefile.in ; then
-         echo
-         echo "onlylibs: making dummy file $i/Makefile.in"
-	 touch $i/Makefile.in
-       fi
-     fi
-   done
-fi
+#if test -z "$onlylibs" ; then 
+#   for i in CCP4_SCR BINSORT_SCR; do
+#     if ( eval test -d \$$i || eval mkdir -p \$$i ) ; then :
+#     else
+#       eval echo "! No directory \$$i and can\'t create it."
+#       echo "  Check the value of $i."
+#       badvar=1
+#     fi
+#   done
+#
+#   for i in libdir bindir includedir; do
+#     if ( eval test -d \$$i || eval mkdir -p \$$i ) ; then :
+#     else
+#       eval echo "! No directory \$$i and can\'t create it."
+#       echo "  Check the argument of --$i."
+#       badvar=1
+#     fi
+#   done
+#
+#   for i in $dotsrc $dotunsupp $dotunsuppsrc $dotdeprec $dotdeprecsrc ./lib ./lib/src ./lib/data ./ccp4i/etc/unix $mosflmdir/lib $mosflmdir/bin $mosflmdir/cbf/lib ; do
+#     if test -d $i || mkdir $i; then :
+#     else
+#       eval echo "! No directory $i and can\'t create it."
+#       badvar=1
+#     fi
+#   done
+#else
+#   # Kludge to fool the "Makefile" target in the top-level CCP4
+#   # Makefile into not trying to remake src/Makefile.in
+#   for i in $srcdir/src $srcdir/lib/src ; do
+#     if test -d $i || mkdir $i; then
+#       if ! test -f $i/Makefile.in ; then
+#         echo
+#         echo "onlylibs: making dummy file $i/Makefile.in"
+#	 touch $i/Makefile.in
+#       fi
+#     fi
+#   done
+#fi
 
 ### sanity checks
 
