Updated version numbers.
authorlindahl <lindahl>
Mon, 11 Feb 2002 21:08:02 +0000 (21:08 +0000)
committerlindahl <lindahl>
Mon, 11 Feb 2002 21:08:02 +0000 (21:08 +0000)
Introduced a check for inline assembly.

INSTALL
README
configure.ac
src/gmxlib/mkinl.c
src/gmxlib/mkinl_declarations.c
src/gmxlib/mkinl_interactions.c
src/mdlib/pme.c

diff --git a/INSTALL b/INSTALL
index a1f416eb421fb3151b6019d08b49fd8682aeecd3..c55d5ffc1cc9faabfa7dbe08bff5b8346a9b219d 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-                    Welcome to GROMACS 3.0!
+                    Welcome to GROMACS 3.1!
 
 Note: Detailed, step-by-step installation instructions
 are available on the website http://www.gromacs.org .
@@ -11,8 +11,8 @@ time you install GROMACS - our configuration script will check it!
 
 * SHORT INSTRUCTIONS FOR THE IMPATIENT:
 
-From version 3.0, the GROMACS compile and install procedure has 
-been changed to simplify things for you. We now use a standard 
+Starting with version 3.0, the GROMACS compile and install procedure 
+was changed to simplify things for you. We now use a standard 
 autoconf script and makefiles created by automake, like most 
 GNU programs. This means your normal installation actions are 
 limited to:
diff --git a/README b/README
index b95e45584eb8a8567bbea87219a46f1db492d1de..873ca331fe05894bd86554d573cbb89e49ad7a33 100644 (file)
--- a/README
+++ b/README
@@ -1,9 +1,11 @@
 
                Welcome to the official version of GROMACS!
 
-Starting with version 3.0, a lot of things have changed. Not only is the 
-code significantly faster, but we also have a completely new installation
-process and license the package under the GPL (see the COPYING file).
+There are no significant changes to the installation or use between version 
+3.1 and 3.0, so if you're already used to 3.0 you can just go ahead and update.
+A lot of things changed with version 3.0, though. Not only is the code 
+significantly faster, but we also introduced a completely new installation
+process and licensed the package under the GPL (see the COPYING file).
 
 If you are familiar with unix, it should be fairly trivial to compile and
 install GROMACS. Installation instructions are available in the INSTALL file,
index b93cace1db7e70302ec0ebbe494ae4d8502ec42b..5684dbf31348312649b9477f728789f71d33bdb9 100644 (file)
@@ -256,7 +256,7 @@ fi
 # fail on platforms where MPI executables can only be run through a batchqueue.
 
 if test "$enable_mpi" = "yes"; then
-  AC_CHECK_PROGS(MPICC, mpxlc mpicc mpcc hcc, $CC)     
+  AC_CHECK_PROGS(MPICC, mpxlc mpicc mpcc hcc, $CC)
 # now change the normal cc to the MPI one - see the comment above.
   CC=$MPICC
   AC_MSG_CHECKING([whether the MPI cc command works]) # be paranoid
@@ -266,8 +266,8 @@ if test "$enable_mpi" = "yes"; then
 fi
 
 if test "$enable_fortran" = "yes"; then
-  AC_F77_LIBRARY_LDFLAGS  
-  AC_F77_WRAPPERS 
+  AC_F77_LIBRARY_LDFLAGS
+  AC_F77_WRAPPERS
 fi
 
 AC_PROG_CPP
@@ -584,6 +584,15 @@ AC_C_INLINE
 
 
 
+case "${host_cpu}" in
+   i?86) 
+      # disable x86trunc if inlined assembly doesnt work 
+      AC_MSG_CHECKING(if the C compiler supports inline assembly)
+      AC_TRY_LINK([],[float f;int i; asm("fld %1\nfistpl %0\n" : "=m" (*&i) : "f" (f));],[AC_MSG_RESULT(yes)
+AC_DEFINE(USE_X86TRUNC,,[Disable inline assembly truncation for x86 cpu])],[AC_MSG_RESULT(no)])
+        ;;     
+   *) enable_x86_asm=no ;;
+esac
 
 
 
