LDFLAGS="$LDFLAGS -lpthread"
;;
+ *cygwin* )
+ CXXFLAGSPIC=
+ LDFLAGSPIC=
+ ;;
+
*)
CXXFLAGSPIC="-fPIC"
LDFLAGSPIC="-fPIC"
CFLAGSPIC="-fPIC"
;;
+ *cygwin*)
+ CFLAGSPIC=
+ ;;
+
*)
CFLAGSPIC="-fPIC"
;;
F77FLAGSO="$F77FLAGSO -funroll-loops -funroll-all-loops -fstrict-aliasing"
fi
- F77FLAGSPIC="-fPIC"
+ case "$target" in
+ *cygwin* )
+ F77FLAGSPIC=
+ ;;
+ * )
+ F77FLAGSPIC="-fPIC"
+ ;;
+ esac
+
F77LIBS="$F77LIBS -lg2c"
;;
;;
esac
;;
+ athlon* | pentium* | i386 | i486 | i586 | i686 | k6* | winchip*)
+ AC_MSG_RESULT(x86 derivate ($withcpu))
+ case "$GXX_VERSION" in
+ gcc*)
+ dnl Tune for this processor, but only in optimized mode
+ dnl (to prevent the effects of possible compiler bugs to affect
+ dnl both debug as well as optimized versions)
+ CXXFLAGSO="$CXXFLAGSO -march=$withcpu"
+ dnl Also set the mode for f77 compiler
+ F77FLAGSO="$F77FLAGSO -march=$withcpu"
+ ;;
+ esac
+ ;;
*)
AC_MSG_RESULT(none given or not recognized)
;;
dnl -------------------------------------------------------------
-dnl Check whether the gethostname() function is available. To
-dnl spice up things, some versions of cygwin have a problem in
-dnl that when you call that function on an AMD system, the FPU
-dnl is set into 64bit mode, rather than 80bit mode, and doesn't
-dnl do any long double computations any more, even though the
-dnl compiler still announces that it does through the std::limits
-dnl class. We have to check for this.
+dnl Check whether socket functions (i.e. functions using the
+dnl network) affect the numerical accuracy. To spice up things,
+dnl on some versions of cygwin (<=1.5.13), calling the windows
+dnl socket function (e.g. the functions defined in unistd.h)
+dnl will set the internal accuracy of the FPU to 64 bits (double)
+dnl instead of 80 bits. Consequently, all long double operations
+dnl are performed with double accuracy only. The compiler will
+dnl not notice this fact and still report long double limits in
+dnl the linits<>-class. We have to check for this, otherwise
+dnl some functions like the QGauss constructor will go into an
+dnl infinite loop.
dnl
-dnl Usage: DEAL_II_CHECK_GETHOSTNAME
+dnl Usage: DEAL_II_CHECK_BROKEN_SOCKETS
dnl
dnl -------------------------------------------------------------
-AC_DEFUN(DEAL_II_CHECK_GETHOSTNAME, dnl
+AC_DEFUN(DEAL_II_CHECK_BROKEN_SOCKETS, dnl
[
- AC_CHECK_FUNCS(gethostname)
-
- AC_MSG_CHECKING(for bad gethostname/FPU interaction)
+ AC_MSG_CHECKING(for bad socket functions/FPU interaction)
AC_LANG(C++)
CXXFLAGS="$CXXFLAGSG"
AC_TRY_RUN(
AC_MSG_RESULT(no)
],
[
- AC_MSG_RESULT([yes. disabling gethostname()])
- AC_DEFINE(DEAL_II_BROKEN_GETHOSTNAME, 1,
- [Define if the use of gethostname() leads to strange
+ AC_MSG_RESULT([yes. disabling socket functions])
+ AC_DEFINE(DEAL_II_BROKEN_SOCKETS, 1,
+ [Define if the use of socket functionality leads to strange
results with floating point computations on cygwin
systems.])
])
*/
#undef DEAL_II_ARRAY_CONDITIONAL_DECAY_BUG
-/* Define if the use of gethostname() leads to strange results with floating
- point computations on cygwin systems. */
-#undef DEAL_II_BROKEN_GETHOSTNAME
+/* Define if the use of socket functionality leads to strange results with
+ floating point computations on cygwin systems. */
+#undef DEAL_II_BROKEN_SOCKETS
/* Backward compatibility support for functions and classes that do not take
an explicit mapping variable, but rather use a default Q1 mapping instead
make_dependencies
make_dependencies.pl
+make_dependencies.exe
LDFLAGS="$LDFLAGS -lpthread"
;;
+ *cygwin* )
+ CXXFLAGSPIC=
+ LDFLAGSPIC=
+ ;;
+
*)
CXXFLAGSPIC="-fPIC"
LDFLAGSPIC="-fPIC"
CFLAGSPIC="-fPIC"
;;
+ *cygwin*)
+ CFLAGSPIC=
+ ;;
+
*)
CFLAGSPIC="-fPIC"
;;
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
for ac_func in gethostname
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
done
- echo "$as_me:$LINENO: checking for bad gethostname/FPU interaction" >&5
-echo $ECHO_N "checking for bad gethostname/FPU interaction... $ECHO_C" >&6
+ echo "$as_me:$LINENO: checking for bad socket functions/FPU interaction" >&5
+echo $ECHO_N "checking for bad socket functions/FPU interaction... $ECHO_C" >&6
ac_ext=cc
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
( exit $ac_status )
- echo "$as_me:$LINENO: result: yes. disabling gethostname()" >&5
-echo "${ECHO_T}yes. disabling gethostname()" >&6
+ echo "$as_me:$LINENO: result: yes. disabling socket functions" >&5
+echo "${ECHO_T}yes. disabling socket functions" >&6
cat >>confdefs.h <<\_ACEOF
-#define DEAL_II_BROKEN_GETHOSTNAME 1
+#define DEAL_II_BROKEN_SOCKETS 1
_ACEOF
F77FLAGSO="$F77FLAGSO -funroll-loops -funroll-all-loops -fstrict-aliasing"
fi
- F77FLAGSPIC="-fPIC"
+ case "$target" in
+ *cygwin* )
+ F77FLAGSPIC=
+ ;;
+ * )
+ F77FLAGSPIC="-fPIC"
+ ;;
+ esac
+
F77LIBS="$F77LIBS -lg2c"
;;
case "$target" in
*cygwin )
shared_lib_suffix=".dll"
+ cygwin_shared_lib="yes"
;;
esac
;;
esac
;;
+ athlon* | pentium* | i386 | i486 | i586 | i686 | k6* | winchip*)
+ echo "$as_me:$LINENO: result: x86 derivate ($withcpu)" >&5
+echo "${ECHO_T}x86 derivate ($withcpu)" >&6
+ case "$GXX_VERSION" in
+ gcc*)
+ CXXFLAGSO="$CXXFLAGSO -march=$withcpu"
+ F77FLAGSO="$F77FLAGSO -march=$withcpu"
+ ;;
+ esac
+ ;;
*)
echo "$as_me:$LINENO: result: none given or not recognized" >&5
echo "${ECHO_T}none given or not recognized" >&6
echo -------------------------------------------------------------
echo
+if test "x$cygwin_shared_lib" = "xyes" ; then
+ echo " Please add the line"
+ echo " export PATH=\$PATH:$DEAL2_DIR/lib"
+ echo " to your .bash_profile file so that windows will be"
+ echo " able to find the deal.II shared libraries when"
+ echo " executing your programs."
+fi
+
if test "x$doxygen_not_found" = "xyes" ; then
echo " WARNING: During configuration, no version of the doxygen"
echo " WARNING: documentation generation program could be found."
DEAL_II_CHECK_RAND_R
DEAL_II_CHECK_QUAD_DEFINE
DEAL_II_CHECK_ERROR_CODES_DEFINITION
-DEAL_II_CHECK_GETHOSTNAME
+AC_CHECK_FUNCS(gethostname)
+DEAL_II_CHECK_BROKEN_SOCKETS
case "$target" in
*cygwin )
shared_lib_suffix=".dll"
+ cygwin_shared_lib="yes"
;;
esac
echo -------------------------------------------------------------
echo
+if test "x$cygwin_shared_lib" = "xyes" ; then
+ echo " Please add the line"
+ echo " export PATH=\$PATH:$DEAL2_DIR/lib"
+ echo " to your .bash_profile file so that windows will be"
+ echo " able to find the deal.II shared libraries when"
+ echo " executing your programs."
+fi
+
if test "x$doxygen_not_found" = "xyes" ; then
echo " WARNING: During configuration, no version of the doxygen"
echo " WARNING: documentation generation program could be found."
more specific. The configuration program for
<acronym>deal.II</acronym> expects a Unix-like environment. This is
provided by the <a href="http://www.cygwin.com/">cygwin
- compiler</a>. People reported successful compilation with the
- following combination of tools:
- </p>
- <ul>
- <li> cygwin 1.3.9-1
- <li> make 3.79.1-5
- </ul>
-
- <p>
- Earlier versions of "make" caused trouble, still you should try the latest
- versions first. A look into the <a
+ system</a>. You should always use a current cygwin distribution
+ A look into the <a
href="http://www.dealii.org/mail/maillist.html">mail
- archive</a> might be advisable in case of difficulties.
+ archive</a> might be advisable in case of difficulties. There is a
+ small but growing community of <acronym>deal.II</acronym> users
+ under cygwin.
</p>
<p>
<p>
(or the place where you have installed deal.II, respectively) in the shell
- prior to execution, or add this line to <code>.bashrc</code>.
+ prior to execution, or add this line to <code>.bashrc</code> or
+ <code>.bash_profile</code>.
To disable shared libraries, run <code>./configure --disable-shared</code>
and compile <acronym>deal.II</acronym> again (with <code>make all</code>).
</p>
<h1>Installation instructions for Microsoft
- Windows 95/98/2000/NT</h1>
+ Windows 95/98/2000/NT/XP</h1>
<p>
- We have no such system to try, but we have been told that it is
- possible to use <acronym>deal.II</acronym> on Microsoft Windows
- systems as well, using either the CygWin or MingW environments
+ It is possible to install <acronym>deal.II</acronym> on Microsoft Windows
+ systems as well, using either the <a href="http://www.cygwin.com">Cygwin</a>
+ or <a href="http://www.mingw.org">MingW</a> environments
that provide most of the Unix like features for the Windows system
as well (such as ``perl'', or ``make''). You simply have to run the
``./configure'' script on the shell and follow the installation
instructions in the <a href="../readme.html" target="body">ReadMe</a>
- file.
+ file. Also, you need to include the <code>deal.II/lib</code> path in your PATH
+ environment variable (e.g. by editing your <code>.bash_profile</code>
+ file or the Windows registry).
</p>
<p>
fixes for them.
</p>
+ <p>
+ For more details, please have a look at the <a href="faq.html#windows">FAQ section</a>.
+ </p>
+
</body>
</html>
the use of shared libraries; courtesy of
<a href="http://testdrive.hp.com">testdrive.hp.com</a>);
<li>Mac OS X 10.2 with gcc 3.x (with some restrictions on
- the use of shared libraries).
+ the use of shared libraries);
+ <li><a href="http://www.cygwin.com">Cygwin/Windows</a> with
+ cygwin1.dll versions 1.5.xx and gcc 3.3 under Windows XP
+ and NT.
</ul>
Furthermore, for the following list of systems, we have collected
our experiences on separate pages:
PGCC 3.x and 4.x on x86 Linux</a>.
<li> <a href="platforms/windows.html" target="body">Microsoft
- Windows 95/98/2000/NT</a>.
+ Windows 95/98/2000/NT/XP</a>.
<li> <a href="platforms/bcc.html" target="body">Borland C++/Kylix</a>.
</ul>
</p>
</ul>
If shared libraries were built instead of static ones, then the
- suffix <code>.a</code> is replaced by <code>.so</code>
+ suffix <code>.a</code> is replaced by <code>.so</code> or
+ <code>.dll</code> (for Cygwin/Windows).
</p>
<p>
<code>--disable-shared</code>. (They are disabled by default on
those systems for which we could not make them work. This
applies to AIX, DEC Alpha stations running Linux and OSF1,
- CygWin Windows systems, and some other systems as
+ and some other systems as
well. Probably, there are simple solutions, but since we can't
regularly test on these systems, we did not try very hard. If
anyone would like to look into this, we would be pleased to
systems.
</p>
+ <li>
+ <p>
+ <code>--with-cpu=...</code>: this enables specific optimization
+ flags for your processor. Programs compiled with these options
+ might not execute on an other system, even if that system has a very
+ similar CPU (e.g. AMD and Intel processors). However, execution time
+ can be increased by up to 30 percent if this optimization is enabled.
+ </p>
+
+ <p>
+ Currently supported CPUs are <code>PowerPC64</code>, <code>i386</code>,
+ <code>i486</code>, <code>i586</code>, <code>i686</code>,
+ <code>pentium</code>, <code>pentium-mmx</code>, <code>pentiumpro</code>,
+ <code>pentium2</code>, <code>pentium3</code>, <code>pentium4</code>,
+ <code>k6</code>, <code>k6-2</code>, <code>k6-3</code>, <code>athlon</code>,
+ <code>athlon-tbird</code>, <code>athlon-4</code>, <code>athlon-xp</code>,
+ <code>athlon-mp</code>, <code>winchip-c6</code>, and <code>winchip2</code>.
+ </p>
+
+ <p>
+ Optimizations currently only work in conjunction with gcc. Without the
+ option <code>--with-cpu=xxx</code>, no cpu specific optimization is applied.
+ Furthermore, CPU specific optimization is switched on only for the compilation
+ of the optimized library versions.
+ </p>
+
<li>
<p>
<code>--with-doxygen=...</code>: usually, <code>./configure</code> is
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-1
*.ii
*.ti
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-10
*.dat
*.ii
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-11
*.dat
*.ii
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-*
*.dat
*.ii
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-*
*.dat
*.ii
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-*
*.dat
*.ii
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-16
*.ii
*.ti
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-17
*.ii
*.ti
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-2
sparsity_pattern.*
*.ii
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-3
solution.gpl
*.ii
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-4
*.ii
*.ti
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-5
*.ii
*.ti
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-6
*.ii
*.ti
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-7
*.tex
*.ii
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-8
*.ii
*.ti
-*.o *.go Makefile.dep *.gnuplot *.gmv *.eps
+*.o *.go *.exe Makefile.dep *.gnuplot *.gmv *.eps
step-9
*.ii
*.ti