[GiNaC-list] about CLN versus win32 patch

Sheplyakov Alexei varg at theor.jinr.ru
Mon Jul 31 01:03:52 CEST 2006


Hello!

On Mon, Jul 24, 2006 at 12:04:16AM +0200, Richard B. Kreckel wrote:
> Your patch didn't apply because it wasn't from CVS, so I had to apply it 
> manually.
It looks like you failed to do this properly.

I've attached patch for cln_1-1 branch.

In order to build from CVS I had to modify configure.ac and different
m4 macros, see the second attached file.

Best regards,
 Alexei.

-- 
All science is either physics or stamp collecting.

-------------- next part --------------
diff --git a/src/base/random/cl_random_from.cc b/src/base/random/cl_random_from.cc
index 0470a4e..e858473 100644
--- a/src/base/random/cl_random_from.cc
+++ b/src/base/random/cl_random_from.cc
@@ -1,4 +1,7 @@
 // random_state constructor.
+#if defined(_WIN32)
+#include <windows.h> // for GetCurrentProcessId()
+#endif
 
 // General includes.
 #include "cl_sysdep.h"
@@ -9,10 +12,6 @@ #include "cln/random.h"
 
 // Implementation.
 
-#if defined(_WIN32)
-#include <windows.h> // for GetCurrentProcessId()
-#endif
-
 #include "cl_base_config.h"
 #include "cl_low.h"
 #include <cstdlib>  // declares rand()
@@ -47,14 +46,12 @@ #endif
 #include <sys/times.h>
 extern "C" clock_t times (struct tms * buffer);
 
-namespace cln {
 inline uint32 get_seed (void)
 {
 	var struct tms tmsbuf;
 	var uint32 seed_lo = times(&tmsbuf);
 	return seed_lo + tmsbuf.tms_utime + tmsbuf.tms_stime;
 }
-}  // namespace cln
 
 #endif
 
@@ -62,14 +59,12 @@ #elif defined(_WIN32)
 #include <sys/time.h>
 #include <sys/timeb.h>
 
-namespace cln {
 inline uint32 get_seed (void)
 {
 	struct timeb timebuf;
 	ftime(&timebuf);
 	return cln::highlow32(timebuf.time, (long)(timebuf.millitm)*1000);
 }
-}  // namespace cln
 
 #endif
 
-------------- next part --------------
diff --git a/configure.ac b/configure.ac
index a47ef2e..c2e0f7c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,6 +69,14 @@ dnl           check for build configurat
 dnl
 PACKAGE=cln
                       dnl libtool wants PACKAGE
+case $host_os in
+	*mingw32*)
+	AC_LIBTOOL_WIN32_DLL
+	;;
+	*)
+	;;
+esac          
+                      dnl convince libtool to build win32 dll
 AC_PROG_LIBTOOL
                       dnl sets variable LIBTOOL
 
@@ -94,12 +102,12 @@ CL_VERSION_MAJOR=1
 CL_VERSION_MINOR=1
 CL_VERSION_PATCHLEVEL=12
 dnl release version for cln/config.h, so it can be tested by the preprocessor
-AC_DEFINE_UNQUOTED(CL_VERSION_MAJOR, $CL_VERSION_MAJOR)
-AC_DEFINE_UNQUOTED(CL_VERSION_MINOR, $CL_VERSION_MINOR)
-AC_DEFINE_UNQUOTED(CL_VERSION_PATCHLEVEL, $CL_VERSION_PATCHLEVEL)
+AC_DEFINE_UNQUOTED(CL_VERSION_MAJOR, $CL_VERSION_MAJOR, [CLN major version])
+AC_DEFINE_UNQUOTED(CL_VERSION_MINOR, $CL_VERSION_MINOR, [CLN minor version])
+AC_DEFINE_UNQUOTED(CL_VERSION_PATCHLEVEL, $CL_VERSION_PATCHLEVEL, [CLN patchlevel version])
 dnl concatenated release version
 CL_VERSION=$CL_VERSION_MAJOR.$CL_VERSION_MINOR.$CL_VERSION_PATCHLEVEL
