Use check for 'long long' to determine type for zint.
authorAdam Dickmeiss <adam@indexdata.dk>
Tue, 10 Oct 2006 14:45:41 +0000 (14:45 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Tue, 10 Oct 2006 14:45:41 +0000 (14:45 +0000)
configure.ac
idzebra-config-2.0.in
include/idzebra/util.h

index f2a9e5d..83c1658 100644 (file)
@@ -1,5 +1,5 @@
 dnl Zebra, Index Data ApS, 1995-2006
-dnl $Id: configure.ac,v 1.31 2006-10-09 22:13:06 adam Exp $
+dnl $Id: configure.ac,v 1.32 2006-10-10 14:45:41 adam Exp $
 dnl
 AC_PREREQ(2.59)
 AC_INIT([idzebra],[2.0.3],[adam@indexdata.dk])
@@ -17,6 +17,7 @@ dnl ------ Substitutions
 AC_SUBST(TCL_INCLUDE)
 AC_SUBST(TCL_LIB)
 AC_SUBST(READLINE_LIBS)
+AC_SUBST(ZEBRA_CFLAGS)
 dnl
 dnl ------ Checking programs
 AC_PROG_CC
@@ -278,7 +279,8 @@ else
 fi
 AC_CHECK_SIZEOF([off_t])
 AC_CHECK_SIZEOF([long long])
-AC_CHECK_SIZEOF([long])
+ZEBRA_CFLAGS="-DZEBRA_ZINT=${ac_cv_sizeof_long_long}"
+AC_DEFINE_UNQUOTED(ZEBRA_ZINT,${ac_cv_sizeof_long_long})
 dnl ------ Modules
 AC_SUBST(SHARED_MODULE_LA)
 SHARED_MODULE_LA=""
index 8831eb5..29c754e 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id: idzebra-config-2.0.in,v 1.1 2006-08-14 12:18:46 adam Exp $
+# $Id: idzebra-config-2.0.in,v 1.2 2006-10-10 14:45:42 adam Exp $
 version=@VERSION@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
@@ -85,7 +85,7 @@ while test $# -gt 0; do
     shift
 done
 
-IDZEBRAINC="@YAZINC@"
+IDZEBRAINC="@ZEBRA_CFLAGS@ @YAZINC@"
 
 if test "$echo_source" = "yes"; then
     IDZEBRALIB="-L${idzebra_build_root}/index/.libs -lidzebra${package_suffix}"
index 5952655..2abf9cf 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: util.h,v 1.8 2006-08-14 10:40:14 adam Exp $
+/* $Id: util.h,v 1.9 2006-10-10 14:45:42 adam Exp $
    Copyright (C) 1995-2006
    Index Data ApS
 
@@ -42,22 +42,27 @@ YAZ_BEGIN_CDECL
  * number of occurrences etc. It is a "large" integer and is usually
  * 64-bit on newer architectures.
  */
-#ifdef __GNUC__
-typedef long long int zint;
-#define ZINT_FORMAT "%lld"
-#define ZINT_FORMAT0 "lld"
-#else
 #ifdef WIN32
 typedef __int64 zint;
-#define ZINT_FORMAT "%I64d"
 #define ZINT_FORMAT0 "I64d"
 #else
+
+#ifndef ZEBRA_ZINT
+#error ZEBRA_ZINT undefined. idzebra-config not in use?
+#endif
+
+#if ZEBRA_ZINT > 0
+typedef long long int zint;
+#define ZINT_FORMAT0 "lld"
+#else
 typedef long zint;
-#define ZINT_FORMAT "%ld"
 #define ZINT_FORMAT0 "ld"
 #endif
+
 #endif
 
+#define ZINT_FORMAT "%" ZINT_FORMAT0
+
 /** \var typedef ZEBRA_RES
  * \brief Common return type for Zebra API
  *