index f7dc7f17195a285c119038551312f8dd266d2ac2..122702a6279fa50b46e57c1e253637bd2d0b07af 100644 (file)
@@ -240,7 +240,7 @@ void make_func(char *appendname)
   /* start the loop over i particles (neighborlists) */    
   outer_loop();
   /* The innerloop creation is called from the outerloop creation */
-#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && !defined DISABLE_X86TRUNC)
+#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && defined USE_X86TRUNC)
   if(bC && DO_TAB && DO_FORCE)
     strcat(codebuffer,"asm(\"fldcw %%0\" : : \"m\" (*&x86_cwsave));\n");
 #endif
@@ -272,7 +272,7 @@ int main(int argc,char *argv[])
          (prec == 8) ? "double" : "single",
          bC ? "C" : "Fortran 77",fn);
 
-#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && !defined DISABLE_X86TRUNC)
+#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && defined USE_X86TRUNC)
   fprintf(stderr,">>> Using fast inline assembly gcc/x86 truncation. Since we are changing\n"
                 "    the control word this might affect the numerical result slightly.\n");
 #endif  
index a61e81f7cf371afd0a81eaa138e21c858cb3ca61..2e8540e04a8fff909dc14c725f51a1ff64354a0c 100644 (file)
@@ -90,7 +90,7 @@ void file_header(void)
       init_block_data();
   } 
 
-#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && !defined DISABLE_X86TRUNC)
+#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && defined USE_X86TRUNC)
   /* This is a very fast inline assembly truncation routine
    * The slow step an most x86 chips is to store and restore
    * the control word when we want to do truncation. Here it
@@ -672,7 +672,7 @@ void func_init_vars()
    * (But for MNO solvent we have to do it)
    */
 
-#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && !defined DISABLE_X86TRUNC)
+#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && defined USE_X86TRUNC)
   /* store cw */
   if(bC && DO_TAB) {
     strcat(codebuffer,"asm(\"fnstcw %%0\" : \"=m\" (*&x86_cwsave));\n");
index 1277330befede247fd146df87a3863b1140a2392..b222d35f6c5ca6d8cff9e4b666a0a2e5a68fac7e 100644 (file)
@@ -122,7 +122,7 @@ int update_inner_forces(int i,int j)
 int table_index(char *rin)
 {
     assign("rt",rin);
-#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && !defined DISABLE_X86TRUNC)
+#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && defined USE_X86TRUNC)
     if(bC) 
       code("x86trunc(rt,n0);");
     else
index f07bced5a8067bbdf3166067cff6665f51be734e..82c03b08cd72ebf6ffa6098c3a7de33a44ed1bd9 100644 (file)
@@ -115,7 +115,7 @@ void calc_idx(int natoms,matrix recipbox,
   int  *idxptr,tix,tiy,tiz;
   real *xptr,tx,ty,tz;
   real rxx,ryx,ryy,rzx,rzy,rzz;
-#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && !defined DISABLE_X86TRUNC)
+#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && defined USE_X86TRUNC)
   int x86_cw,x86_cwsave;
 
   asm("fnstcw %0" : "=m" (*&x86_cwsave));
@@ -140,7 +140,7 @@ void calc_idx(int natoms,matrix recipbox,
     ty = ny + ny * (                  xptr[YY] * ryy + xptr[ZZ] * rzy );
     tz = nz + nz * (                                   xptr[ZZ] * rzz );
     
-#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && !defined DISABLE_X86TRUNC)
+#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && defined USE_X86TRUNC)
     x86trunc(tx,tix);
     x86trunc(ty,tiy);
     x86trunc(tz,tiz);
@@ -163,7 +163,7 @@ void calc_idx(int natoms,matrix recipbox,
     range_check(idxptr[ZZ],nz);
 #endif
   }  
-#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && !defined DISABLE_X86TRUNC)  
+#if (defined __GNUC__ && (defined i386 || defined __386__) && !defined DOUBLE && defined USE_X86TRUNC)  
   asm("fldcw %0" : : "m" (*&x86_cwsave));
 #endif