-AC_DEFINE_UNQUOTED(CL_VERSION, $CL_VERSION)
+AC_DEFINE_UNQUOTED(CL_VERSION, $CL_VERSION, [CLN version])
 AC_SUBST(CL_VERSION)
 
 dnl
@@ -151,8 +159,10 @@ CL_MACHINE([floating-point types and beh
 dnl
 dnl           interfacing to GNU gmp (must be at least version 3)
 dnl
-AC_ARG_WITH(gmp, [  --with-gmp              use external fast low-level functions from GNU MP 3.
-                          [default=yes]], ,with_gmp="yes")
+AC_ARG_WITH(gmp, AS_HELP_STRING([--with-gmp], 
+	[use external fast low-level functions from GNU MP 3 (default: yes).]),
+	with_gmp="$withval",
+	with_gmp="yes")
 if test "$with_gmp" = yes; then
   CL_GMP_H_VERSION
   if test "$cl_cv_new_gmp_h" = no; then with_gmp="no"; fi
@@ -163,7 +173,7 @@ if test "$with_gmp" = yes; then
 fi
 if test "$with_gmp" = yes; then
   CL_GMP_SET_UINTD
-  AC_DEFINE(CL_USE_GMP)
+  AC_DEFINE(CL_USE_GMP, ,[Define if GNU MP library is available])
 else
   AC_MSG_WARN([disabling external GNU MP library])
 fi
diff --git a/m4/c++-constructors.m4 b/m4/c++-constructors.m4
index 2eb9889..48df183 100644
--- a/m4/c++-constructors.m4
+++ b/m4/c++-constructors.m4
@@ -37,7 +37,7 @@ rm -f conftest*
 ])
 if test "$cl_cv_cplusplus_ctorprefix" '!=' unknown; then
   ac_value='"'"$cl_cv_cplusplus_ctorprefix"'"'
-  AC_DEFINE_UNQUOTED(CL_GLOBAL_CONSTRUCTOR_PREFIX,$ac_value)
+  AC_DEFINE_UNQUOTED(CL_GLOBAL_CONSTRUCTOR_PREFIX,$ac_value, [Global ctor prefix])
 AC_CACHE_CHECK(for the global destructors function prefix,
 cl_cv_cplusplus_dtorprefix, [
 cat > conftest.cc << EOF
@@ -63,7 +63,7 @@ rm -f conftest*
 ])
   if test "$cl_cv_cplusplus_dtorprefix" '!=' none; then
     ac_value='"'"$cl_cv_cplusplus_ctorprefix"'"'
-    AC_DEFINE_UNQUOTED(CL_GLOBAL_DESTRUCTOR_PREFIX,$ac_value)
+    AC_DEFINE_UNQUOTED(CL_GLOBAL_DESTRUCTOR_PREFIX,$ac_value, [Global dtor prefix])
   fi
 dnl Check whether the global constructors/destructors functions are file-scope
 dnl only by default. This is the case in egcs-1.1.2 or newer.
@@ -93,7 +93,7 @@ fi
 rm -f conftest*
 ])
 if test "$cl_cv_cplusplus_ctorexport" = yes; then
-  AC_DEFINE(CL_NEED_GLOBALIZE_CTORDTOR)
+  AC_DEFINE(CL_NEED_GLOBALIZE_CTORDTOR, ,[Define if global ctor/dtors are file-scope by default])
 fi
 fi
 fi
diff --git a/m4/general.m4 b/m4/general.m4
index 0c550af..3a0b403 100644
--- a/m4/general.m4
+++ b/m4/general.m4
@@ -129,6 +129,64 @@ AC_CANONICAL_HOST
 
 AC_DEFUN([CL_CANONICAL_HOST_CPU],
 [AC_REQUIRE([CL_CANONICAL_HOST])AC_REQUIRE([AC_PROG_CC])
+AH_TOP([
+#ifndef _CL_CONFIG_H
+#define _CL_CONFIG_H
+/* CLN's idea about CPU model */
+#ifndef __i386__
+#undef __i386__
+#endif
+#ifndef __m68k__
+#undef __m68k__
+#endif
+/* NB: GCC def's __mips__ both on big-endian and little-endian systems. */
+#ifndef __mips__
+#undef __mips__
+#endif
+#ifndef __mipsel__
+#undef __mipsel__
+#endif
+#ifndef __mips64__
+#undef __mips64__
+#endif
+#ifndef __sparc__
+#undef __sparc__
+#endif
+#ifndef __sparc64__
+#undef __sparc64__
+#endif
+#ifndef __alpha__
+#undef __alpha__
+#endif
+#ifndef __hppa__
+#undef __hppa__
+#endif
+#ifndef __arm__
+#undef __arm__
+#endif
+#ifndef __rs6000__
+#undef __rs6000__
+#endif
+#ifndef __m88k__
+#undef __m88k__
+#endif
+#ifndef __convex__
+#undef __convex__
+#endif
+#ifndef __ia64__
+#undef __ia64__
+#endif
+#ifndef __x86_64__
+#undef __x86_64__
+#endif
+#ifndef __s390__
+#undef __s390__
+#endif
+])
+AH_BOTTOM([
+#endif /* _CL_CONFIG_H */
+])
+
 case "$host_cpu" in
 changequote(,)dnl
   i[4567]86 )
@@ -182,6 +240,7 @@ else
 fi
     ;;
 esac
+
 dnl was AC_DEFINE_UNQUOTED(__${host_cpu}__) but KAI C++ 3.2d doesn't like this
 cat >> confdefs.h <<EOF
 #ifndef __${host_cpu}__
diff --git a/m4/gmp.m4 b/m4/gmp.m4
index 93bdc5d..5fc110b 100644
--- a/m4/gmp.m4
+++ b/m4/gmp.m4
@@ -62,5 +62,5 @@ #endif
     AC_MSG_ERROR([Don't know which C-type has sizeof $gmp_retval.]),
     AC_MSG_ERROR([cross-compiling - cannot determine]))
 ])
-AC_DEFINE_UNQUOTED($cl_gmp_demands)
+AC_DEFINE_UNQUOTED($cl_gmp_demands, ,[sizeof(uintD) == sizeof(mp_limb_t)])
 ])
diff --git a/m4/longdouble.m4 b/m4/longdouble.m4
index 069de22..72cecce 100644
--- a/m4/longdouble.m4
+++ b/m4/longdouble.m4
@@ -23,6 +23,6 @@ AC_TRY_COMPILE([
   ], , cl_cv_c_longdouble=yes, cl_cv_c_longdouble=no)])
 ])
 if test $cl_cv_c_longdouble = yes; then
-  AC_DEFINE(HAVE_LONGDOUBLE)
+  AC_DEFINE(HAVE_LONGDOUBLE, ,[Define if compiler support long double type])
 fi
 ])
diff --git a/m4/param.m4 b/m4/param.m4
index 2a6b07d..21a7b84 100644
--- a/m4/param.m4
+++ b/m4/param.m4
@@ -31,9 +31,9 @@ CC=`echo "$CC " | sed -e 's/-O //g'`
 fi
 AC_TRY_EVAL(ac_link)
 CC="$ORIGCC"
-if test -s conftest; then
+if test -s conftest${ac_exeext}; then
   echo "creating $cl_machine_file_h"
-  ./conftest > conftest.h
+  ./conftest${ac_exeext} > conftest.h
   if cmp -s "$cl_machine_file_h" conftest.h 2>/dev/null; then
     # The file exists and we would not be changing it
     rm -f conftest.h
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 827 bytes
Desc: Digital signature
Url : http://www.cebix.net/pipermail/ginac-list/attachments/20060731/ec4b0906/attachment.pgp


More information about the GiNaC-list mailing list