packages feed

integer-gmp 1.0.0.1 → 1.1

raw patch · 18 files changed

Files

− Setup.hs
@@ -1,6 +0,0 @@-module Main (main) where--import Distribution.Simple--main :: IO ()-main = defaultMainWithHooks autoconfUserHooks
− aclocal.m4
@@ -1,44 +0,0 @@--dnl---------------------------------------------------------------------dnl * Check whether this machine has gmp/gmp3 installed-dnl----------------------------------------------------------------------AC_DEFUN([LOOK_FOR_GMP_LIB],[-    if test "$HaveFrameworkGMP" = "NO"-    then-        AC_CHECK_LIB([gmp],  [__gmpz_powm],-                     [HaveLibGmp=YES; GMP_LIBS=gmp])-        if test "$HaveLibGmp" = "NO"-        then-            AC_CHECK_LIB([gmp3], [__gmpz_powm],-                         [HaveLibGmp=YES; GMP_LIBS=gmp3])-        fi-        if test "$HaveLibGmp" = "YES"-        then-            AC_CHECK_LIB([$GMP_LIBS], [__gmpz_powm_sec],-                         [HaveSecurePowm=1])-        fi-    fi-])--dnl---------------------------------------------------------------------dnl * Mac OS X only: check for GMP.framework-dnl----------------------------------------------------------------------AC_DEFUN([LOOK_FOR_GMP_FRAMEWORK],[-    if test "$HaveLibGmp" = "NO"-    then-        case $target_os in-        darwin*)-            AC_MSG_CHECKING([for GMP.framework])-            save_libs="$LIBS"-            LIBS="-framework GMP"-            AC_TRY_LINK_FUNC(__gmpz_powm_sec,-                             [HaveFrameworkGMP=YES; GMP_FRAMEWORK=GMP])-            LIBS="$save_libs"-            AC_MSG_RESULT([$HaveFrameworkGMP])-            ;;-        esac-    fi-])-
− cbits/wrappers.c
@@ -1,832 +0,0 @@-/*- * `integer-gmp` GMP FFI wrappers- *- * Copyright (c) 2014, Herbert Valerio Riedel <hvr@gnu.org>- *- * BSD3 licensed, see ../LICENSE file for details- *- */--#define _ISOC99_SOURCE--#include "HsFFI.h"-#include "MachDeps.h"--#include <assert.h>-#include <stdbool.h>-#include <stdlib.h>-#include <stdint.h>-#include <string.h>-#include <math.h>-#include <float.h>-#include <stdio.h>--#include <gmp.h>---// GMP 4.x compatibility-#if !defined(__GNU_MP_VERSION)-# error __GNU_MP_VERSION not defined-#elif __GNU_MP_VERSION < 4-# error need GMP 4.0 or later-#elif __GNU_MP_VERSION < 5-typedef unsigned long int mp_bitcnt_t;-#endif--#if (GMP_NUMB_BITS) != (GMP_LIMB_BITS)-# error GMP_NUMB_BITS != GMP_LIMB_BITS not supported-#endif--#if (WORD_SIZE_IN_BITS) != (GMP_LIMB_BITS)-# error WORD_SIZE_IN_BITS != GMP_LIMB_BITS not supported-#endif--// sanity check-#if (SIZEOF_HSWORD*8) != WORD_SIZE_IN_BITS-# error (SIZEOF_HSWORD*8) != WORD_SIZE_IN_BITS-#endif--// Turn a (const) {xp,xn} pair into static initializer-#define CONST_MPZ_INIT(xp,xn) \-  {{ ._mp_alloc = 0, ._mp_size  = (xn), ._mp_d = (mp_limb_t*)(xp) }}--// Test if {sp,sn} represents a zero value-static inline int-mp_limb_zero_p(const mp_limb_t sp[], mp_size_t sn)-{-  return !sn || ((sn == 1 || sn == -1) && !sp[0]);-}--static inline mp_size_t-mp_size_abs(const mp_size_t x)-{-  return x>=0 ? x : -x;-}--static inline mp_size_t-mp_size_min(const mp_size_t x, const mp_size_t y)-{-  return x<y ? x : y;-}--static inline mp_size_t-mp_size_minabs(const mp_size_t x, const mp_size_t y)-{-  return mp_size_min(mp_size_abs(x), mp_size_abs(y));-}--/* Perform arithmetic right shift on MPNs (multi-precision naturals)- *- * pre-conditions:- *  - 0 < count < sn*GMP_NUMB_BITS- *  - rn = sn - floor(count / GMP_NUMB_BITS)- *  - sn > 0- *- * write {sp,sn} right-shifted by count bits into {rp,rn}- *- * return value: most-significant limb stored in {rp,rn} result- */-mp_limb_t-integer_gmp_mpn_rshift (mp_limb_t rp[], const mp_limb_t sp[], mp_size_t sn,-                        mp_bitcnt_t count)-{-  const mp_size_t    limb_shift = count / GMP_NUMB_BITS;-  const unsigned int bit_shift  = count % GMP_NUMB_BITS;-  const mp_size_t    rn         = sn - limb_shift;--  if (bit_shift)-    mpn_rshift(rp, &sp[limb_shift], rn, bit_shift);-  else-    memcpy(rp, &sp[limb_shift], rn*sizeof(mp_limb_t));--  return rp[rn-1];-}--/* Twos-complement version of 'integer_gmp_mpn_rshift' for performing- * arithmetic right shifts on "negative" MPNs.- *- * Same pre-conditions as 'integer_gmp_mpn_rshift'- *- * This variant is needed to operate on MPNs interpreted as negative- * numbers, which require "rounding" towards minus infinity iff a- * non-zero bit is shifted out.- */-mp_limb_t-integer_gmp_mpn_rshift_2c (mp_limb_t rp[], const mp_limb_t sp[],-                           const mp_size_t sn, const mp_bitcnt_t count)-{-  const mp_size_t    limb_shift = count / GMP_NUMB_BITS;-  const unsigned int bit_shift  = count % GMP_NUMB_BITS;-  const mp_size_t    rn         = sn - limb_shift;--  // whether non-zero bits were shifted out-  bool nz_shift_out = false;--  if (bit_shift) {-    if (mpn_rshift(rp, &sp[limb_shift], rn, bit_shift))-      nz_shift_out = true;-  } else-    memcpy(rp, &sp[limb_shift], rn*sizeof(mp_limb_t));--  if (!nz_shift_out)-    for (unsigned i = 0; i < limb_shift; i++)-      if (sp[i]) {-        nz_shift_out = true;-        break;-      }--  // round if non-zero bits were shifted out-  if (nz_shift_out)-    if (mpn_add_1(rp, rp, rn, 1))-      abort(); /* should never happen */--  return rp[rn-1];-}--/* Perform left-shift operation on MPN- *- * pre-conditions:- *  - 0 < count- *  - rn = sn + ceil(count / GMP_NUMB_BITS)- *  - sn > 0- *- * return value: most-significant limb stored in {rp,rn} result- */-mp_limb_t-integer_gmp_mpn_lshift (mp_limb_t rp[], const mp_limb_t sp[],-                        const mp_size_t sn, const mp_bitcnt_t count)-{-  const mp_size_t    limb_shift = count / GMP_NUMB_BITS;-  const unsigned int bit_shift  = count % GMP_NUMB_BITS;-  const mp_size_t    rn0        = sn + limb_shift;--  memset(rp, 0, limb_shift*sizeof(mp_limb_t));-  if (bit_shift) {-    const mp_limb_t msl = mpn_lshift(&rp[limb_shift], sp, sn, bit_shift);-    rp[rn0] = msl;-    return msl;-  } else {-    memcpy(&rp[limb_shift], sp, sn*sizeof(mp_limb_t));-    return rp[rn0-1];-  }-}--/* Convert bignum to a `double`, truncating if necessary- * (i.e. rounding towards zero).- *- * sign of mp_size_t argument controls sign of converted double- */-HsDouble-integer_gmp_mpn_get_d (const mp_limb_t sp[], const mp_size_t sn,-                       const HsInt exponent)-{-  if (mp_limb_zero_p(sp, sn))-    return 0.0;--  const mpz_t mpz = CONST_MPZ_INIT(sp, sn);--  if (!exponent)-    return mpz_get_d(mpz);--  long e = 0;-  double d = mpz_get_d_2exp (&e, mpz);--  // TODO: over/underflow handling?-  return ldexp(d, e+exponent);-}--mp_limb_t-integer_gmp_gcd_word(const mp_limb_t x, const mp_limb_t y)-{-  if (!x) return y;-  if (!y) return x;--  return mpn_gcd_1(&x, 1, y);-}--mp_limb_t-integer_gmp_mpn_gcd_1(const mp_limb_t x[], const mp_size_t xn,-                      const mp_limb_t y)-{-  assert (xn > 0);-  assert (xn == 1 || y != 0);--  if (xn == 1)-    return integer_gmp_gcd_word(x[0], y);--  return mpn_gcd_1(x, xn, y);-}---mp_size_t-integer_gmp_mpn_gcd(mp_limb_t r[],-                    const mp_limb_t x0[], const mp_size_t xn,-                    const mp_limb_t y0[], const mp_size_t yn)-{-  assert (xn >= yn);-  assert (yn > 0);-  assert (xn == yn || yn > 1 || y0[0] != 0);-  /* post-condition: rn <= xn */--  if (yn == 1) {-    if (y0[0]) {-      r[0] = integer_gmp_mpn_gcd_1(x0, xn, y0[0]);-      return 1;-    } else { /* {y0,yn} == 0 */-      assert (xn==yn); /* NB: redundant assertion */-      memcpy(r, x0, xn*sizeof(mp_limb_t));-      return xn;-    }-  } else {-    // mpn_gcd() seems to require non-trivial normalization of its-    // input arguments (which does not seem to be documented anywhere,-    // see source of mpz_gcd() for more details), so we resort to just-    // use mpz_gcd() which does the tiresome normalization for us at-    // the cost of a few additional temporary buffer allocations in-    // C-land.--    const mpz_t op1 = CONST_MPZ_INIT(x0, xn);-    const mpz_t op2 = CONST_MPZ_INIT(y0, yn);--    mpz_t rop;-    mpz_init (rop);--    mpz_gcd(rop, op1, op2);--    const mp_size_t rn = rop[0]._mp_size;-    assert(rn > 0);-    assert(rn <= xn);--    /* the allocation/memcpy of the result can be neglectable since-       mpz_gcd() already has to allocate other temporary buffers-       anyway */-    memcpy(r, rop[0]._mp_d, rn*sizeof(mp_limb_t));--    mpz_clear(rop);--    return rn;-  }-}--/* wraps mpz_gcdext()- *- * Set g to the greatest common divisor of x and y, and in addition- * set s and t to coefficients satisfying x*s + y*t = g.- *- * The {gp,gn} array is zero-padded (as otherwise 'gn' can't be- * reconstructed).- *- * g must have space for exactly gn=min(xn,yn) limbs.- * s must have space for at least xn limbs.- *- * return value: signed 'sn' of {sp,sn}- */-mp_size_t-integer_gmp_gcdext(mp_limb_t s0[], mp_limb_t g0[],-                   const mp_limb_t x0[], const mp_size_t xn,-                   const mp_limb_t y0[], const mp_size_t yn)-{-  const mp_size_t gn0 = mp_size_minabs(xn, yn);-  const mpz_t x = CONST_MPZ_INIT(x0, mp_limb_zero_p(x0,xn) ? 0 : xn);-  const mpz_t y = CONST_MPZ_INIT(y0, mp_limb_zero_p(y0,yn) ? 0 : yn);--  mpz_t g, s;-  mpz_init (g);-  mpz_init (s);--  mpz_gcdext (g, s, NULL, x, y);--  const mp_size_t gn = g[0]._mp_size;-  assert(0 <= gn && gn <= gn0);-  memset(g0, 0, gn0*sizeof(mp_limb_t));-  memcpy(g0, g[0]._mp_d, gn*sizeof(mp_limb_t));-  mpz_clear (g);--  const mp_size_t ssn = s[0]._mp_size;-  const mp_size_t sn  = mp_size_abs(ssn);-  assert(sn <= xn);-  memcpy(s0, s[0]._mp_d, sn*sizeof(mp_limb_t));-  mpz_clear (s);--  if (!sn) {-    s0[0] = 0;-    return 1;-  }--  return ssn;-}--/* Truncating (i.e. rounded towards zero) integer division-quotient of MPN */-void-integer_gmp_mpn_tdiv_q (mp_limb_t q[],-                        const mp_limb_t n[], const mp_size_t nn,-                        const mp_limb_t d[], const mp_size_t dn)-{-  /* qn = 1+nn-dn; rn = dn */-  assert(nn>=dn);--  if (dn > 128) {-    // Use temporary heap allocated throw-away buffer for MPNs larger-    // than 1KiB for 64bit-sized limbs (larger than 512bytes for-    // 32bit-sized limbs)-    mp_limb_t *const r = malloc(dn*sizeof(mp_limb_t));-    mpn_tdiv_qr(q, r, 0, n, nn, d, dn);-    free (r);-  } else { // allocate smaller arrays on the stack-    mp_limb_t r[dn];-    mpn_tdiv_qr(q, r, 0, n, nn, d, dn);-  }-}--/* Truncating (i.e. rounded towards zero) integer division-remainder of MPNs */-void-integer_gmp_mpn_tdiv_r (mp_limb_t r[],-                        const mp_limb_t n[], const mp_size_t nn,-                        const mp_limb_t d[], const mp_size_t dn)-{-  /* qn = 1+nn-dn; rn = dn */-  assert(nn>=dn);-  const mp_size_t qn = 1+nn-dn;--  if (qn > 128) {-    // Use temporary heap allocated throw-away buffer for MPNs larger-    // than 1KiB for 64bit-sized limbs (larger than 512bytes for-    // 32bit-sized limbs)-    mp_limb_t *const q = malloc(qn*sizeof(mp_limb_t));-    mpn_tdiv_qr(q, r, 0, n, nn, d, dn);-    free (q);-  } else { // allocate smaller arrays on the stack-    mp_limb_t q[qn];-    mpn_tdiv_qr(q, r, 0, n, nn, d, dn);-  }-}---/* Wraps GMP's 'mpz_sizeinbase()' function */-HsWord-integer_gmp_mpn_sizeinbase(const mp_limb_t s[], const mp_size_t sn,-                           const HsInt base)-{-  assert (2 <= base && base <= 256);--  if (mp_limb_zero_p(s,sn)) return 1;--  const mpz_t zs = CONST_MPZ_INIT(s, sn);--  return mpz_sizeinbase(zs, base);-}--/* Single-limb version of 'integer_gmp_mpn_sizeinbase()' */-HsWord-integer_gmp_mpn_sizeinbase1(const mp_limb_t s, const HsInt base)-{-  return s ? integer_gmp_mpn_sizeinbase(&s, 1, base) : 1;-}--/* Wrapper around GMP's 'mpz_export()' function */-HsWord-integer_gmp_mpn_export(const mp_limb_t s[], const mp_size_t sn,-                       void *destptr, HsInt destofs, HsInt msbf)-{-  /* TODO: implement w/o GMP, c.f. 'integer_gmp_mpn_import()' */-  assert (msbf == 0 || msbf == 1);--  if (mp_limb_zero_p(s,sn)) return 0;--  const mpz_t zs = CONST_MPZ_INIT(s, sn);--  size_t written = 0;--  // mpz_export (void *rop, size_t *countp, int order, size_t size, int endian,-  //             size_t nails, const mpz_t op)-  (void) mpz_export(((char *)destptr)+destofs, &written, !msbf ? -1 : 1,-                    /* size */ 1, /* endian */ 0, /* nails */ 0, zs);--  return written;-}--/* Single-limb version of 'integer_gmp_mpn_export()' */-HsWord-integer_gmp_mpn_export1(const mp_limb_t s,-                        void *destptr, const HsInt destofs, const HsInt msbf)-{-  /* TODO: implement w/o GMP */-  return integer_gmp_mpn_export(&s, 1, destptr, destofs, msbf);-}--/* Import single limb from memory location- *- * We can't use GMP's 'mpz_import()'- */-HsWord-integer_gmp_mpn_import1(const uint8_t *srcptr, const HsWord srcofs,-                        const HsWord srclen, const HsInt msbf)-{-  assert (msbf == 0 || msbf == 1);-  assert (srclen <= SIZEOF_HSWORD);--  srcptr += srcofs;--  HsWord result = 0;--  if (msbf)-    for (unsigned i = 0; i < srclen; ++i)-      result |= (HsWord)srcptr[i] << ((srclen-i-1)*8);-  else // lsbf-    for (unsigned i = 0; i < srclen; ++i)-      result |= (HsWord)srcptr[i] << (i*8);--  return result;-}--/* import into mp_limb_t[] from memory location */-void-integer_gmp_mpn_import(mp_limb_t * restrict r, const uint8_t * restrict srcptr,-                       const HsWord srcofs, const HsWord srclen,-                       const HsInt msbf)-{-  assert (msbf == 0 || msbf == 1);--  srcptr += srcofs;--  const unsigned  limb_cnt_rem = srclen % SIZEOF_HSWORD;-  const mp_size_t limb_cnt     = srclen / SIZEOF_HSWORD;--  if (msbf) {-    if (limb_cnt_rem) { // partial limb-      r[limb_cnt] = integer_gmp_mpn_import1(srcptr, 0, limb_cnt_rem, 1);-      srcptr += limb_cnt_rem;-    }--    for (unsigned ri = 0; ri < limb_cnt; ++ri) {-      r[limb_cnt-ri-1] = integer_gmp_mpn_import1(srcptr, 0, SIZEOF_HSWORD, 1);-      srcptr += SIZEOF_HSWORD;-    }-  } else { // lsbf-    for (unsigned ri = 0; ri < limb_cnt; ++ri) {-      r[ri] = integer_gmp_mpn_import1(srcptr, 0, SIZEOF_HSWORD, 0);-      srcptr += SIZEOF_HSWORD;-    }--    if (limb_cnt_rem) // partial limb-      r[limb_cnt] = integer_gmp_mpn_import1(srcptr, 0, limb_cnt_rem, 0);-  }-}--/* Scan for first non-zero byte starting at srcptr[srcofs], ending at- * srcptr[srcofs+srclen-1];- *- * If no non-zero byte found, returns srcofs+srclen; otherwise returns- * index of srcptr where first non-zero byte was found.- */-HsWord-integer_gmp_scan_nzbyte(const uint8_t *srcptr,-                        const HsWord srcofs, const HsWord srclen)-{-  // TODO: consider implementing this function in Haskell-land-  srcptr += srcofs;--  for (unsigned i = 0; i < srclen; ++i)-    if (srcptr[i])-      return srcofs+i;--  return srcofs+srclen;-}--/* Reverse scan for non-zero byte- * starting at srcptr[srcofs+srclen-1], ending at srcptr[srcofs].- *- * Returns new length srclen1 such that srcptr[srcofs+i] == 0 for- * srclen1 <= i < srclen.- */-HsWord-integer_gmp_rscan_nzbyte(const uint8_t *srcptr,-                         const HsWord srcofs, const HsWord srclen)-{-  // TODO: consider implementing this function in Haskell-land-  srcptr += srcofs;--  for (unsigned i = srclen; i > 0; --i)-    if (srcptr[i-1])-      return i;--  return 0;-}--/* wrapper around mpz_probab_prime_p */-HsInt-integer_gmp_test_prime(const mp_limb_t s[], const mp_size_t sn, const HsInt rep)-{-  if (mp_limb_zero_p(s,sn)) return 0;--  const mpz_t sz = CONST_MPZ_INIT(s, sn);--  // int mpz_probab_prime_p (const mpz_t n, int reps)-  return mpz_probab_prime_p(sz, rep);-}--/* wrapper around mpz_probab_prime_p */-HsInt-integer_gmp_test_prime1(const mp_limb_t limb, const HsInt rep)-{-  if (!limb) return 0;--  return integer_gmp_test_prime(&limb, 1, rep);-}--/* wrapper around mpz_nextprime()- *- * Stores next prime (relative to {sp,sn}) in {rp,sn}.- * Return value is most significant limb of {rp,sn+1}.- */-mp_limb_t-integer_gmp_next_prime(mp_limb_t rp[], const mp_limb_t sp[],-                       const mp_size_t sn)-{-  assert (sn>=0);--  if (!sn) return 2;-  if (sn == 1 && sp[0] < 2) {-    rp[0] = 2;-    return 0;-  }--  const mpz_t op = CONST_MPZ_INIT(sp, sn);--  mpz_t rop;-  mpz_init (rop);-  mpz_nextprime (rop, op);--  const mp_size_t rn = rop[0]._mp_size;--  // copy result into {rp,sn} buffer-  assert (rn == sn || rn == sn+1);-  memcpy(rp, rop[0]._mp_d, sn*sizeof(mp_limb_t));-  const mp_limb_t result = rn>sn ? rop[0]._mp_d[sn] : 0;--  mpz_clear (rop);--  return result;-}--/* wrapper around mpz_nextprime()- *- * returns next prime modulo 2^GMP_LIMB_BITS- */-mp_limb_t-integer_gmp_next_prime1(const mp_limb_t limb)-{-  if (limb < 2) return 2;--  const mpz_t op = CONST_MPZ_INIT(&limb, 1);--  mpz_t rop;-  mpz_init (rop);-  mpz_nextprime (rop, op);-  assert (rop[0]._mp_size > 0);-  const mp_limb_t result = rop[0]._mp_d[0];-  mpz_clear (rop);--  return result;-}--/* wrapper around mpz_powm()- *- * Store '(B^E) mod M' in {rp,rn}- *- * rp must have allocated mn limbs; This function's return value is- * the actual number rn (0 < rn <= mn) of limbs written to the rp limb-array.- *- * bn and en are allowed to be negative to denote negative numbers- */-mp_size_t-integer_gmp_powm(mp_limb_t rp[], // result-                 const mp_limb_t bp[], const mp_size_t bn, // base-                 const mp_limb_t ep[], const mp_size_t en, // exponent-                 const mp_limb_t mp[], const mp_size_t mn) // mod-{-  assert(!mp_limb_zero_p(mp,mn));--  if ((mn == 1 || mn == -1) && mp[0] == 1) {-    rp[0] = 0;-    return 1;-  }--  if (mp_limb_zero_p(ep,en)) {-    rp[0] = 1;-    return 1;-  }--  const mpz_t b = CONST_MPZ_INIT(bp, mp_limb_zero_p(bp,bn) ? 0 : bn);-  const mpz_t e = CONST_MPZ_INIT(ep, mp_limb_zero_p(ep,en) ? 0 : en);-  const mpz_t m = CONST_MPZ_INIT(mp, mn);--  mpz_t r;-  mpz_init (r);--  mpz_powm(r, b, e, m);--  const mp_size_t rn = r[0]._mp_size;--  if (rn) {-    assert(0 < rn && rn <= mn);-    memcpy(rp, r[0]._mp_d, rn*sizeof(mp_limb_t));-  }--  mpz_clear (r);--  if (!rn) {-    rp[0] = 0;-    return 1;-  }--  return rn;-}--/* version of integer_gmp_powm() for single-limb moduli */-mp_limb_t-integer_gmp_powm1(const mp_limb_t bp[], const mp_size_t bn, // base-                  const mp_limb_t ep[], const mp_size_t en, // exponent-                  const mp_limb_t m0) // mod-{-  assert(m0);--  if (m0==1) return 0;-  if (mp_limb_zero_p(ep,en)) return 1;--  const mpz_t b = CONST_MPZ_INIT(bp, mp_limb_zero_p(bp,bn) ? 0 : bn);-  const mpz_t e = CONST_MPZ_INIT(ep, en);-  const mpz_t m = CONST_MPZ_INIT(&m0, !!m0);--  mpz_t r;-  mpz_init (r);-  mpz_powm(r, b, e, m);--  assert(r[0]._mp_size == 0 || r[0]._mp_size == 1);-  const mp_limb_t result = r[0]._mp_size ? r[0]._mp_d[0] : 0;--  mpz_clear (r);--  return result;-}--/* version of integer_gmp_powm() for single-limb arguments */-mp_limb_t-integer_gmp_powm_word(const mp_limb_t b0, // base-                      const mp_limb_t e0, // exponent-                      const mp_limb_t m0) // mod-{-  return integer_gmp_powm1(&b0, !!b0, &e0, !!e0, m0);-}---/* wrapper around mpz_invert()- *- * Store '(1/X) mod abs(M)' in {rp,rn}- *- * rp must have allocated mn limbs; This function's return value is- * the actual number rn (0 < rn <= mn) of limbs written to the rp limb-array.- *- * Returns 0 if inverse does not exist.- */-mp_size_t-integer_gmp_invert(mp_limb_t rp[], // result-                   const mp_limb_t xp[], const mp_size_t xn, // base-                   const mp_limb_t mp[], const mp_size_t mn) // mod-{-  if (mp_limb_zero_p(xp,xn)-      || mp_limb_zero_p(mp,mn)-      || ((mn == 1 || mn == -1) && mp[0] == 1)) {-    rp[0] = 0;-    return 1;-  }--  const mpz_t x = CONST_MPZ_INIT(xp, xn);-  const mpz_t m = CONST_MPZ_INIT(mp, mn);--  mpz_t r;-  mpz_init (r);--  const int inv_exists = mpz_invert(r, x, m);--  const mp_size_t rn = inv_exists ? r[0]._mp_size : 0;--  if (rn) {-    assert(0 < rn && rn <= mn);-    memcpy(rp, r[0]._mp_d, rn*sizeof(mp_limb_t));-  }--  mpz_clear (r);--  if (!rn) {-    rp[0] = 0;-    return 1;-  }--  return rn;-}---/* Version of integer_gmp_invert() operating on single limbs */-mp_limb_t-integer_gmp_invert_word(const mp_limb_t x0, const mp_limb_t m0)-{-  if (!x0 || m0<=1) return 0;-  if (x0 == 1) return 1;--  const mpz_t x = CONST_MPZ_INIT(&x0, 1);-  const mpz_t m = CONST_MPZ_INIT(&m0, 1);--  mpz_t r;-  mpz_init (r);--  const int inv_exists = mpz_invert(r, x, m);-  const mp_size_t rn = inv_exists ? r[0]._mp_size : 0;--  assert (rn == 0 || rn == 1);-  const mp_limb_t r0 = rn ? r[0]._mp_d[0] : 0;--  mpz_clear (r);--  return r0;-}---/* Wrappers for GMP 4.x compat- *- * In GMP 5.0 the following operations were added:- *- *  mpn_sqr, mpn_and_n, mpn_ior_n, mpn_xor_n, mpn_nand_n, mpn_nior_n,- *  mpn_xnor_n, mpn_andn_n, mpn_iorn_n, mpn_com, mpn_neg, mpn_copyi,- *  mpn_copyd, mpn_zero- *- * We use some of those, but for GMP 4.x compatibility we need to- * emulate those (while incurring some overhead).- */-#if __GNU_MP_VERSION < 5--#define MPN_LOGIC_OP_WRAPPER(MPN_WRAPPER, MPZ_OP) \-void                                                               \-MPN_WRAPPER(mp_limb_t *rp, const mp_limb_t *s1p,                   \-            const mp_limb_t *s2p, mp_size_t n)                     \-{                                                                  \-  assert(n > 0);                                                   \-                                                                   \-  const mpz_t s1 = CONST_MPZ_INIT(s1p, n);                         \-  const mpz_t s2 = CONST_MPZ_INIT(s2p, n);                         \-                                                                   \-  mpz_t r;                                                         \-  mpz_init (r);                                                    \-  MPZ_OP (r, s1, s2);                                              \-                                                                   \-  const mp_size_t rn = r[0]._mp_size;                              \-  memset (rp, 0, n*sizeof(mp_limb_t));                             \-  memcpy (rp, r[0]._mp_d, mp_size_minabs(rn,n)*sizeof(mp_limb_t)); \-                                                                   \-  mpz_clear (r);                                                   \-}--static void-__mpz_andn(mpz_t r, const mpz_t s1, const mpz_t s2)-{-  mpz_t s2c;-  mpz_init (s2c);-  mpz_com (s2c, s2);-  mpz_and (r, s1, s2c);-  mpz_clear (s2c);-}--MPN_LOGIC_OP_WRAPPER(integer_gmp_mpn_and_n,  mpz_and)-MPN_LOGIC_OP_WRAPPER(integer_gmp_mpn_andn_n, __mpz_andn)-MPN_LOGIC_OP_WRAPPER(integer_gmp_mpn_ior_n,  mpz_ior)-MPN_LOGIC_OP_WRAPPER(integer_gmp_mpn_xor_n,  mpz_xor)--#else /* __GNU_MP_VERSION >= 5 */-void-integer_gmp_mpn_and_n(mp_limb_t *rp, const mp_limb_t *s1p,-                      const mp_limb_t *s2p, mp_size_t n)-{-  mpn_and_n(rp, s1p, s2p, n);-}--void-integer_gmp_mpn_andn_n(mp_limb_t *rp, const mp_limb_t *s1p,-                      const mp_limb_t *s2p, mp_size_t n)-{-  mpn_andn_n(rp, s1p, s2p, n);-}--void-integer_gmp_mpn_ior_n(mp_limb_t *rp, const mp_limb_t *s1p,-                      const mp_limb_t *s2p, mp_size_t n)-{-  mpn_ior_n(rp, s1p, s2p, n);-}--void-integer_gmp_mpn_xor_n(mp_limb_t *rp, const mp_limb_t *s1p,-                      const mp_limb_t *s2p, mp_size_t n)-{-  mpn_xor_n(rp, s1p, s2p, n);-}-#endif
− changelog.md
@@ -1,61 +0,0 @@-# Changelog for [`integer-gmp` package](http://hackage.haskell.org/package/integer-gmp)--## 1.0.0.1  *Feb 2016*--  * Bundled with GHC 8.0.1--  * Optimise `bitBigNat`/`bigInteger`--  * Fix minor issue in `eqBigNatWord#`--  * Various minor optimisations--## 1.0.0.0  *Mar 2015*--  * Bundled with GHC 7.10.1--  * Complete rewrite of `integer-gmp`. For more details, see-    https://ghc.haskell.org/trac/ghc/wiki/Design/IntegerGmp2--## 0.5.1.0  *Feb 2014*--  * Bundled with GHC 7.8.1--  * Improved Haddock documentation--  * New [PrimBool](https://ghc.haskell.org/trac/ghc/wiki/PrimBool)-    versions of comparison predicates in `GHC.Integer`:--        eqInteger# :: Integer -> Integer -> Int#-        geInteger# :: Integer -> Integer -> Int#-        gtInteger# :: Integer -> Integer -> Int#-        leInteger# :: Integer -> Integer -> Int#-        ltInteger# :: Integer -> Integer -> Int#-        neqInteger# :: Integer -> Integer -> Int#--  * New `GHC.Integer.testBitInteger` primitive for use with `Data.Bits`--  * Reduce short-lived heap allocation and try to demote `J#` back-    to `S#` more aggressively.  See also-    [#8647](https://ghc.haskell.org/trac/ghc/ticket/8647)-    for more details.--  * New GMP-specific binary (de)serialization primitives added to-    `GHC.Integer.GMP.Internals`:--        importIntegerFromByteArray-        importIntegerFromAddr-        exportIntegerToAddr-        exportIntegerToMutableByteArray-        sizeInBaseInteger--  * New GMP-implemented number-theoretic operations added to-    `GHC.Integer.GMP.Internals`:--        gcdExtInteger-        nextPrimeInteger-        testPrimeInteger-        powInteger-        powModInteger-        powModSecInteger-        recipModInteger
− config.guess
@@ -1,1420 +0,0 @@-#! /bin/sh-# Attempt to guess a canonical system name.-#   Copyright 1992-2014 Free Software Foundation, Inc.--timestamp='2014-03-23'--# This file is free software; you can redistribute it and/or modify it-# under the terms of the GNU General Public License as published by-# the Free Software Foundation; either version 3 of the License, or-# (at your option) any later version.-#-# This program is distributed in the hope that it will be useful, but-# WITHOUT ANY WARRANTY; without even the implied warranty of-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU-# General Public License for more details.-#-# You should have received a copy of the GNU General Public License-# along with this program; if not, see <http://www.gnu.org/licenses/>.-#-# As a special exception to the GNU General Public License, if you-# distribute this file as part of a program that contains a-# configuration script generated by Autoconf, you may include it under-# the same distribution terms that you use for the rest of that-# program.  This Exception is an additional permission under section 7-# of the GNU General Public License, version 3 ("GPLv3").-#-# Originally written by Per Bothner.-#-# You can get the latest version of this script from:-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD-#-# Please send patches with a ChangeLog entry to config-patches@gnu.org.---me=`echo "$0" | sed -e 's,.*/,,'`--usage="\-Usage: $0 [OPTION]--Output the configuration name of the system \`$me' is run on.--Operation modes:-  -h, --help         print this help, then exit-  -t, --time-stamp   print date of last modification, then exit-  -v, --version      print version number, then exit--Report bugs and patches to <config-patches@gnu.org>."--version="\-GNU config.guess ($timestamp)--Originally written by Per Bothner.-Copyright 1992-2014 Free Software Foundation, Inc.--This is free software; see the source for copying conditions.  There is NO-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."--help="-Try \`$me --help' for more information."--# Parse command line-while test $# -gt 0 ; do-  case $1 in-    --time-stamp | --time* | -t )-       echo "$timestamp" ; exit ;;-    --version | -v )-       echo "$version" ; exit ;;-    --help | --h* | -h )-       echo "$usage"; exit ;;-    -- )     # Stop option processing-       shift; break ;;-    - )	# Use stdin as input.-       break ;;-    -* )-       echo "$me: invalid option $1$help" >&2-       exit 1 ;;-    * )-       break ;;-  esac-done--if test $# != 0; then-  echo "$me: too many arguments$help" >&2-  exit 1-fi--trap 'exit 1' 1 2 15--# CC_FOR_BUILD -- compiler used by this script. Note that the use of a-# compiler to aid in system detection is discouraged as it requires-# temporary files to be created and, as you can see below, it is a-# headache to deal with in a portable fashion.--# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still-# use `HOST_CC' if defined, but it is deprecated.--# Portable tmp directory creation inspired by the Autoconf team.--set_cc_for_build='-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;-: ${TMPDIR=/tmp} ;- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;-dummy=$tmp/dummy ;-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;-case $CC_FOR_BUILD,$HOST_CC,$CC in- ,,)    echo "int x;" > $dummy.c ;-	for c in cc gcc c89 c99 ; do-	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then-	     CC_FOR_BUILD="$c"; break ;-	  fi ;-	done ;-	if test x"$CC_FOR_BUILD" = x ; then-	  CC_FOR_BUILD=no_compiler_found ;-	fi-	;;- ,,*)   CC_FOR_BUILD=$CC ;;- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;-esac ; set_cc_for_build= ;'--# This is needed to find uname on a Pyramid OSx when run in the BSD universe.-# (ghazi@noc.rutgers.edu 1994-08-24)-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then-	PATH=$PATH:/.attbin ; export PATH-fi--UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown--case "${UNAME_SYSTEM}" in-Linux|GNU|GNU/*)-	# If the system lacks a compiler, then just pick glibc.-	# We could probably try harder.-	LIBC=gnu--	eval $set_cc_for_build-	cat <<-EOF > $dummy.c-	#include <features.h>-	#if defined(__UCLIBC__)-	LIBC=uclibc-	#elif defined(__dietlibc__)-	LIBC=dietlibc-	#else-	LIBC=gnu-	#endif-	EOF-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`-	;;-esac--# Note: order is significant - the case branches are not exclusive.--case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in-    *:NetBSD:*:*)-	# NetBSD (nbsd) targets should (where applicable) match one or-	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently-	# switched to ELF, *-*-netbsd* would select the old-	# object file format.  This provides both forward-	# compatibility and a consistent mechanism for selecting the-	# object file format.-	#-	# Note: NetBSD doesn't particularly care about the vendor-	# portion of the name.  We always set it to "unknown".-	sysctl="sysctl -n hw.machine_arch"-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`-	case "${UNAME_MACHINE_ARCH}" in-	    armeb) machine=armeb-unknown ;;-	    arm*) machine=arm-unknown ;;-	    sh3el) machine=shl-unknown ;;-	    sh3eb) machine=sh-unknown ;;-	    sh5el) machine=sh5le-unknown ;;-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;-	esac-	# The Operating System including object format, if it has switched-	# to ELF recently, or will in the future.-	case "${UNAME_MACHINE_ARCH}" in-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)-		eval $set_cc_for_build-		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \-			| grep -q __ELF__-		then-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).-		    # Return netbsd for either.  FIX?-		    os=netbsd-		else-		    os=netbsdelf-		fi-		;;-	    *)-		os=netbsd-		;;-	esac-	# The OS release-	# Debian GNU/NetBSD machines have a different userland, and-	# thus, need a distinct triplet. However, they do not need-	# kernel version information, so it can be replaced with a-	# suitable tag, in the style of linux-gnu.-	case "${UNAME_VERSION}" in-	    Debian*)-		release='-gnu'-		;;-	    *)-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`-		;;-	esac-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:-	# contains redundant information, the shorter form:-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.-	echo "${machine}-${os}${release}"-	exit ;;-    *:Bitrig:*:*)-	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`-	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}-	exit ;;-    *:OpenBSD:*:*)-	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`-	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}-	exit ;;-    *:ekkoBSD:*:*)-	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}-	exit ;;-    *:SolidBSD:*:*)-	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}-	exit ;;-    macppc:MirBSD:*:*)-	echo powerpc-unknown-mirbsd${UNAME_RELEASE}-	exit ;;-    *:MirBSD:*:*)-	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}-	exit ;;-    alpha:OSF1:*:*)-	case $UNAME_RELEASE in-	*4.0)-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`-		;;-	*5.*)-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`-		;;-	esac-	# According to Compaq, /usr/sbin/psrinfo has been available on-	# OSF/1 and Tru64 systems produced since 1995.  I hope that-	# covers most systems running today.  This code pipes the CPU-	# types through head -n 1, so we only detect the type of CPU 0.-	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`-	case "$ALPHA_CPU_TYPE" in-	    "EV4 (21064)")-		UNAME_MACHINE="alpha" ;;-	    "EV4.5 (21064)")-		UNAME_MACHINE="alpha" ;;-	    "LCA4 (21066/21068)")-		UNAME_MACHINE="alpha" ;;-	    "EV5 (21164)")-		UNAME_MACHINE="alphaev5" ;;-	    "EV5.6 (21164A)")-		UNAME_MACHINE="alphaev56" ;;-	    "EV5.6 (21164PC)")-		UNAME_MACHINE="alphapca56" ;;-	    "EV5.7 (21164PC)")-		UNAME_MACHINE="alphapca57" ;;-	    "EV6 (21264)")-		UNAME_MACHINE="alphaev6" ;;-	    "EV6.7 (21264A)")-		UNAME_MACHINE="alphaev67" ;;-	    "EV6.8CB (21264C)")-		UNAME_MACHINE="alphaev68" ;;-	    "EV6.8AL (21264B)")-		UNAME_MACHINE="alphaev68" ;;-	    "EV6.8CX (21264D)")-		UNAME_MACHINE="alphaev68" ;;-	    "EV6.9A (21264/EV69A)")-		UNAME_MACHINE="alphaev69" ;;-	    "EV7 (21364)")-		UNAME_MACHINE="alphaev7" ;;-	    "EV7.9 (21364A)")-		UNAME_MACHINE="alphaev79" ;;-	esac-	# A Pn.n version is a patched version.-	# A Vn.n version is a released version.-	# A Tn.n version is a released field test version.-	# A Xn.n version is an unreleased experimental baselevel.-	# 1.2 uses "1.2" for uname -r.-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`-	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.-	exitcode=$?-	trap '' 0-	exit $exitcode ;;-    Alpha\ *:Windows_NT*:*)-	# How do we know it's Interix rather than the generic POSIX subsystem?-	# Should we change UNAME_MACHINE based on the output of uname instead-	# of the specific Alpha model?-	echo alpha-pc-interix-	exit ;;-    21064:Windows_NT:50:3)-	echo alpha-dec-winnt3.5-	exit ;;-    Amiga*:UNIX_System_V:4.0:*)-	echo m68k-unknown-sysv4-	exit ;;-    *:[Aa]miga[Oo][Ss]:*:*)-	echo ${UNAME_MACHINE}-unknown-amigaos-	exit ;;-    *:[Mm]orph[Oo][Ss]:*:*)-	echo ${UNAME_MACHINE}-unknown-morphos-	exit ;;-    *:OS/390:*:*)-	echo i370-ibm-openedition-	exit ;;-    *:z/VM:*:*)-	echo s390-ibm-zvmoe-	exit ;;-    *:OS400:*:*)-	echo powerpc-ibm-os400-	exit ;;-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)-	echo arm-acorn-riscix${UNAME_RELEASE}-	exit ;;-    arm*:riscos:*:*|arm*:RISCOS:*:*)-	echo arm-unknown-riscos-	exit ;;-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)-	echo hppa1.1-hitachi-hiuxmpp-	exit ;;-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)-	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.-	if test "`(/bin/universe) 2>/dev/null`" = att ; then-		echo pyramid-pyramid-sysv3-	else-		echo pyramid-pyramid-bsd-	fi-	exit ;;-    NILE*:*:*:dcosx)-	echo pyramid-pyramid-svr4-	exit ;;-    DRS?6000:unix:4.0:6*)-	echo sparc-icl-nx6-	exit ;;-    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)-	case `/usr/bin/uname -p` in-	    sparc) echo sparc-icl-nx7; exit ;;-	esac ;;-    s390x:SunOS:*:*)-	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`-	exit ;;-    sun4H:SunOS:5.*:*)-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`-	exit ;;-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`-	exit ;;-    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)-	echo i386-pc-auroraux${UNAME_RELEASE}-	exit ;;-    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)-	eval $set_cc_for_build-	SUN_ARCH="i386"-	# If there is a compiler, see if it is configured for 64-bit objects.-	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.-	# This test works for both compilers.-	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then-	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \-		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \-		grep IS_64BIT_ARCH >/dev/null-	    then-		SUN_ARCH="x86_64"-	    fi-	fi-	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`-	exit ;;-    sun4*:SunOS:6*:*)-	# According to config.sub, this is the proper way to canonicalize-	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but-	# it's likely to be more like Solaris than SunOS4.-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`-	exit ;;-    sun4*:SunOS:*:*)-	case "`/usr/bin/arch -k`" in-	    Series*|S4*)-		UNAME_RELEASE=`uname -v`-		;;-	esac-	# Japanese Language versions have a version number like `4.1.3-JL'.-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`-	exit ;;-    sun3*:SunOS:*:*)-	echo m68k-sun-sunos${UNAME_RELEASE}-	exit ;;-    sun*:*:4.2BSD:*)-	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3-	case "`/bin/arch`" in-	    sun3)-		echo m68k-sun-sunos${UNAME_RELEASE}-		;;-	    sun4)-		echo sparc-sun-sunos${UNAME_RELEASE}-		;;-	esac-	exit ;;-    aushp:SunOS:*:*)-	echo sparc-auspex-sunos${UNAME_RELEASE}-	exit ;;-    # The situation for MiNT is a little confusing.  The machine name-    # can be virtually everything (everything which is not-    # "atarist" or "atariste" at least should have a processor-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"-    # to the lowercase version "mint" (or "freemint").  Finally-    # the system name "TOS" denotes a system which is actually not-    # MiNT.  But MiNT is downward compatible to TOS, so this should-    # be no problem.-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)-	echo m68k-atari-mint${UNAME_RELEASE}-	exit ;;-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)-	echo m68k-atari-mint${UNAME_RELEASE}-	exit ;;-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)-	echo m68k-atari-mint${UNAME_RELEASE}-	exit ;;-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)-	echo m68k-milan-mint${UNAME_RELEASE}-	exit ;;-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)-	echo m68k-hades-mint${UNAME_RELEASE}-	exit ;;-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)-	echo m68k-unknown-mint${UNAME_RELEASE}-	exit ;;-    m68k:machten:*:*)-	echo m68k-apple-machten${UNAME_RELEASE}-	exit ;;-    powerpc:machten:*:*)-	echo powerpc-apple-machten${UNAME_RELEASE}-	exit ;;-    RISC*:Mach:*:*)-	echo mips-dec-mach_bsd4.3-	exit ;;-    RISC*:ULTRIX:*:*)-	echo mips-dec-ultrix${UNAME_RELEASE}-	exit ;;-    VAX*:ULTRIX*:*:*)-	echo vax-dec-ultrix${UNAME_RELEASE}-	exit ;;-    2020:CLIX:*:* | 2430:CLIX:*:*)-	echo clipper-intergraph-clix${UNAME_RELEASE}-	exit ;;-    mips:*:*:UMIPS | mips:*:*:RISCos)-	eval $set_cc_for_build-	sed 's/^	//' << EOF >$dummy.c-#ifdef __cplusplus-#include <stdio.h>  /* for printf() prototype */-	int main (int argc, char *argv[]) {-#else-	int main (argc, argv) int argc; char *argv[]; {-#endif-	#if defined (host_mips) && defined (MIPSEB)-	#if defined (SYSTYPE_SYSV)-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);-	#endif-	#if defined (SYSTYPE_SVR4)-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);-	#endif-	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);-	#endif-	#endif-	  exit (-1);-	}-EOF-	$CC_FOR_BUILD -o $dummy $dummy.c &&-	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&-	  SYSTEM_NAME=`$dummy $dummyarg` &&-	    { echo "$SYSTEM_NAME"; exit; }-	echo mips-mips-riscos${UNAME_RELEASE}-	exit ;;-    Motorola:PowerMAX_OS:*:*)-	echo powerpc-motorola-powermax-	exit ;;-    Motorola:*:4.3:PL8-*)-	echo powerpc-harris-powermax-	exit ;;-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)-	echo powerpc-harris-powermax-	exit ;;-    Night_Hawk:Power_UNIX:*:*)-	echo powerpc-harris-powerunix-	exit ;;-    m88k:CX/UX:7*:*)-	echo m88k-harris-cxux7-	exit ;;-    m88k:*:4*:R4*)-	echo m88k-motorola-sysv4-	exit ;;-    m88k:*:3*:R3*)-	echo m88k-motorola-sysv3-	exit ;;-    AViiON:dgux:*:*)-	# DG/UX returns AViiON for all architectures-	UNAME_PROCESSOR=`/usr/bin/uname -p`-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]-	then-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \-	       [ ${TARGET_BINARY_INTERFACE}x = x ]-	    then-		echo m88k-dg-dgux${UNAME_RELEASE}-	    else-		echo m88k-dg-dguxbcs${UNAME_RELEASE}-	    fi-	else-	    echo i586-dg-dgux${UNAME_RELEASE}-	fi-	exit ;;-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)-	echo m88k-dolphin-sysv3-	exit ;;-    M88*:*:R3*:*)-	# Delta 88k system running SVR3-	echo m88k-motorola-sysv3-	exit ;;-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)-	echo m88k-tektronix-sysv3-	exit ;;-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)-	echo m68k-tektronix-bsd-	exit ;;-    *:IRIX*:*:*)-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`-	exit ;;-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.-	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id-	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '-    i*86:AIX:*:*)-	echo i386-ibm-aix-	exit ;;-    ia64:AIX:*:*)-	if [ -x /usr/bin/oslevel ] ; then-		IBM_REV=`/usr/bin/oslevel`-	else-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}-	fi-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}-	exit ;;-    *:AIX:2:3)-	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then-		eval $set_cc_for_build-		sed 's/^		//' << EOF >$dummy.c-		#include <sys/systemcfg.h>--		main()-			{-			if (!__power_pc())-				exit(1);-			puts("powerpc-ibm-aix3.2.5");-			exit(0);-			}-EOF-		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`-		then-			echo "$SYSTEM_NAME"-		else-			echo rs6000-ibm-aix3.2.5-		fi-	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then-		echo rs6000-ibm-aix3.2.4-	else-		echo rs6000-ibm-aix3.2-	fi-	exit ;;-    *:AIX:*:[4567])-	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then-		IBM_ARCH=rs6000-	else-		IBM_ARCH=powerpc-	fi-	if [ -x /usr/bin/oslevel ] ; then-		IBM_REV=`/usr/bin/oslevel`-	else-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}-	fi-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}-	exit ;;-    *:AIX:*:*)-	echo rs6000-ibm-aix-	exit ;;-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)-	echo romp-ibm-bsd4.4-	exit ;;-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to-	exit ;;                             # report: romp-ibm BSD 4.3-    *:BOSX:*:*)-	echo rs6000-bull-bosx-	exit ;;-    DPX/2?00:B.O.S.:*:*)-	echo m68k-bull-sysv3-	exit ;;-    9000/[34]??:4.3bsd:1.*:*)-	echo m68k-hp-bsd-	exit ;;-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)-	echo m68k-hp-bsd4.4-	exit ;;-    9000/[34678]??:HP-UX:*:*)-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`-	case "${UNAME_MACHINE}" in-	    9000/31? )            HP_ARCH=m68000 ;;-	    9000/[34]?? )         HP_ARCH=m68k ;;-	    9000/[678][0-9][0-9])-		if [ -x /usr/bin/getconf ]; then-		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`-		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`-		    case "${sc_cpu_version}" in-		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0-		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1-		      532)                      # CPU_PA_RISC2_0-			case "${sc_kernel_bits}" in-			  32) HP_ARCH="hppa2.0n" ;;-			  64) HP_ARCH="hppa2.0w" ;;-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20-			esac ;;-		    esac-		fi-		if [ "${HP_ARCH}" = "" ]; then-		    eval $set_cc_for_build-		    sed 's/^		//' << EOF >$dummy.c--		#define _HPUX_SOURCE-		#include <stdlib.h>-		#include <unistd.h>--		int main ()-		{-		#if defined(_SC_KERNEL_BITS)-		    long bits = sysconf(_SC_KERNEL_BITS);-		#endif-		    long cpu  = sysconf (_SC_CPU_VERSION);--		    switch (cpu)-			{-			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;-			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;-			case CPU_PA_RISC2_0:-		#if defined(_SC_KERNEL_BITS)-			    switch (bits)-				{-				case 64: puts ("hppa2.0w"); break;-				case 32: puts ("hppa2.0n"); break;-				default: puts ("hppa2.0"); break;-				} break;-		#else  /* !defined(_SC_KERNEL_BITS) */-			    puts ("hppa2.0"); break;-		#endif-			default: puts ("hppa1.0"); break;-			}-		    exit (0);-		}-EOF-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`-		    test -z "$HP_ARCH" && HP_ARCH=hppa-		fi ;;-	esac-	if [ ${HP_ARCH} = "hppa2.0w" ]-	then-	    eval $set_cc_for_build--	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating-	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler-	    # generating 64-bit code.  GNU and HP use different nomenclature:-	    #-	    # $ CC_FOR_BUILD=cc ./config.guess-	    # => hppa2.0w-hp-hpux11.23-	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess-	    # => hppa64-hp-hpux11.23--	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |-		grep -q __LP64__-	    then-		HP_ARCH="hppa2.0w"-	    else-		HP_ARCH="hppa64"-	    fi-	fi-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}-	exit ;;-    ia64:HP-UX:*:*)-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`-	echo ia64-hp-hpux${HPUX_REV}-	exit ;;-    3050*:HI-UX:*:*)-	eval $set_cc_for_build-	sed 's/^	//' << EOF >$dummy.c-	#include <unistd.h>-	int-	main ()-	{-	  long cpu = sysconf (_SC_CPU_VERSION);-	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns-	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct-	     results, however.  */-	  if (CPU_IS_PA_RISC (cpu))-	    {-	      switch (cpu)-		{-		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;-		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;-		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;-		  default: puts ("hppa-hitachi-hiuxwe2"); break;-		}-	    }-	  else if (CPU_IS_HP_MC68K (cpu))-	    puts ("m68k-hitachi-hiuxwe2");-	  else puts ("unknown-hitachi-hiuxwe2");-	  exit (0);-	}-EOF-	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&-		{ echo "$SYSTEM_NAME"; exit; }-	echo unknown-hitachi-hiuxwe2-	exit ;;-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )-	echo hppa1.1-hp-bsd-	exit ;;-    9000/8??:4.3bsd:*:*)-	echo hppa1.0-hp-bsd-	exit ;;-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)-	echo hppa1.0-hp-mpeix-	exit ;;-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )-	echo hppa1.1-hp-osf-	exit ;;-    hp8??:OSF1:*:*)-	echo hppa1.0-hp-osf-	exit ;;-    i*86:OSF1:*:*)-	if [ -x /usr/sbin/sysversion ] ; then-	    echo ${UNAME_MACHINE}-unknown-osf1mk-	else-	    echo ${UNAME_MACHINE}-unknown-osf1-	fi-	exit ;;-    parisc*:Lites*:*:*)-	echo hppa1.1-hp-lites-	exit ;;-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)-	echo c1-convex-bsd-	exit ;;-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)-	if getsysinfo -f scalar_acc-	then echo c32-convex-bsd-	else echo c2-convex-bsd-	fi-	exit ;;-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)-	echo c34-convex-bsd-	exit ;;-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)-	echo c38-convex-bsd-	exit ;;-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)-	echo c4-convex-bsd-	exit ;;-    CRAY*Y-MP:*:*:*)-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'-	exit ;;-    CRAY*[A-Z]90:*:*:*)-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \-	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \-	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \-	      -e 's/\.[^.]*$/.X/'-	exit ;;-    CRAY*TS:*:*:*)-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'-	exit ;;-    CRAY*T3E:*:*:*)-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'-	exit ;;-    CRAY*SV1:*:*:*)-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'-	exit ;;-    *:UNICOS/mp:*:*)-	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'-	exit ;;-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`-	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`-	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"-	exit ;;-    5000:UNIX_System_V:4.*:*)-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`-	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`-	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"-	exit ;;-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}-	exit ;;-    sparc*:BSD/OS:*:*)-	echo sparc-unknown-bsdi${UNAME_RELEASE}-	exit ;;-    *:BSD/OS:*:*)-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}-	exit ;;-    *:FreeBSD:*:*)-	UNAME_PROCESSOR=`/usr/bin/uname -p`-	case ${UNAME_PROCESSOR} in-	    amd64)-		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;-	    *)-		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;-	esac-	exit ;;-    i*:CYGWIN*:*)-	echo ${UNAME_MACHINE}-pc-cygwin-	exit ;;-    *:MINGW64*:*)-	echo ${UNAME_MACHINE}-pc-mingw64-	exit ;;-    *:MINGW*:*)-	echo ${UNAME_MACHINE}-pc-mingw32-	exit ;;-    *:MSYS*:*)-	echo ${UNAME_MACHINE}-pc-msys-	exit ;;-    i*:windows32*:*)-	# uname -m includes "-pc" on this system.-	echo ${UNAME_MACHINE}-mingw32-	exit ;;-    i*:PW*:*)-	echo ${UNAME_MACHINE}-pc-pw32-	exit ;;-    *:Interix*:*)-	case ${UNAME_MACHINE} in-	    x86)-		echo i586-pc-interix${UNAME_RELEASE}-		exit ;;-	    authenticamd | genuineintel | EM64T)-		echo x86_64-unknown-interix${UNAME_RELEASE}-		exit ;;-	    IA64)-		echo ia64-unknown-interix${UNAME_RELEASE}-		exit ;;-	esac ;;-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)-	echo i${UNAME_MACHINE}-pc-mks-	exit ;;-    8664:Windows_NT:*)-	echo x86_64-pc-mks-	exit ;;-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)-	# How do we know it's Interix rather than the generic POSIX subsystem?-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we-	# UNAME_MACHINE based on the output of uname instead of i386?-	echo i586-pc-interix-	exit ;;-    i*:UWIN*:*)-	echo ${UNAME_MACHINE}-pc-uwin-	exit ;;-    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)-	echo x86_64-unknown-cygwin-	exit ;;-    p*:CYGWIN*:*)-	echo powerpcle-unknown-cygwin-	exit ;;-    prep*:SunOS:5.*:*)-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`-	exit ;;-    *:GNU:*:*)-	# the GNU system-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`-	exit ;;-    *:GNU/*:*:*)-	# other systems with GNU libc and userland-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}-	exit ;;-    i*86:Minix:*:*)-	echo ${UNAME_MACHINE}-pc-minix-	exit ;;-    aarch64:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    aarch64_be:Linux:*:*)-	UNAME_MACHINE=aarch64_be-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    alpha:Linux:*:*)-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in-	  EV5)   UNAME_MACHINE=alphaev5 ;;-	  EV56)  UNAME_MACHINE=alphaev56 ;;-	  PCA56) UNAME_MACHINE=alphapca56 ;;-	  PCA57) UNAME_MACHINE=alphapca56 ;;-	  EV6)   UNAME_MACHINE=alphaev6 ;;-	  EV67)  UNAME_MACHINE=alphaev67 ;;-	  EV68*) UNAME_MACHINE=alphaev68 ;;-	esac-	objdump --private-headers /bin/sh | grep -q ld.so.1-	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    arc:Linux:*:* | arceb:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    arm*:Linux:*:*)-	eval $set_cc_for_build-	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \-	    | grep -q __ARM_EABI__-	then-	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	else-	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \-		| grep -q __ARM_PCS_VFP-	    then-		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi-	    else-		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf-	    fi-	fi-	exit ;;-    avr32*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    cris:Linux:*:*)-	echo ${UNAME_MACHINE}-axis-linux-${LIBC}-	exit ;;-    crisv32:Linux:*:*)-	echo ${UNAME_MACHINE}-axis-linux-${LIBC}-	exit ;;-    frv:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    hexagon:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    i*86:Linux:*:*)-	echo ${UNAME_MACHINE}-pc-linux-${LIBC}-	exit ;;-    ia64:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    m32r*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    m68*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    mips:Linux:*:* | mips64:Linux:*:*)-	eval $set_cc_for_build-	sed 's/^	//' << EOF >$dummy.c-	#undef CPU-	#undef ${UNAME_MACHINE}-	#undef ${UNAME_MACHINE}el-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)-	CPU=${UNAME_MACHINE}el-	#else-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)-	CPU=${UNAME_MACHINE}-	#else-	CPU=-	#endif-	#endif-EOF-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }-	;;-    openrisc*:Linux:*:*)-	echo or1k-unknown-linux-${LIBC}-	exit ;;-    or32:Linux:*:* | or1k*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    padre:Linux:*:*)-	echo sparc-unknown-linux-${LIBC}-	exit ;;-    parisc64:Linux:*:* | hppa64:Linux:*:*)-	echo hppa64-unknown-linux-${LIBC}-	exit ;;-    parisc:Linux:*:* | hppa:Linux:*:*)-	# Look for CPU level-	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in-	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;-	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;-	  *)    echo hppa-unknown-linux-${LIBC} ;;-	esac-	exit ;;-    ppc64:Linux:*:*)-	echo powerpc64-unknown-linux-${LIBC}-	exit ;;-    ppc:Linux:*:*)-	echo powerpc-unknown-linux-${LIBC}-	exit ;;-    ppc64le:Linux:*:*)-	echo powerpc64le-unknown-linux-${LIBC}-	exit ;;-    ppcle:Linux:*:*)-	echo powerpcle-unknown-linux-${LIBC}-	exit ;;-    s390:Linux:*:* | s390x:Linux:*:*)-	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}-	exit ;;-    sh64*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    sh*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    sparc:Linux:*:* | sparc64:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    tile*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    vax:Linux:*:*)-	echo ${UNAME_MACHINE}-dec-linux-${LIBC}-	exit ;;-    x86_64:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    xtensa*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    i*86:DYNIX/ptx:4*:*)-	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.-	# earlier versions are messed up and put the nodename in both-	# sysname and nodename.-	echo i386-sequent-sysv4-	exit ;;-    i*86:UNIX_SV:4.2MP:2.*)-	# Unixware is an offshoot of SVR4, but it has its own version-	# number series starting with 2...-	# I am not positive that other SVR4 systems won't match this,-	# I just have to hope.  -- rms.-	# Use sysv4.2uw... so that sysv4* matches it.-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}-	exit ;;-    i*86:OS/2:*:*)-	# If we were able to find `uname', then EMX Unix compatibility-	# is probably installed.-	echo ${UNAME_MACHINE}-pc-os2-emx-	exit ;;-    i*86:XTS-300:*:STOP)-	echo ${UNAME_MACHINE}-unknown-stop-	exit ;;-    i*86:atheos:*:*)-	echo ${UNAME_MACHINE}-unknown-atheos-	exit ;;-    i*86:syllable:*:*)-	echo ${UNAME_MACHINE}-pc-syllable-	exit ;;-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)-	echo i386-unknown-lynxos${UNAME_RELEASE}-	exit ;;-    i*86:*DOS:*:*)-	echo ${UNAME_MACHINE}-pc-msdosdjgpp-	exit ;;-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`-	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}-	else-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}-	fi-	exit ;;-    i*86:*:5:[678]*)-	# UnixWare 7.x, OpenUNIX and OpenServer 6.-	case `/bin/uname -X | grep "^Machine"` in-	    *486*)	     UNAME_MACHINE=i486 ;;-	    *Pentium)	     UNAME_MACHINE=i586 ;;-	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;-	esac-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}-	exit ;;-    i*86:*:3.2:*)-	if test -f /usr/options/cb.name; then-		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL-	elif /bin/uname -X 2>/dev/null >/dev/null ; then-		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`-		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486-		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \-			&& UNAME_MACHINE=i586-		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \-			&& UNAME_MACHINE=i686-		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \-			&& UNAME_MACHINE=i686-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL-	else-		echo ${UNAME_MACHINE}-pc-sysv32-	fi-	exit ;;-    pc:*:*:*)-	# Left here for compatibility:-	# uname -m prints for DJGPP always 'pc', but it prints nothing about-	# the processor, so we play safe by assuming i586.-	# Note: whatever this is, it MUST be the same as what config.sub-	# prints for the "djgpp" host, or else GDB configury will decide that-	# this is a cross-build.-	echo i586-pc-msdosdjgpp-	exit ;;-    Intel:Mach:3*:*)-	echo i386-pc-mach3-	exit ;;-    paragon:*:*:*)-	echo i860-intel-osf1-	exit ;;-    i860:*:4.*:*) # i860-SVR4-	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4-	else # Add other i860-SVR4 vendors below as they are discovered.-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4-	fi-	exit ;;-    mini*:CTIX:SYS*5:*)-	# "miniframe"-	echo m68010-convergent-sysv-	exit ;;-    mc68k:UNIX:SYSTEM5:3.51m)-	echo m68k-convergent-sysv-	exit ;;-    M680?0:D-NIX:5.3:*)-	echo m68k-diab-dnix-	exit ;;-    M68*:*:R3V[5678]*:*)-	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;-    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)-	OS_REL=''-	test -r /etc/.relid \-	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \-	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \-	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \-	  && { echo i486-ncr-sysv4; exit; } ;;-    NCR*:*:4.2:* | MPRAS*:*:4.2:*)-	OS_REL='.3'-	test -r /etc/.relid \-	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \-	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }-	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)-	echo m68k-unknown-lynxos${UNAME_RELEASE}-	exit ;;-    mc68030:UNIX_System_V:4.*:*)-	echo m68k-atari-sysv4-	exit ;;-    TSUNAMI:LynxOS:2.*:*)-	echo sparc-unknown-lynxos${UNAME_RELEASE}-	exit ;;-    rs6000:LynxOS:2.*:*)-	echo rs6000-unknown-lynxos${UNAME_RELEASE}-	exit ;;-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)-	echo powerpc-unknown-lynxos${UNAME_RELEASE}-	exit ;;-    SM[BE]S:UNIX_SV:*:*)-	echo mips-dde-sysv${UNAME_RELEASE}-	exit ;;-    RM*:ReliantUNIX-*:*:*)-	echo mips-sni-sysv4-	exit ;;-    RM*:SINIX-*:*:*)-	echo mips-sni-sysv4-	exit ;;-    *:SINIX-*:*:*)-	if uname -p 2>/dev/null >/dev/null ; then-		UNAME_MACHINE=`(uname -p) 2>/dev/null`-		echo ${UNAME_MACHINE}-sni-sysv4-	else-		echo ns32k-sni-sysv-	fi-	exit ;;-    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort-			# says <Richard.M.Bartel@ccMail.Census.GOV>-	echo i586-unisys-sysv4-	exit ;;-    *:UNIX_System_V:4*:FTX*)-	# From Gerald Hewes <hewes@openmarket.com>.-	# How about differentiating between stratus architectures? -djm-	echo hppa1.1-stratus-sysv4-	exit ;;-    *:*:*:FTX*)-	# From seanf@swdc.stratus.com.-	echo i860-stratus-sysv4-	exit ;;-    i*86:VOS:*:*)-	# From Paul.Green@stratus.com.-	echo ${UNAME_MACHINE}-stratus-vos-	exit ;;-    *:VOS:*:*)-	# From Paul.Green@stratus.com.-	echo hppa1.1-stratus-vos-	exit ;;-    mc68*:A/UX:*:*)-	echo m68k-apple-aux${UNAME_RELEASE}-	exit ;;-    news*:NEWS-OS:6*:*)-	echo mips-sony-newsos6-	exit ;;-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)-	if [ -d /usr/nec ]; then-		echo mips-nec-sysv${UNAME_RELEASE}-	else-		echo mips-unknown-sysv${UNAME_RELEASE}-	fi-	exit ;;-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.-	echo powerpc-be-beos-	exit ;;-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.-	echo powerpc-apple-beos-	exit ;;-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.-	echo i586-pc-beos-	exit ;;-    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.-	echo i586-pc-haiku-	exit ;;-    x86_64:Haiku:*:*)-	echo x86_64-unknown-haiku-	exit ;;-    SX-4:SUPER-UX:*:*)-	echo sx4-nec-superux${UNAME_RELEASE}-	exit ;;-    SX-5:SUPER-UX:*:*)-	echo sx5-nec-superux${UNAME_RELEASE}-	exit ;;-    SX-6:SUPER-UX:*:*)-	echo sx6-nec-superux${UNAME_RELEASE}-	exit ;;-    SX-7:SUPER-UX:*:*)-	echo sx7-nec-superux${UNAME_RELEASE}-	exit ;;-    SX-8:SUPER-UX:*:*)-	echo sx8-nec-superux${UNAME_RELEASE}-	exit ;;-    SX-8R:SUPER-UX:*:*)-	echo sx8r-nec-superux${UNAME_RELEASE}-	exit ;;-    Power*:Rhapsody:*:*)-	echo powerpc-apple-rhapsody${UNAME_RELEASE}-	exit ;;-    *:Rhapsody:*:*)-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}-	exit ;;-    *:Darwin:*:*)-	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown-	eval $set_cc_for_build-	if test "$UNAME_PROCESSOR" = unknown ; then-	    UNAME_PROCESSOR=powerpc-	fi-	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then-	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then-		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \-		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \-		    grep IS_64BIT_ARCH >/dev/null-		then-		    case $UNAME_PROCESSOR in-			i386) UNAME_PROCESSOR=x86_64 ;;-			powerpc) UNAME_PROCESSOR=powerpc64 ;;-		    esac-		fi-	    fi-	elif test "$UNAME_PROCESSOR" = i386 ; then-	    # Avoid executing cc on OS X 10.9, as it ships with a stub-	    # that puts up a graphical alert prompting to install-	    # developer tools.  Any system running Mac OS X 10.7 or-	    # later (Darwin 11 and later) is required to have a 64-bit-	    # processor. This is not true of the ARM version of Darwin-	    # that Apple uses in portable devices.-	    UNAME_PROCESSOR=x86_64-	fi-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}-	exit ;;-    *:procnto*:*:* | *:QNX:[0123456789]*:*)-	UNAME_PROCESSOR=`uname -p`-	if test "$UNAME_PROCESSOR" = "x86"; then-		UNAME_PROCESSOR=i386-		UNAME_MACHINE=pc-	fi-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}-	exit ;;-    *:QNX:*:4*)-	echo i386-pc-qnx-	exit ;;-    NEO-?:NONSTOP_KERNEL:*:*)-	echo neo-tandem-nsk${UNAME_RELEASE}-	exit ;;-    NSE-*:NONSTOP_KERNEL:*:*)-	echo nse-tandem-nsk${UNAME_RELEASE}-	exit ;;-    NSR-?:NONSTOP_KERNEL:*:*)-	echo nsr-tandem-nsk${UNAME_RELEASE}-	exit ;;-    *:NonStop-UX:*:*)-	echo mips-compaq-nonstopux-	exit ;;-    BS2000:POSIX*:*:*)-	echo bs2000-siemens-sysv-	exit ;;-    DS/*:UNIX_System_V:*:*)-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}-	exit ;;-    *:Plan9:*:*)-	# "uname -m" is not consistent, so use $cputype instead. 386-	# is converted to i386 for consistency with other x86-	# operating systems.-	if test "$cputype" = "386"; then-	    UNAME_MACHINE=i386-	else-	    UNAME_MACHINE="$cputype"-	fi-	echo ${UNAME_MACHINE}-unknown-plan9-	exit ;;-    *:TOPS-10:*:*)-	echo pdp10-unknown-tops10-	exit ;;-    *:TENEX:*:*)-	echo pdp10-unknown-tenex-	exit ;;-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)-	echo pdp10-dec-tops20-	exit ;;-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)-	echo pdp10-xkl-tops20-	exit ;;-    *:TOPS-20:*:*)-	echo pdp10-unknown-tops20-	exit ;;-    *:ITS:*:*)-	echo pdp10-unknown-its-	exit ;;-    SEI:*:*:SEIUX)-	echo mips-sei-seiux${UNAME_RELEASE}-	exit ;;-    *:DragonFly:*:*)-	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-	exit ;;-    *:*VMS:*:*)-	UNAME_MACHINE=`(uname -p) 2>/dev/null`-	case "${UNAME_MACHINE}" in-	    A*) echo alpha-dec-vms ; exit ;;-	    I*) echo ia64-dec-vms ; exit ;;-	    V*) echo vax-dec-vms ; exit ;;-	esac ;;-    *:XENIX:*:SysV)-	echo i386-pc-xenix-	exit ;;-    i*86:skyos:*:*)-	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'-	exit ;;-    i*86:rdos:*:*)-	echo ${UNAME_MACHINE}-pc-rdos-	exit ;;-    i*86:AROS:*:*)-	echo ${UNAME_MACHINE}-pc-aros-	exit ;;-    x86_64:VMkernel:*:*)-	echo ${UNAME_MACHINE}-unknown-esx-	exit ;;-esac--cat >&2 <<EOF-$0: unable to guess system type--This script, last modified $timestamp, has failed to recognize-the operating system you are using. It is advised that you-download the most up to date version of the config scripts from--  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD-and-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD--If the version you run ($0) is already up to date, please-send the following data and any information you think might be-pertinent to <config-patches@gnu.org> in order to provide the needed-information to handle your system.--config.guess timestamp = $timestamp--uname -m = `(uname -m) 2>/dev/null || echo unknown`-uname -r = `(uname -r) 2>/dev/null || echo unknown`-uname -s = `(uname -s) 2>/dev/null || echo unknown`-uname -v = `(uname -v) 2>/dev/null || echo unknown`--/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`--hostinfo               = `(hostinfo) 2>/dev/null`-/bin/universe          = `(/bin/universe) 2>/dev/null`-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`-/bin/arch              = `(/bin/arch) 2>/dev/null`-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`--UNAME_MACHINE = ${UNAME_MACHINE}-UNAME_RELEASE = ${UNAME_RELEASE}-UNAME_SYSTEM  = ${UNAME_SYSTEM}-UNAME_VERSION = ${UNAME_VERSION}-EOF--exit 1--# Local variables:-# eval: (add-hook 'write-file-hooks 'time-stamp)-# time-stamp-start: "timestamp='"-# time-stamp-format: "%:y-%02m-%02d"-# time-stamp-end: "'"-# End:
− config.sub
@@ -1,1794 +0,0 @@-#! /bin/sh-# Configuration validation subroutine script.-#   Copyright 1992-2014 Free Software Foundation, Inc.--timestamp='2014-05-01'--# This file is free software; you can redistribute it and/or modify it-# under the terms of the GNU General Public License as published by-# the Free Software Foundation; either version 3 of the License, or-# (at your option) any later version.-#-# This program is distributed in the hope that it will be useful, but-# WITHOUT ANY WARRANTY; without even the implied warranty of-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU-# General Public License for more details.-#-# You should have received a copy of the GNU General Public License-# along with this program; if not, see <http://www.gnu.org/licenses/>.-#-# As a special exception to the GNU General Public License, if you-# distribute this file as part of a program that contains a-# configuration script generated by Autoconf, you may include it under-# the same distribution terms that you use for the rest of that-# program.  This Exception is an additional permission under section 7-# of the GNU General Public License, version 3 ("GPLv3").---# Please send patches with a ChangeLog entry to config-patches@gnu.org.-#-# Configuration subroutine to validate and canonicalize a configuration type.-# Supply the specified configuration type as an argument.-# If it is invalid, we print an error message on stderr and exit with code 1.-# Otherwise, we print the canonical config type on stdout and succeed.--# You can get the latest version of this script from:-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD--# This file is supposed to be the same for all GNU packages-# and recognize all the CPU types, system types and aliases-# that are meaningful with *any* GNU software.-# Each package is responsible for reporting which valid configurations-# it does not support.  The user should be able to distinguish-# a failure to support a valid configuration from a meaningless-# configuration.--# The goal of this file is to map all the various variations of a given-# machine specification into a single specification in the form:-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM-# or in some cases, the newer four-part form:-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM-# It is wrong to echo any other type of specification.--me=`echo "$0" | sed -e 's,.*/,,'`--usage="\-Usage: $0 [OPTION] CPU-MFR-OPSYS-       $0 [OPTION] ALIAS--Canonicalize a configuration name.--Operation modes:-  -h, --help         print this help, then exit-  -t, --time-stamp   print date of last modification, then exit-  -v, --version      print version number, then exit--Report bugs and patches to <config-patches@gnu.org>."--version="\-GNU config.sub ($timestamp)--Copyright 1992-2014 Free Software Foundation, Inc.--This is free software; see the source for copying conditions.  There is NO-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."--help="-Try \`$me --help' for more information."--# Parse command line-while test $# -gt 0 ; do-  case $1 in-    --time-stamp | --time* | -t )-       echo "$timestamp" ; exit ;;-    --version | -v )-       echo "$version" ; exit ;;-    --help | --h* | -h )-       echo "$usage"; exit ;;-    -- )     # Stop option processing-       shift; break ;;-    - )	# Use stdin as input.-       break ;;-    -* )-       echo "$me: invalid option $1$help"-       exit 1 ;;--    *local*)-       # First pass through any local machine types.-       echo $1-       exit ;;--    * )-       break ;;-  esac-done--case $# in- 0) echo "$me: missing argument$help" >&2-    exit 1;;- 1) ;;- *) echo "$me: too many arguments$help" >&2-    exit 1;;-esac--# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).-# Here we must recognize all the valid KERNEL-OS combinations.-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`-case $maybe_os in-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \-  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \-  knetbsd*-gnu* | netbsd*-gnu* | \-  kopensolaris*-gnu* | \-  storm-chaos* | os2-emx* | rtmk-nova*)-    os=-$maybe_os-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-    ;;-  android-linux)-    os=-linux-android-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown-    ;;-  *)-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`-    if [ $basic_machine != $1 ]-    then os=`echo $1 | sed 's/.*-/-/'`-    else os=; fi-    ;;-esac--### Let's recognize common machines as not being operating systems so-### that things like config.sub decstation-3100 work.  We also-### recognize some manufacturers as not being operating systems, so we-### can provide default operating systems below.-case $os in-	-sun*os*)-		# Prevent following clause from handling this invalid input.-		;;-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \-	-apple | -axis | -knuth | -cray | -microblaze*)-		os=-		basic_machine=$1-		;;-	-bluegene*)-		os=-cnk-		;;-	-sim | -cisco | -oki | -wec | -winbond)-		os=-		basic_machine=$1-		;;-	-scout)-		;;-	-wrs)-		os=-vxworks-		basic_machine=$1-		;;-	-chorusos*)-		os=-chorusos-		basic_machine=$1-		;;-	-chorusrdb)-		os=-chorusrdb-		basic_machine=$1-		;;-	-hiux*)-		os=-hiuxwe2-		;;-	-sco6)-		os=-sco5v6-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco5)-		os=-sco3.2v5-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco4)-		os=-sco3.2v4-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco3.2.[4-9]*)-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco3.2v[4-9]*)-		# Don't forget version if it is 3.2v4 or newer.-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco5v6*)-		# Don't forget version if it is 3.2v4 or newer.-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco*)-		os=-sco3.2v2-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-udk*)-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-isc)-		os=-isc2.2-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-clix*)-		basic_machine=clipper-intergraph-		;;-	-isc*)-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-lynx*178)-		os=-lynxos178-		;;-	-lynx*5)-		os=-lynxos5-		;;-	-lynx*)-		os=-lynxos-		;;-	-ptx*)-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`-		;;-	-windowsnt*)-		os=`echo $os | sed -e 's/windowsnt/winnt/'`-		;;-	-psos*)-		os=-psos-		;;-	-mint | -mint[0-9]*)-		basic_machine=m68k-atari-		os=-mint-		;;-esac--# Decode aliases for certain CPU-COMPANY combinations.-case $basic_machine in-	# Recognize the basic CPU types without company name.-	# Some are omitted here because they have special meanings below.-	1750a | 580 \-	| a29k \-	| aarch64 | aarch64_be \-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \-	| am33_2.0 \-	| arc | arceb \-	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \-	| avr | avr32 \-	| be32 | be64 \-	| bfin \-	| c4x | c8051 | clipper \-	| d10v | d30v | dlx | dsp16xx \-	| epiphany \-	| fido | fr30 | frv \-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \-	| hexagon \-	| i370 | i860 | i960 | ia64 \-	| ip2k | iq2000 \-	| k1om \-	| le32 | le64 \-	| lm32 \-	| m32c | m32r | m32rle | m68000 | m68k | m88k \-	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \-	| mips | mipsbe | mipseb | mipsel | mipsle \-	| mips16 \-	| mips64 | mips64el \-	| mips64octeon | mips64octeonel \-	| mips64orion | mips64orionel \-	| mips64r5900 | mips64r5900el \-	| mips64vr | mips64vrel \-	| mips64vr4100 | mips64vr4100el \-	| mips64vr4300 | mips64vr4300el \-	| mips64vr5000 | mips64vr5000el \-	| mips64vr5900 | mips64vr5900el \-	| mipsisa32 | mipsisa32el \-	| mipsisa32r2 | mipsisa32r2el \-	| mipsisa32r6 | mipsisa32r6el \-	| mipsisa64 | mipsisa64el \-	| mipsisa64r2 | mipsisa64r2el \-	| mipsisa64r6 | mipsisa64r6el \-	| mipsisa64sb1 | mipsisa64sb1el \-	| mipsisa64sr71k | mipsisa64sr71kel \-	| mipsr5900 | mipsr5900el \-	| mipstx39 | mipstx39el \-	| mn10200 | mn10300 \-	| moxie \-	| mt \-	| msp430 \-	| nds32 | nds32le | nds32be \-	| nios | nios2 | nios2eb | nios2el \-	| ns16k | ns32k \-	| open8 | or1k | or1knd | or32 \-	| pdp10 | pdp11 | pj | pjl \-	| powerpc | powerpc64 | powerpc64le | powerpcle \-	| pyramid \-	| rl78 | rx \-	| score \-	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \-	| sh64 | sh64le \-	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \-	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \-	| spu \-	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \-	| ubicom32 \-	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \-	| we32k \-	| x86 | xc16x | xstormy16 | xtensa \-	| z8k | z80)-		basic_machine=$basic_machine-unknown-		;;-	c54x)-		basic_machine=tic54x-unknown-		;;-	c55x)-		basic_machine=tic55x-unknown-		;;-	c6x)-		basic_machine=tic6x-unknown-		;;-	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)-		basic_machine=$basic_machine-unknown-		os=-none-		;;-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)-		;;-	ms1)-		basic_machine=mt-unknown-		;;--	strongarm | thumb | xscale)-		basic_machine=arm-unknown-		;;-	xgate)-		basic_machine=$basic_machine-unknown-		os=-none-		;;-	xscaleeb)-		basic_machine=armeb-unknown-		;;--	xscaleel)-		basic_machine=armel-unknown-		;;--	# We use `pc' rather than `unknown'-	# because (1) that's what they normally are, and-	# (2) the word "unknown" tends to confuse beginning users.-	i*86 | x86_64)-	  basic_machine=$basic_machine-pc-	  ;;-	# Object if more than one company name word.-	*-*-*)-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2-		exit 1-		;;-	# Recognize the basic CPU types with company name.-	580-* \-	| a29k-* \-	| aarch64-* | aarch64_be-* \-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \-	| avr-* | avr32-* \-	| be32-* | be64-* \-	| bfin-* | bs2000-* \-	| c[123]* | c30-* | [cjt]90-* | c4x-* \-	| c8051-* | clipper-* | craynv-* | cydra-* \-	| d10v-* | d30v-* | dlx-* \-	| elxsi-* \-	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \-	| h8300-* | h8500-* \-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \-	| hexagon-* \-	| i*86-* | i860-* | i960-* | ia64-* \-	| ip2k-* | iq2000-* \-	| k1om-* \-	| le32-* | le64-* \-	| lm32-* \-	| m32c-* | m32r-* | m32rle-* \-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \-	| microblaze-* | microblazeel-* \-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \-	| mips16-* \-	| mips64-* | mips64el-* \-	| mips64octeon-* | mips64octeonel-* \-	| mips64orion-* | mips64orionel-* \-	| mips64r5900-* | mips64r5900el-* \-	| mips64vr-* | mips64vrel-* \-	| mips64vr4100-* | mips64vr4100el-* \-	| mips64vr4300-* | mips64vr4300el-* \-	| mips64vr5000-* | mips64vr5000el-* \-	| mips64vr5900-* | mips64vr5900el-* \-	| mipsisa32-* | mipsisa32el-* \-	| mipsisa32r2-* | mipsisa32r2el-* \-	| mipsisa32r6-* | mipsisa32r6el-* \-	| mipsisa64-* | mipsisa64el-* \-	| mipsisa64r2-* | mipsisa64r2el-* \-	| mipsisa64r6-* | mipsisa64r6el-* \-	| mipsisa64sb1-* | mipsisa64sb1el-* \-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \-	| mipsr5900-* | mipsr5900el-* \-	| mipstx39-* | mipstx39el-* \-	| mmix-* \-	| mt-* \-	| msp430-* \-	| nds32-* | nds32le-* | nds32be-* \-	| nios-* | nios2-* | nios2eb-* | nios2el-* \-	| none-* | np1-* | ns16k-* | ns32k-* \-	| open8-* \-	| or1k*-* \-	| orion-* \-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \-	| pyramid-* \-	| rl78-* | romp-* | rs6000-* | rx-* \-	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \-	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \-	| sparclite-* \-	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \-	| tahoe-* \-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \-	| tile*-* \-	| tron-* \-	| ubicom32-* \-	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \-	| vax-* \-	| we32k-* \-	| x86-* | x86_64-* | xc16x-* | xps100-* \-	| xstormy16-* | xtensa*-* \-	| ymp-* \-	| z8k-* | z80-*)-		;;-	# Recognize the basic CPU types without company name, with glob match.-	xtensa*)-		basic_machine=$basic_machine-unknown-		;;-	# Recognize the various machine names and aliases which stand-	# for a CPU type and a company and sometimes even an OS.-	386bsd)-		basic_machine=i386-unknown-		os=-bsd-		;;-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)-		basic_machine=m68000-att-		;;-	3b*)-		basic_machine=we32k-att-		;;-	a29khif)-		basic_machine=a29k-amd-		os=-udi-		;;-	abacus)-		basic_machine=abacus-unknown-		;;-	adobe68k)-		basic_machine=m68010-adobe-		os=-scout-		;;-	alliant | fx80)-		basic_machine=fx80-alliant-		;;-	altos | altos3068)-		basic_machine=m68k-altos-		;;-	am29k)-		basic_machine=a29k-none-		os=-bsd-		;;-	amd64)-		basic_machine=x86_64-pc-		;;-	amd64-*)-		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	amdahl)-		basic_machine=580-amdahl-		os=-sysv-		;;-	amiga | amiga-*)-		basic_machine=m68k-unknown-		;;-	amigaos | amigados)-		basic_machine=m68k-unknown-		os=-amigaos-		;;-	amigaunix | amix)-		basic_machine=m68k-unknown-		os=-sysv4-		;;-	apollo68)-		basic_machine=m68k-apollo-		os=-sysv-		;;-	apollo68bsd)-		basic_machine=m68k-apollo-		os=-bsd-		;;-	aros)-		basic_machine=i386-pc-		os=-aros-		;;-	aux)-		basic_machine=m68k-apple-		os=-aux-		;;-	balance)-		basic_machine=ns32k-sequent-		os=-dynix-		;;-	blackfin)-		basic_machine=bfin-unknown-		os=-linux-		;;-	blackfin-*)-		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`-		os=-linux-		;;-	bluegene*)-		basic_machine=powerpc-ibm-		os=-cnk-		;;-	c54x-*)-		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	c55x-*)-		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	c6x-*)-		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	c90)-		basic_machine=c90-cray-		os=-unicos-		;;-	cegcc)-		basic_machine=arm-unknown-		os=-cegcc-		;;-	convex-c1)-		basic_machine=c1-convex-		os=-bsd-		;;-	convex-c2)-		basic_machine=c2-convex-		os=-bsd-		;;-	convex-c32)-		basic_machine=c32-convex-		os=-bsd-		;;-	convex-c34)-		basic_machine=c34-convex-		os=-bsd-		;;-	convex-c38)-		basic_machine=c38-convex-		os=-bsd-		;;-	cray | j90)-		basic_machine=j90-cray-		os=-unicos-		;;-	craynv)-		basic_machine=craynv-cray-		os=-unicosmp-		;;-	cr16 | cr16-*)-		basic_machine=cr16-unknown-		os=-elf-		;;-	crds | unos)-		basic_machine=m68k-crds-		;;-	crisv32 | crisv32-* | etraxfs*)-		basic_machine=crisv32-axis-		;;-	cris | cris-* | etrax*)-		basic_machine=cris-axis-		;;-	crx)-		basic_machine=crx-unknown-		os=-elf-		;;-	da30 | da30-*)-		basic_machine=m68k-da30-		;;-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)-		basic_machine=mips-dec-		;;-	decsystem10* | dec10*)-		basic_machine=pdp10-dec-		os=-tops10-		;;-	decsystem20* | dec20*)-		basic_machine=pdp10-dec-		os=-tops20-		;;-	delta | 3300 | motorola-3300 | motorola-delta \-	      | 3300-motorola | delta-motorola)-		basic_machine=m68k-motorola-		;;-	delta88)-		basic_machine=m88k-motorola-		os=-sysv3-		;;-	dicos)-		basic_machine=i686-pc-		os=-dicos-		;;-	djgpp)-		basic_machine=i586-pc-		os=-msdosdjgpp-		;;-	dpx20 | dpx20-*)-		basic_machine=rs6000-bull-		os=-bosx-		;;-	dpx2* | dpx2*-bull)-		basic_machine=m68k-bull-		os=-sysv3-		;;-	ebmon29k)-		basic_machine=a29k-amd-		os=-ebmon-		;;-	elxsi)-		basic_machine=elxsi-elxsi-		os=-bsd-		;;-	encore | umax | mmax)-		basic_machine=ns32k-encore-		;;-	es1800 | OSE68k | ose68k | ose | OSE)-		basic_machine=m68k-ericsson-		os=-ose-		;;-	fx2800)-		basic_machine=i860-alliant-		;;-	genix)-		basic_machine=ns32k-ns-		;;-	gmicro)-		basic_machine=tron-gmicro-		os=-sysv-		;;-	go32)-		basic_machine=i386-pc-		os=-go32-		;;-	h3050r* | hiux*)-		basic_machine=hppa1.1-hitachi-		os=-hiuxwe2-		;;-	h8300hms)-		basic_machine=h8300-hitachi-		os=-hms-		;;-	h8300xray)-		basic_machine=h8300-hitachi-		os=-xray-		;;-	h8500hms)-		basic_machine=h8500-hitachi-		os=-hms-		;;-	harris)-		basic_machine=m88k-harris-		os=-sysv3-		;;-	hp300-*)-		basic_machine=m68k-hp-		;;-	hp300bsd)-		basic_machine=m68k-hp-		os=-bsd-		;;-	hp300hpux)-		basic_machine=m68k-hp-		os=-hpux-		;;-	hp3k9[0-9][0-9] | hp9[0-9][0-9])-		basic_machine=hppa1.0-hp-		;;-	hp9k2[0-9][0-9] | hp9k31[0-9])-		basic_machine=m68000-hp-		;;-	hp9k3[2-9][0-9])-		basic_machine=m68k-hp-		;;-	hp9k6[0-9][0-9] | hp6[0-9][0-9])-		basic_machine=hppa1.0-hp-		;;-	hp9k7[0-79][0-9] | hp7[0-79][0-9])-		basic_machine=hppa1.1-hp-		;;-	hp9k78[0-9] | hp78[0-9])-		# FIXME: really hppa2.0-hp-		basic_machine=hppa1.1-hp-		;;-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)-		# FIXME: really hppa2.0-hp-		basic_machine=hppa1.1-hp-		;;-	hp9k8[0-9][13679] | hp8[0-9][13679])-		basic_machine=hppa1.1-hp-		;;-	hp9k8[0-9][0-9] | hp8[0-9][0-9])-		basic_machine=hppa1.0-hp-		;;-	hppa-next)-		os=-nextstep3-		;;-	hppaosf)-		basic_machine=hppa1.1-hp-		os=-osf-		;;-	hppro)-		basic_machine=hppa1.1-hp-		os=-proelf-		;;-	i370-ibm* | ibm*)-		basic_machine=i370-ibm-		;;-	i*86v32)-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`-		os=-sysv32-		;;-	i*86v4*)-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`-		os=-sysv4-		;;-	i*86v)-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`-		os=-sysv-		;;-	i*86sol2)-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`-		os=-solaris2-		;;-	i386mach)-		basic_machine=i386-mach-		os=-mach-		;;-	i386-vsta | vsta)-		basic_machine=i386-unknown-		os=-vsta-		;;-	iris | iris4d)-		basic_machine=mips-sgi-		case $os in-		    -irix*)-			;;-		    *)-			os=-irix4-			;;-		esac-		;;-	isi68 | isi)-		basic_machine=m68k-isi-		os=-sysv-		;;-	m68knommu)-		basic_machine=m68k-unknown-		os=-linux-		;;-	m68knommu-*)-		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`-		os=-linux-		;;-	m88k-omron*)-		basic_machine=m88k-omron-		;;-	magnum | m3230)-		basic_machine=mips-mips-		os=-sysv-		;;-	merlin)-		basic_machine=ns32k-utek-		os=-sysv-		;;-	microblaze*)-		basic_machine=microblaze-xilinx-		;;-	mingw64)-		basic_machine=x86_64-pc-		os=-mingw64-		;;-	mingw32)-		basic_machine=i686-pc-		os=-mingw32-		;;-	mingw32ce)-		basic_machine=arm-unknown-		os=-mingw32ce-		;;-	miniframe)-		basic_machine=m68000-convergent-		;;-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)-		basic_machine=m68k-atari-		os=-mint-		;;-	mips3*-*)-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-		;;-	mips3*)-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown-		;;-	monitor)-		basic_machine=m68k-rom68k-		os=-coff-		;;-	morphos)-		basic_machine=powerpc-unknown-		os=-morphos-		;;-	msdos)-		basic_machine=i386-pc-		os=-msdos-		;;-	ms1-*)-		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`-		;;-	msys)-		basic_machine=i686-pc-		os=-msys-		;;-	mvs)-		basic_machine=i370-ibm-		os=-mvs-		;;-	nacl)-		basic_machine=le32-unknown-		os=-nacl-		;;-	ncr3000)-		basic_machine=i486-ncr-		os=-sysv4-		;;-	netbsd386)-		basic_machine=i386-unknown-		os=-netbsd-		;;-	netwinder)-		basic_machine=armv4l-rebel-		os=-linux-		;;-	news | news700 | news800 | news900)-		basic_machine=m68k-sony-		os=-newsos-		;;-	news1000)-		basic_machine=m68030-sony-		os=-newsos-		;;-	news-3600 | risc-news)-		basic_machine=mips-sony-		os=-newsos-		;;-	necv70)-		basic_machine=v70-nec-		os=-sysv-		;;-	next | m*-next )-		basic_machine=m68k-next-		case $os in-		    -nextstep* )-			;;-		    -ns2*)-		      os=-nextstep2-			;;-		    *)-		      os=-nextstep3-			;;-		esac-		;;-	nh3000)-		basic_machine=m68k-harris-		os=-cxux-		;;-	nh[45]000)-		basic_machine=m88k-harris-		os=-cxux-		;;-	nindy960)-		basic_machine=i960-intel-		os=-nindy-		;;-	mon960)-		basic_machine=i960-intel-		os=-mon960-		;;-	nonstopux)-		basic_machine=mips-compaq-		os=-nonstopux-		;;-	np1)-		basic_machine=np1-gould-		;;-	neo-tandem)-		basic_machine=neo-tandem-		;;-	nse-tandem)-		basic_machine=nse-tandem-		;;-	nsr-tandem)-		basic_machine=nsr-tandem-		;;-	op50n-* | op60c-*)-		basic_machine=hppa1.1-oki-		os=-proelf-		;;-	openrisc | openrisc-*)-		basic_machine=or32-unknown-		;;-	os400)-		basic_machine=powerpc-ibm-		os=-os400-		;;-	OSE68000 | ose68000)-		basic_machine=m68000-ericsson-		os=-ose-		;;-	os68k)-		basic_machine=m68k-none-		os=-os68k-		;;-	pa-hitachi)-		basic_machine=hppa1.1-hitachi-		os=-hiuxwe2-		;;-	paragon)-		basic_machine=i860-intel-		os=-osf-		;;-	parisc)-		basic_machine=hppa-unknown-		os=-linux-		;;-	parisc-*)-		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`-		os=-linux-		;;-	pbd)-		basic_machine=sparc-tti-		;;-	pbb)-		basic_machine=m68k-tti-		;;-	pc532 | pc532-*)-		basic_machine=ns32k-pc532-		;;-	pc98)-		basic_machine=i386-pc-		;;-	pc98-*)-		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	pentium | p5 | k5 | k6 | nexgen | viac3)-		basic_machine=i586-pc-		;;-	pentiumpro | p6 | 6x86 | athlon | athlon_*)-		basic_machine=i686-pc-		;;-	pentiumii | pentium2 | pentiumiii | pentium3)-		basic_machine=i686-pc-		;;-	pentium4)-		basic_machine=i786-pc-		;;-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	pentiumpro-* | p6-* | 6x86-* | athlon-*)-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	pentium4-*)-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	pn)-		basic_machine=pn-gould-		;;-	power)	basic_machine=power-ibm-		;;-	ppc | ppcbe)	basic_machine=powerpc-unknown-		;;-	ppc-* | ppcbe-*)-		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	ppcle | powerpclittle | ppc-le | powerpc-little)-		basic_machine=powerpcle-unknown-		;;-	ppcle-* | powerpclittle-*)-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	ppc64)	basic_machine=powerpc64-unknown-		;;-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)-		basic_machine=powerpc64le-unknown-		;;-	ppc64le-* | powerpc64little-*)-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	ps2)-		basic_machine=i386-ibm-		;;-	pw32)-		basic_machine=i586-unknown-		os=-pw32-		;;-	rdos | rdos64)-		basic_machine=x86_64-pc-		os=-rdos-		;;-	rdos32)-		basic_machine=i386-pc-		os=-rdos-		;;-	rom68k)-		basic_machine=m68k-rom68k-		os=-coff-		;;-	rm[46]00)-		basic_machine=mips-siemens-		;;-	rtpc | rtpc-*)-		basic_machine=romp-ibm-		;;-	s390 | s390-*)-		basic_machine=s390-ibm-		;;-	s390x | s390x-*)-		basic_machine=s390x-ibm-		;;-	sa29200)-		basic_machine=a29k-amd-		os=-udi-		;;-	sb1)-		basic_machine=mipsisa64sb1-unknown-		;;-	sb1el)-		basic_machine=mipsisa64sb1el-unknown-		;;-	sde)-		basic_machine=mipsisa32-sde-		os=-elf-		;;-	sei)-		basic_machine=mips-sei-		os=-seiux-		;;-	sequent)-		basic_machine=i386-sequent-		;;-	sh)-		basic_machine=sh-hitachi-		os=-hms-		;;-	sh5el)-		basic_machine=sh5le-unknown-		;;-	sh64)-		basic_machine=sh64-unknown-		;;-	sparclite-wrs | simso-wrs)-		basic_machine=sparclite-wrs-		os=-vxworks-		;;-	sps7)-		basic_machine=m68k-bull-		os=-sysv2-		;;-	spur)-		basic_machine=spur-unknown-		;;-	st2000)-		basic_machine=m68k-tandem-		;;-	stratus)-		basic_machine=i860-stratus-		os=-sysv4-		;;-	strongarm-* | thumb-*)-		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	sun2)-		basic_machine=m68000-sun-		;;-	sun2os3)-		basic_machine=m68000-sun-		os=-sunos3-		;;-	sun2os4)-		basic_machine=m68000-sun-		os=-sunos4-		;;-	sun3os3)-		basic_machine=m68k-sun-		os=-sunos3-		;;-	sun3os4)-		basic_machine=m68k-sun-		os=-sunos4-		;;-	sun4os3)-		basic_machine=sparc-sun-		os=-sunos3-		;;-	sun4os4)-		basic_machine=sparc-sun-		os=-sunos4-		;;-	sun4sol2)-		basic_machine=sparc-sun-		os=-solaris2-		;;-	sun3 | sun3-*)-		basic_machine=m68k-sun-		;;-	sun4)-		basic_machine=sparc-sun-		;;-	sun386 | sun386i | roadrunner)-		basic_machine=i386-sun-		;;-	sv1)-		basic_machine=sv1-cray-		os=-unicos-		;;-	symmetry)-		basic_machine=i386-sequent-		os=-dynix-		;;-	t3e)-		basic_machine=alphaev5-cray-		os=-unicos-		;;-	t90)-		basic_machine=t90-cray-		os=-unicos-		;;-	tile*)-		basic_machine=$basic_machine-unknown-		os=-linux-gnu-		;;-	tx39)-		basic_machine=mipstx39-unknown-		;;-	tx39el)-		basic_machine=mipstx39el-unknown-		;;-	toad1)-		basic_machine=pdp10-xkl-		os=-tops20-		;;-	tower | tower-32)-		basic_machine=m68k-ncr-		;;-	tpf)-		basic_machine=s390x-ibm-		os=-tpf-		;;-	udi29k)-		basic_machine=a29k-amd-		os=-udi-		;;-	ultra3)-		basic_machine=a29k-nyu-		os=-sym1-		;;-	v810 | necv810)-		basic_machine=v810-nec-		os=-none-		;;-	vaxv)-		basic_machine=vax-dec-		os=-sysv-		;;-	vms)-		basic_machine=vax-dec-		os=-vms-		;;-	vpp*|vx|vx-*)-		basic_machine=f301-fujitsu-		;;-	vxworks960)-		basic_machine=i960-wrs-		os=-vxworks-		;;-	vxworks68)-		basic_machine=m68k-wrs-		os=-vxworks-		;;-	vxworks29k)-		basic_machine=a29k-wrs-		os=-vxworks-		;;-	w65*)-		basic_machine=w65-wdc-		os=-none-		;;-	w89k-*)-		basic_machine=hppa1.1-winbond-		os=-proelf-		;;-	xbox)-		basic_machine=i686-pc-		os=-mingw32-		;;-	xps | xps100)-		basic_machine=xps100-honeywell-		;;-	xscale-* | xscalee[bl]-*)-		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`-		;;-	ymp)-		basic_machine=ymp-cray-		os=-unicos-		;;-	z8k-*-coff)-		basic_machine=z8k-unknown-		os=-sim-		;;-	z80-*-coff)-		basic_machine=z80-unknown-		os=-sim-		;;-	none)-		basic_machine=none-none-		os=-none-		;;--# Here we handle the default manufacturer of certain CPU types.  It is in-# some cases the only manufacturer, in others, it is the most popular.-	w89k)-		basic_machine=hppa1.1-winbond-		;;-	op50n)-		basic_machine=hppa1.1-oki-		;;-	op60c)-		basic_machine=hppa1.1-oki-		;;-	romp)-		basic_machine=romp-ibm-		;;-	mmix)-		basic_machine=mmix-knuth-		;;-	rs6000)-		basic_machine=rs6000-ibm-		;;-	vax)-		basic_machine=vax-dec-		;;-	pdp10)-		# there are many clones, so DEC is not a safe bet-		basic_machine=pdp10-unknown-		;;-	pdp11)-		basic_machine=pdp11-dec-		;;-	we32k)-		basic_machine=we32k-att-		;;-	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)-		basic_machine=sh-unknown-		;;-	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)-		basic_machine=sparc-sun-		;;-	cydra)-		basic_machine=cydra-cydrome-		;;-	orion)-		basic_machine=orion-highlevel-		;;-	orion105)-		basic_machine=clipper-highlevel-		;;-	mac | mpw | mac-mpw)-		basic_machine=m68k-apple-		;;-	pmac | pmac-mpw)-		basic_machine=powerpc-apple-		;;-	*-unknown)-		# Make sure to match an already-canonicalized machine name.-		;;-	*)-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2-		exit 1-		;;-esac--# Here we canonicalize certain aliases for manufacturers.-case $basic_machine in-	*-digital*)-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`-		;;-	*-commodore*)-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`-		;;-	*)-		;;-esac--# Decode manufacturer-specific aliases for certain operating systems.--if [ x"$os" != x"" ]-then-case $os in-	# First match some system type aliases-	# that might get confused with valid system types.-	# -solaris* is a basic system type, with this one exception.-	-auroraux)-		os=-auroraux-		;;-	-solaris1 | -solaris1.*)-		os=`echo $os | sed -e 's|solaris1|sunos4|'`-		;;-	-solaris)-		os=-solaris2-		;;-	-svr4*)-		os=-sysv4-		;;-	-unixware*)-		os=-sysv4.2uw-		;;-	-gnu/linux*)-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`-		;;-	# First accept the basic system types.-	# The portable systems comes first.-	# Each alternative MUST END IN A *, to match a version number.-	# -sysv* is not here because it comes later, after sysvr4.-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \-	      | -sym* | -kopensolaris* | -plan9* \-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \-	      | -aos* | -aros* \-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \-	      | -bitrig* | -openbsd* | -solidbsd* \-	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \-	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \-	      | -chorusos* | -chorusrdb* | -cegcc* \-	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \-	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \-	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \-	      | -uxpv* | -beos* | -mpeix* | -udk* \-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)-	# Remember, each alternative MUST END IN *, to match a version number.-		;;-	-qnx*)-		case $basic_machine in-		    x86-* | i*86-*)-			;;-		    *)-			os=-nto$os-			;;-		esac-		;;-	-nto-qnx*)-		;;-	-nto*)-		os=`echo $os | sed -e 's|nto|nto-qnx|'`-		;;-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)-		;;-	-mac*)-		os=`echo $os | sed -e 's|mac|macos|'`-		;;-	-linux-dietlibc)-		os=-linux-dietlibc-		;;-	-linux*)-		os=`echo $os | sed -e 's|linux|linux-gnu|'`-		;;-	-sunos5*)-		os=`echo $os | sed -e 's|sunos5|solaris2|'`-		;;-	-sunos6*)-		os=`echo $os | sed -e 's|sunos6|solaris3|'`-		;;-	-opened*)-		os=-openedition-		;;-	-os400*)-		os=-os400-		;;-	-wince*)-		os=-wince-		;;-	-osfrose*)-		os=-osfrose-		;;-	-osf*)-		os=-osf-		;;-	-utek*)-		os=-bsd-		;;-	-dynix*)-		os=-bsd-		;;-	-acis*)-		os=-aos-		;;-	-atheos*)-		os=-atheos-		;;-	-syllable*)-		os=-syllable-		;;-	-386bsd)-		os=-bsd-		;;-	-ctix* | -uts*)-		os=-sysv-		;;-	-nova*)-		os=-rtmk-nova-		;;-	-ns2 )-		os=-nextstep2-		;;-	-nsk*)-		os=-nsk-		;;-	# Preserve the version number of sinix5.-	-sinix5.*)-		os=`echo $os | sed -e 's|sinix|sysv|'`-		;;-	-sinix*)-		os=-sysv4-		;;-	-tpf*)-		os=-tpf-		;;-	-triton*)-		os=-sysv3-		;;-	-oss*)-		os=-sysv3-		;;-	-svr4)-		os=-sysv4-		;;-	-svr3)-		os=-sysv3-		;;-	-sysvr4)-		os=-sysv4-		;;-	# This must come after -sysvr4.-	-sysv*)-		;;-	-ose*)-		os=-ose-		;;-	-es1800*)-		os=-ose-		;;-	-xenix)-		os=-xenix-		;;-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)-		os=-mint-		;;-	-aros*)-		os=-aros-		;;-	-zvmoe)-		os=-zvmoe-		;;-	-dicos*)-		os=-dicos-		;;-	-nacl*)-		;;-	-none)-		;;-	*)-		# Get rid of the `-' at the beginning of $os.-		os=`echo $os | sed 's/[^-]*-//'`-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2-		exit 1-		;;-esac-else--# Here we handle the default operating systems that come with various machines.-# The value should be what the vendor currently ships out the door with their-# machine or put another way, the most popular os provided with the machine.--# Note that if you're going to try to match "-MANUFACTURER" here (say,-# "-sun"), then you have to tell the case statement up towards the top-# that MANUFACTURER isn't an operating system.  Otherwise, code above-# will signal an error saying that MANUFACTURER isn't an operating-# system, and we'll never get to this point.--case $basic_machine in-	score-*)-		os=-elf-		;;-	spu-*)-		os=-elf-		;;-	*-acorn)-		os=-riscix1.2-		;;-	arm*-rebel)-		os=-linux-		;;-	arm*-semi)-		os=-aout-		;;-	c4x-* | tic4x-*)-		os=-coff-		;;-	c8051-*)-		os=-elf-		;;-	hexagon-*)-		os=-elf-		;;-	tic54x-*)-		os=-coff-		;;-	tic55x-*)-		os=-coff-		;;-	tic6x-*)-		os=-coff-		;;-	# This must come before the *-dec entry.-	pdp10-*)-		os=-tops20-		;;-	pdp11-*)-		os=-none-		;;-	*-dec | vax-*)-		os=-ultrix4.2-		;;-	m68*-apollo)-		os=-domain-		;;-	i386-sun)-		os=-sunos4.0.2-		;;-	m68000-sun)-		os=-sunos3-		;;-	m68*-cisco)-		os=-aout-		;;-	mep-*)-		os=-elf-		;;-	mips*-cisco)-		os=-elf-		;;-	mips*-*)-		os=-elf-		;;-	or32-*)-		os=-coff-		;;-	*-tti)	# must be before sparc entry or we get the wrong os.-		os=-sysv3-		;;-	sparc-* | *-sun)-		os=-sunos4.1.1-		;;-	*-be)-		os=-beos-		;;-	*-haiku)-		os=-haiku-		;;-	*-ibm)-		os=-aix-		;;-	*-knuth)-		os=-mmixware-		;;-	*-wec)-		os=-proelf-		;;-	*-winbond)-		os=-proelf-		;;-	*-oki)-		os=-proelf-		;;-	*-hp)-		os=-hpux-		;;-	*-hitachi)-		os=-hiux-		;;-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)-		os=-sysv-		;;-	*-cbm)-		os=-amigaos-		;;-	*-dg)-		os=-dgux-		;;-	*-dolphin)-		os=-sysv3-		;;-	m68k-ccur)-		os=-rtu-		;;-	m88k-omron*)-		os=-luna-		;;-	*-next )-		os=-nextstep-		;;-	*-sequent)-		os=-ptx-		;;-	*-crds)-		os=-unos-		;;-	*-ns)-		os=-genix-		;;-	i370-*)-		os=-mvs-		;;-	*-next)-		os=-nextstep3-		;;-	*-gould)-		os=-sysv-		;;-	*-highlevel)-		os=-bsd-		;;-	*-encore)-		os=-bsd-		;;-	*-sgi)-		os=-irix-		;;-	*-siemens)-		os=-sysv4-		;;-	*-masscomp)-		os=-rtu-		;;-	f30[01]-fujitsu | f700-fujitsu)-		os=-uxpv-		;;-	*-rom68k)-		os=-coff-		;;-	*-*bug)-		os=-coff-		;;-	*-apple)-		os=-macos-		;;-	*-atari*)-		os=-mint-		;;-	*)-		os=-none-		;;-esac-fi--# Here we handle the case where we know the os, and the CPU type, but not the-# manufacturer.  We pick the logical manufacturer.-vendor=unknown-case $basic_machine in-	*-unknown)-		case $os in-			-riscix*)-				vendor=acorn-				;;-			-sunos*)-				vendor=sun-				;;-			-cnk*|-aix*)-				vendor=ibm-				;;-			-beos*)-				vendor=be-				;;-			-hpux*)-				vendor=hp-				;;-			-mpeix*)-				vendor=hp-				;;-			-hiux*)-				vendor=hitachi-				;;-			-unos*)-				vendor=crds-				;;-			-dgux*)-				vendor=dg-				;;-			-luna*)-				vendor=omron-				;;-			-genix*)-				vendor=ns-				;;-			-mvs* | -opened*)-				vendor=ibm-				;;-			-os400*)-				vendor=ibm-				;;-			-ptx*)-				vendor=sequent-				;;-			-tpf*)-				vendor=ibm-				;;-			-vxsim* | -vxworks* | -windiss*)-				vendor=wrs-				;;-			-aux*)-				vendor=apple-				;;-			-hms*)-				vendor=hitachi-				;;-			-mpw* | -macos*)-				vendor=apple-				;;-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)-				vendor=atari-				;;-			-vos*)-				vendor=stratus-				;;-		esac-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`-		;;-esac--echo $basic_machine$os-exit--# Local variables:-# eval: (add-hook 'write-file-hooks 'time-stamp)-# time-stamp-start: "timestamp='"-# time-stamp-format: "%:y-%02m-%02d"-# time-stamp-end: "'"-# End:
− configure
@@ -1,5273 +0,0 @@-#! /bin/sh-# Guess values for system-dependent variables and create Makefiles.-# Generated by GNU Autoconf 2.69 for Haskell integer (GMP) 1.0.-#-# Report bugs to <libraries@haskell.org>.-#-#-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.-#-#-# This configure script is free software; the Free Software Foundation-# gives unlimited permission to copy, distribute and modify it.-## -------------------- ##-## M4sh Initialization. ##-## -------------------- ##--# Be more Bourne compatible-DUALCASE=1; export DUALCASE # for MKS sh-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :-  emulate sh-  NULLCMD=:-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which-  # is contrary to our usage.  Disable this feature.-  alias -g '${1+"$@"}'='"$@"'-  setopt NO_GLOB_SUBST-else-  case `(set -o) 2>/dev/null` in #(-  *posix*) :-    set -o posix ;; #(-  *) :-     ;;-esac-fi---as_nl='-'-export as_nl-# Printing a long string crashes Solaris 7 /usr/bin/printf.-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo-# Prefer a ksh shell builtin over an external printf program on Solaris,-# but without wasting forks for bash or zsh.-if test -z "$BASH_VERSION$ZSH_VERSION" \-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then-  as_echo='print -r --'-  as_echo_n='print -rn --'-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then-  as_echo='printf %s\n'-  as_echo_n='printf %s'-else-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'-    as_echo_n='/usr/ucb/echo -n'-  else-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'-    as_echo_n_body='eval-      arg=$1;-      case $arg in #(-      *"$as_nl"*)-	expr "X$arg" : "X\\(.*\\)$as_nl";-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;-      esac;-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"-    '-    export as_echo_n_body-    as_echo_n='sh -c $as_echo_n_body as_echo'-  fi-  export as_echo_body-  as_echo='sh -c $as_echo_body as_echo'-fi--# The user is always right.-if test "${PATH_SEPARATOR+set}" != set; then-  PATH_SEPARATOR=:-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||-      PATH_SEPARATOR=';'-  }-fi---# IFS-# We need space, tab and new line, in precisely that order.  Quoting is-# there to prevent editors from complaining about space-tab.-# (If _AS_PATH_WALK were called with IFS unset, it would disable word-# splitting by setting IFS to empty value.)-IFS=" ""	$as_nl"--# Find who we are.  Look in the path if we contain no directory separator.-as_myself=-case $0 in #((-  *[\\/]* ) as_myself=$0 ;;-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break-  done-IFS=$as_save_IFS--     ;;-esac-# We did not find ourselves, most probably we were run as `sh COMMAND'-# in which case we are not to be found in the path.-if test "x$as_myself" = x; then-  as_myself=$0-fi-if test ! -f "$as_myself"; then-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2-  exit 1-fi--# Unset variables that we do not need and which cause bugs (e.g. in-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"-# suppresses any "Segmentation fault" message there.  '((' could-# trigger a bug in pdksh 5.2.14.-for as_var in BASH_ENV ENV MAIL MAILPATH-do eval test x\${$as_var+set} = xset \-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :-done-PS1='$ '-PS2='> '-PS4='+ '--# NLS nuisances.-LC_ALL=C-export LC_ALL-LANGUAGE=C-export LANGUAGE--# CDPATH.-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH--# Use a proper internal environment variable to ensure we don't fall-  # into an infinite loop, continuously re-executing ourselves.-  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then-    _as_can_reexec=no; export _as_can_reexec;-    # We cannot yet assume a decent shell, so we have to provide a-# neutralization value for shells without unset; and this also-# works around shells that cannot unset nonexistent variables.-# Preserve -v and -x to the replacement shell.-BASH_ENV=/dev/null-ENV=/dev/null-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV-case $- in # ((((-  *v*x* | *x*v* ) as_opts=-vx ;;-  *v* ) as_opts=-v ;;-  *x* ) as_opts=-x ;;-  * ) as_opts= ;;-esac-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}-# Admittedly, this is quite paranoid, since all the known shells bail-# out after a failed `exec'.-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2-as_fn_exit 255-  fi-  # We don't want this to propagate to other subprocesses.-          { _as_can_reexec=; unset _as_can_reexec;}-if test "x$CONFIG_SHELL" = x; then-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :-  emulate sh-  NULLCMD=:-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which-  # is contrary to our usage.  Disable this feature.-  alias -g '\${1+\"\$@\"}'='\"\$@\"'-  setopt NO_GLOB_SUBST-else-  case \`(set -o) 2>/dev/null\` in #(-  *posix*) :-    set -o posix ;; #(-  *) :-     ;;-esac-fi-"-  as_required="as_fn_return () { (exit \$1); }-as_fn_success () { as_fn_return 0; }-as_fn_failure () { as_fn_return 1; }-as_fn_ret_success () { return 0; }-as_fn_ret_failure () { return 1; }--exitcode=0-as_fn_success || { exitcode=1; echo as_fn_success failed.; }-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :--else-  exitcode=1; echo positional parameters were not saved.-fi-test x\$exitcode = x0 || exit 1-test -x / || exit 1"-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1-test \$(( 1 + 1 )) = 2 || exit 1"-  if (eval "$as_required") 2>/dev/null; then :-  as_have_required=yes-else-  as_have_required=no-fi-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :--else-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-as_found=false-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  as_found=:-  case $as_dir in #(-	 /*)-	   for as_base in sh bash ksh sh5; do-	     # Try only shells that exist, to save several forks.-	     as_shell=$as_dir/$as_base-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :-  CONFIG_SHELL=$as_shell as_have_required=yes-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :-  break 2-fi-fi-	   done;;-       esac-  as_found=false-done-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :-  CONFIG_SHELL=$SHELL as_have_required=yes-fi; }-IFS=$as_save_IFS---      if test "x$CONFIG_SHELL" != x; then :-  export CONFIG_SHELL-             # We cannot yet assume a decent shell, so we have to provide a-# neutralization value for shells without unset; and this also-# works around shells that cannot unset nonexistent variables.-# Preserve -v and -x to the replacement shell.-BASH_ENV=/dev/null-ENV=/dev/null-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV-case $- in # ((((-  *v*x* | *x*v* ) as_opts=-vx ;;-  *v* ) as_opts=-v ;;-  *x* ) as_opts=-x ;;-  * ) as_opts= ;;-esac-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}-# Admittedly, this is quite paranoid, since all the known shells bail-# out after a failed `exec'.-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2-exit 255-fi--    if test x$as_have_required = xno; then :-  $as_echo "$0: This script requires a shell more modern than all"-  $as_echo "$0: the shells that I found on your system."-  if test x${ZSH_VERSION+set} = xset ; then-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."-  else-    $as_echo "$0: Please tell bug-autoconf@gnu.org and-$0: libraries@haskell.org about your system, including any-$0: error possibly output before this message. Then install-$0: a modern shell, or manually run the script under such a-$0: shell if you do have one."-  fi-  exit 1-fi-fi-fi-SHELL=${CONFIG_SHELL-/bin/sh}-export SHELL-# Unset more variables known to interfere with behavior of common tools.-CLICOLOR_FORCE= GREP_OPTIONS=-unset CLICOLOR_FORCE GREP_OPTIONS--## --------------------- ##-## M4sh Shell Functions. ##-## --------------------- ##-# as_fn_unset VAR-# ----------------# Portably unset VAR.-as_fn_unset ()-{-  { eval $1=; unset $1;}-}-as_unset=as_fn_unset--# as_fn_set_status STATUS-# ------------------------# Set $? to STATUS, without forking.-as_fn_set_status ()-{-  return $1-} # as_fn_set_status--# as_fn_exit STATUS-# ------------------# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.-as_fn_exit ()-{-  set +e-  as_fn_set_status $1-  exit $1-} # as_fn_exit--# as_fn_mkdir_p-# --------------# Create "$as_dir" as a directory, including parents if necessary.-as_fn_mkdir_p ()-{--  case $as_dir in #(-  -*) as_dir=./$as_dir;;-  esac-  test -d "$as_dir" || eval $as_mkdir_p || {-    as_dirs=-    while :; do-      case $as_dir in #(-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(-      *) as_qdir=$as_dir;;-      esac-      as_dirs="'$as_qdir' $as_dirs"-      as_dir=`$as_dirname -- "$as_dir" ||-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \-	 X"$as_dir" : 'X\(//\)[^/]' \| \-	 X"$as_dir" : 'X\(//\)$' \| \-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||-$as_echo X"$as_dir" |-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)[^/].*/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`-      test -d "$as_dir" && break-    done-    test -z "$as_dirs" || eval "mkdir $as_dirs"-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"---} # as_fn_mkdir_p--# as_fn_executable_p FILE-# ------------------------# Test if FILE is an executable regular file.-as_fn_executable_p ()-{-  test -f "$1" && test -x "$1"-} # as_fn_executable_p-# as_fn_append VAR VALUE-# -----------------------# Append the text in VALUE to the end of the definition contained in VAR. Take-# advantage of any shell optimizations that allow amortized linear growth over-# repeated appends, instead of the typical quadratic growth present in naive-# implementations.-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :-  eval 'as_fn_append ()-  {-    eval $1+=\$2-  }'-else-  as_fn_append ()-  {-    eval $1=\$$1\$2-  }-fi # as_fn_append--# as_fn_arith ARG...-# -------------------# Perform arithmetic evaluation on the ARGs, and store the result in the-# global $as_val. Take advantage of shells that can avoid forks. The arguments-# must be portable across $(()) and expr.-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :-  eval 'as_fn_arith ()-  {-    as_val=$(( $* ))-  }'-else-  as_fn_arith ()-  {-    as_val=`expr "$@" || test $? -eq 1`-  }-fi # as_fn_arith---# as_fn_error STATUS ERROR [LINENO LOG_FD]-# -----------------------------------------# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the-# script with STATUS, using 1 if that was 0.-as_fn_error ()-{-  as_status=$1; test $as_status -eq 0 && as_status=1-  if test "$4"; then-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4-  fi-  $as_echo "$as_me: error: $2" >&2-  as_fn_exit $as_status-} # as_fn_error--if expr a : '\(a\)' >/dev/null 2>&1 &&-   test "X`expr 00001 : '.*\(...\)'`" = X001; then-  as_expr=expr-else-  as_expr=false-fi--if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then-  as_basename=basename-else-  as_basename=false-fi--if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then-  as_dirname=dirname-else-  as_dirname=false-fi--as_me=`$as_basename -- "$0" ||-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \-	 X"$0" : 'X\(//\)$' \| \-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||-$as_echo X/"$0" |-    sed '/^.*\/\([^/][^/]*\)\/*$/{-	    s//\1/-	    q-	  }-	  /^X\/\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\/\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`--# Avoid depending upon Character Ranges.-as_cr_letters='abcdefghijklmnopqrstuvwxyz'-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'-as_cr_Letters=$as_cr_letters$as_cr_LETTERS-as_cr_digits='0123456789'-as_cr_alnum=$as_cr_Letters$as_cr_digits---  as_lineno_1=$LINENO as_lineno_1a=$LINENO-  as_lineno_2=$LINENO as_lineno_2a=$LINENO-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)-  sed -n '-    p-    /[$]LINENO/=-  ' <$as_myself |-    sed '-      s/[$]LINENO.*/&-/-      t lineno-      b-      :lineno-      N-      :loop-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/-      t loop-      s/-\n.*//-    ' >$as_me.lineno &&-  chmod +x "$as_me.lineno" ||-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }--  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have-  # already done that, so ensure we don't try to do so again and fall-  # in an infinite loop.  This has already happened in practice.-  _as_can_reexec=no; export _as_can_reexec-  # Don't try to exec as it changes $[0], causing all sort of problems-  # (the dirname of $[0] is not the place where we might find the-  # original and so on.  Autoconf is especially sensitive to this).-  . "./$as_me.lineno"-  # Exit status is that of the last command.-  exit-}--ECHO_C= ECHO_N= ECHO_T=-case `echo -n x` in #(((((--n*)-  case `echo 'xy\c'` in-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.-  xy)  ECHO_C='\c';;-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null-       ECHO_T='	';;-  esac;;-*)-  ECHO_N='-n';;-esac--rm -f conf$$ conf$$.exe conf$$.file-if test -d conf$$.dir; then-  rm -f conf$$.dir/conf$$.file-else-  rm -f conf$$.dir-  mkdir conf$$.dir 2>/dev/null-fi-if (echo >conf$$.file) 2>/dev/null; then-  if ln -s conf$$.file conf$$ 2>/dev/null; then-    as_ln_s='ln -s'-    # ... but there are two gotchas:-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.-    # In both cases, we have to default to `cp -pR'.-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||-      as_ln_s='cp -pR'-  elif ln conf$$.file conf$$ 2>/dev/null; then-    as_ln_s=ln-  else-    as_ln_s='cp -pR'-  fi-else-  as_ln_s='cp -pR'-fi-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file-rmdir conf$$.dir 2>/dev/null--if mkdir -p . 2>/dev/null; then-  as_mkdir_p='mkdir -p "$as_dir"'-else-  test -d ./-p && rmdir ./-p-  as_mkdir_p=false-fi--as_test_x='test -x'-as_executable_p=as_fn_executable_p--# Sed expression to map a string onto a valid CPP name.-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"--# Sed expression to map a string onto a valid variable name.-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"---test -n "$DJDIR" || exec 7<&0 </dev/null-exec 6>&1--# Name of the host.-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,-# so uname gets run too.-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`--#-# Initializations.-#-ac_default_prefix=/usr/local-ac_clean_files=-ac_config_libobj_dir=.-LIBOBJS=-cross_compiling=no-subdirs=-MFLAGS=-MAKEFLAGS=--# Identity of this package.-PACKAGE_NAME='Haskell integer (GMP)'-PACKAGE_TARNAME='integer'-PACKAGE_VERSION='1.0'-PACKAGE_STRING='Haskell integer (GMP) 1.0'-PACKAGE_BUGREPORT='libraries@haskell.org'-PACKAGE_URL=''--ac_unique_file="cbits/wrappers.c"-# Factoring default headers for most tests.-ac_includes_default="\-#include <stdio.h>-#ifdef HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif-#ifdef HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif-#ifdef STDC_HEADERS-# include <stdlib.h>-# include <stddef.h>-#else-# ifdef HAVE_STDLIB_H-#  include <stdlib.h>-# endif-#endif-#ifdef HAVE_STRING_H-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H-#  include <memory.h>-# endif-# include <string.h>-#endif-#ifdef HAVE_STRINGS_H-# include <strings.h>-#endif-#ifdef HAVE_INTTYPES_H-# include <inttypes.h>-#endif-#ifdef HAVE_STDINT_H-# include <stdint.h>-#endif-#ifdef HAVE_UNISTD_H-# include <unistd.h>-#endif"--ac_subst_vars='LTLIBOBJS-LIBOBJS-GhcGmpVerPl-GhcGmpVerMi-GhcGmpVerMj-UseIntreeGmp-HaveSecurePowm-HaveFrameworkGMP-HaveLibGmp-GMP_FRAMEWORK-GMP_LIB_DIRS-GMP_LIBS-GMP_INCLUDE_DIRS-EGREP-GREP-CPP-OBJEXT-EXEEXT-ac_ct_CC-CPPFLAGS-LDFLAGS-CFLAGS-CC-target_os-target_vendor-target_cpu-target-host_os-host_vendor-host_cpu-host-build_os-build_vendor-build_cpu-build-target_alias-host_alias-build_alias-LIBS-ECHO_T-ECHO_N-ECHO_C-DEFS-mandir-localedir-libdir-psdir-pdfdir-dvidir-htmldir-infodir-docdir-oldincludedir-includedir-runstatedir-localstatedir-sharedstatedir-sysconfdir-datadir-datarootdir-libexecdir-sbindir-bindir-program_transform_name-prefix-exec_prefix-PACKAGE_URL-PACKAGE_BUGREPORT-PACKAGE_STRING-PACKAGE_VERSION-PACKAGE_TARNAME-PACKAGE_NAME-PATH_SEPARATOR-SHELL'-ac_subst_files=''-ac_user_opts='-enable_option_checking-with_gmp_includes-with_gmp_libraries-with_gmp_framework_preferred-with_intree_gmp-'-      ac_precious_vars='build_alias-host_alias-target_alias-CC-CFLAGS-LDFLAGS-LIBS-CPPFLAGS-CPP'---# Initialize some variables set by options.-ac_init_help=-ac_init_version=false-ac_unrecognized_opts=-ac_unrecognized_sep=-# The variables have the same names as the options, with-# dashes changed to underlines.-cache_file=/dev/null-exec_prefix=NONE-no_create=-no_recursion=-prefix=NONE-program_prefix=NONE-program_suffix=NONE-program_transform_name=s,x,x,-silent=-site=-srcdir=-verbose=-x_includes=NONE-x_libraries=NONE--# Installation directory options.-# These are left unexpanded so users can "make install exec_prefix=/foo"-# and all the variables that are supposed to be based on exec_prefix-# by default will actually change.-# Use braces instead of parens because sh, perl, etc. also accept them.-# (The list follows the same order as the GNU Coding Standards.)-bindir='${exec_prefix}/bin'-sbindir='${exec_prefix}/sbin'-libexecdir='${exec_prefix}/libexec'-datarootdir='${prefix}/share'-datadir='${datarootdir}'-sysconfdir='${prefix}/etc'-sharedstatedir='${prefix}/com'-localstatedir='${prefix}/var'-runstatedir='${localstatedir}/run'-includedir='${prefix}/include'-oldincludedir='/usr/include'-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'-infodir='${datarootdir}/info'-htmldir='${docdir}'-dvidir='${docdir}'-pdfdir='${docdir}'-psdir='${docdir}'-libdir='${exec_prefix}/lib'-localedir='${datarootdir}/locale'-mandir='${datarootdir}/man'--ac_prev=-ac_dashdash=-for ac_option-do-  # If the previous option needs an argument, assign it.-  if test -n "$ac_prev"; then-    eval $ac_prev=\$ac_option-    ac_prev=-    continue-  fi--  case $ac_option in-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;-  *=)   ac_optarg= ;;-  *)    ac_optarg=yes ;;-  esac--  # Accept the important Cygnus configure options, so we can diagnose typos.--  case $ac_dashdash$ac_option in-  --)-    ac_dashdash=yes ;;--  -bindir | --bindir | --bindi | --bind | --bin | --bi)-    ac_prev=bindir ;;-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)-    bindir=$ac_optarg ;;--  -build | --build | --buil | --bui | --bu)-    ac_prev=build_alias ;;-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)-    build_alias=$ac_optarg ;;--  -cache-file | --cache-file | --cache-fil | --cache-fi \-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)-    ac_prev=cache_file ;;-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)-    cache_file=$ac_optarg ;;--  --config-cache | -C)-    cache_file=config.cache ;;--  -datadir | --datadir | --datadi | --datad)-    ac_prev=datadir ;;-  -datadir=* | --datadir=* | --datadi=* | --datad=*)-    datadir=$ac_optarg ;;--  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \-  | --dataroo | --dataro | --datar)-    ac_prev=datarootdir ;;-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)-    datarootdir=$ac_optarg ;;--  -disable-* | --disable-*)-    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`-    # Reject names that are not valid shell variable names.-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&-      as_fn_error $? "invalid feature name: $ac_useropt"-    ac_useropt_orig=$ac_useropt-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`-    case $ac_user_opts in-      *"-"enable_$ac_useropt"-"*) ;;-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"-	 ac_unrecognized_sep=', ';;-    esac-    eval enable_$ac_useropt=no ;;--  -docdir | --docdir | --docdi | --doc | --do)-    ac_prev=docdir ;;-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)-    docdir=$ac_optarg ;;--  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)-    ac_prev=dvidir ;;-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)-    dvidir=$ac_optarg ;;--  -enable-* | --enable-*)-    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`-    # Reject names that are not valid shell variable names.-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&-      as_fn_error $? "invalid feature name: $ac_useropt"-    ac_useropt_orig=$ac_useropt-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`-    case $ac_user_opts in-      *"-"enable_$ac_useropt"-"*) ;;-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"-	 ac_unrecognized_sep=', ';;-    esac-    eval enable_$ac_useropt=\$ac_optarg ;;--  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \-  | --exec | --exe | --ex)-    ac_prev=exec_prefix ;;-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \-  | --exec=* | --exe=* | --ex=*)-    exec_prefix=$ac_optarg ;;--  -gas | --gas | --ga | --g)-    # Obsolete; use --with-gas.-    with_gas=yes ;;--  -help | --help | --hel | --he | -h)-    ac_init_help=long ;;-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)-    ac_init_help=recursive ;;-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)-    ac_init_help=short ;;--  -host | --host | --hos | --ho)-    ac_prev=host_alias ;;-  -host=* | --host=* | --hos=* | --ho=*)-    host_alias=$ac_optarg ;;--  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)-    ac_prev=htmldir ;;-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \-  | --ht=*)-    htmldir=$ac_optarg ;;--  -includedir | --includedir | --includedi | --included | --include \-  | --includ | --inclu | --incl | --inc)-    ac_prev=includedir ;;-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \-  | --includ=* | --inclu=* | --incl=* | --inc=*)-    includedir=$ac_optarg ;;--  -infodir | --infodir | --infodi | --infod | --info | --inf)-    ac_prev=infodir ;;-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)-    infodir=$ac_optarg ;;--  -libdir | --libdir | --libdi | --libd)-    ac_prev=libdir ;;-  -libdir=* | --libdir=* | --libdi=* | --libd=*)-    libdir=$ac_optarg ;;--  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \-  | --libexe | --libex | --libe)-    ac_prev=libexecdir ;;-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \-  | --libexe=* | --libex=* | --libe=*)-    libexecdir=$ac_optarg ;;--  -localedir | --localedir | --localedi | --localed | --locale)-    ac_prev=localedir ;;-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)-    localedir=$ac_optarg ;;--  -localstatedir | --localstatedir | --localstatedi | --localstated \-  | --localstate | --localstat | --localsta | --localst | --locals)-    ac_prev=localstatedir ;;-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)-    localstatedir=$ac_optarg ;;--  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)-    ac_prev=mandir ;;-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)-    mandir=$ac_optarg ;;--  -nfp | --nfp | --nf)-    # Obsolete; use --without-fp.-    with_fp=no ;;--  -no-create | --no-create | --no-creat | --no-crea | --no-cre \-  | --no-cr | --no-c | -n)-    no_create=yes ;;--  -no-recursion | --no-recursion | --no-recursio | --no-recursi \-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)-    no_recursion=yes ;;--  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \-  | --oldin | --oldi | --old | --ol | --o)-    ac_prev=oldincludedir ;;-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)-    oldincludedir=$ac_optarg ;;--  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)-    ac_prev=prefix ;;-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)-    prefix=$ac_optarg ;;--  -program-prefix | --program-prefix | --program-prefi | --program-pref \-  | --program-pre | --program-pr | --program-p)-    ac_prev=program_prefix ;;-  -program-prefix=* | --program-prefix=* | --program-prefi=* \-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)-    program_prefix=$ac_optarg ;;--  -program-suffix | --program-suffix | --program-suffi | --program-suff \-  | --program-suf | --program-su | --program-s)-    ac_prev=program_suffix ;;-  -program-suffix=* | --program-suffix=* | --program-suffi=* \-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)-    program_suffix=$ac_optarg ;;--  -program-transform-name | --program-transform-name \-  | --program-transform-nam | --program-transform-na \-  | --program-transform-n | --program-transform- \-  | --program-transform | --program-transfor \-  | --program-transfo | --program-transf \-  | --program-trans | --program-tran \-  | --progr-tra | --program-tr | --program-t)-    ac_prev=program_transform_name ;;-  -program-transform-name=* | --program-transform-name=* \-  | --program-transform-nam=* | --program-transform-na=* \-  | --program-transform-n=* | --program-transform-=* \-  | --program-transform=* | --program-transfor=* \-  | --program-transfo=* | --program-transf=* \-  | --program-trans=* | --program-tran=* \-  | --progr-tra=* | --program-tr=* | --program-t=*)-    program_transform_name=$ac_optarg ;;--  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)-    ac_prev=pdfdir ;;-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)-    pdfdir=$ac_optarg ;;--  -psdir | --psdir | --psdi | --psd | --ps)-    ac_prev=psdir ;;-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)-    psdir=$ac_optarg ;;--  -q | -quiet | --quiet | --quie | --qui | --qu | --q \-  | -silent | --silent | --silen | --sile | --sil)-    silent=yes ;;--  -runstatedir | --runstatedir | --runstatedi | --runstated \-  | --runstate | --runstat | --runsta | --runst | --runs \-  | --run | --ru | --r)-    ac_prev=runstatedir ;;-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \-  | --run=* | --ru=* | --r=*)-    runstatedir=$ac_optarg ;;--  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)-    ac_prev=sbindir ;;-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \-  | --sbi=* | --sb=*)-    sbindir=$ac_optarg ;;--  -sharedstatedir | --sharedstatedir | --sharedstatedi \-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \-  | --sharedst | --shareds | --shared | --share | --shar \-  | --sha | --sh)-    ac_prev=sharedstatedir ;;-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \-  | --sha=* | --sh=*)-    sharedstatedir=$ac_optarg ;;--  -site | --site | --sit)-    ac_prev=site ;;-  -site=* | --site=* | --sit=*)-    site=$ac_optarg ;;--  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)-    ac_prev=srcdir ;;-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)-    srcdir=$ac_optarg ;;--  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \-  | --syscon | --sysco | --sysc | --sys | --sy)-    ac_prev=sysconfdir ;;-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)-    sysconfdir=$ac_optarg ;;--  -target | --target | --targe | --targ | --tar | --ta | --t)-    ac_prev=target_alias ;;-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)-    target_alias=$ac_optarg ;;--  -v | -verbose | --verbose | --verbos | --verbo | --verb)-    verbose=yes ;;--  -version | --version | --versio | --versi | --vers | -V)-    ac_init_version=: ;;--  -with-* | --with-*)-    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`-    # Reject names that are not valid shell variable names.-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&-      as_fn_error $? "invalid package name: $ac_useropt"-    ac_useropt_orig=$ac_useropt-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`-    case $ac_user_opts in-      *"-"with_$ac_useropt"-"*) ;;-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"-	 ac_unrecognized_sep=', ';;-    esac-    eval with_$ac_useropt=\$ac_optarg ;;--  -without-* | --without-*)-    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`-    # Reject names that are not valid shell variable names.-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&-      as_fn_error $? "invalid package name: $ac_useropt"-    ac_useropt_orig=$ac_useropt-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`-    case $ac_user_opts in-      *"-"with_$ac_useropt"-"*) ;;-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"-	 ac_unrecognized_sep=', ';;-    esac-    eval with_$ac_useropt=no ;;--  --x)-    # Obsolete; use --with-x.-    with_x=yes ;;--  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \-  | --x-incl | --x-inc | --x-in | --x-i)-    ac_prev=x_includes ;;-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)-    x_includes=$ac_optarg ;;--  -x-libraries | --x-libraries | --x-librarie | --x-librari \-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)-    ac_prev=x_libraries ;;-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)-    x_libraries=$ac_optarg ;;--  -*) as_fn_error $? "unrecognized option: \`$ac_option'-Try \`$0 --help' for more information"-    ;;--  *=*)-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`-    # Reject names that are not valid shell variable names.-    case $ac_envvar in #(-      '' | [0-9]* | *[!_$as_cr_alnum]* )-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;-    esac-    eval $ac_envvar=\$ac_optarg-    export $ac_envvar ;;--  *)-    # FIXME: should be removed in autoconf 3.0.-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2-    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"-    ;;--  esac-done--if test -n "$ac_prev"; then-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`-  as_fn_error $? "missing argument to $ac_option"-fi--if test -n "$ac_unrecognized_opts"; then-  case $enable_option_checking in-    no) ;;-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;-  esac-fi--# Check all directory arguments for consistency.-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \-		datadir sysconfdir sharedstatedir localstatedir includedir \-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \-		libdir localedir mandir runstatedir-do-  eval ac_val=\$$ac_var-  # Remove trailing slashes.-  case $ac_val in-    */ )-      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`-      eval $ac_var=\$ac_val;;-  esac-  # Be sure to have absolute directory names.-  case $ac_val in-    [\\/$]* | ?:[\\/]* )  continue;;-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;-  esac-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"-done--# There might be people who depend on the old broken behavior: `$host'-# used to hold the argument of --host etc.-# FIXME: To remove some day.-build=$build_alias-host=$host_alias-target=$target_alias--# FIXME: To remove some day.-if test "x$host_alias" != x; then-  if test "x$build_alias" = x; then-    cross_compiling=maybe-  elif test "x$build_alias" != "x$host_alias"; then-    cross_compiling=yes-  fi-fi--ac_tool_prefix=-test -n "$host_alias" && ac_tool_prefix=$host_alias---test "$silent" = yes && exec 6>/dev/null---ac_pwd=`pwd` && test -n "$ac_pwd" &&-ac_ls_di=`ls -di .` &&-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||-  as_fn_error $? "working directory cannot be determined"-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||-  as_fn_error $? "pwd does not report name of working directory"---# Find the source files, if location was not specified.-if test -z "$srcdir"; then-  ac_srcdir_defaulted=yes-  # Try the directory containing this script, then the parent directory.-  ac_confdir=`$as_dirname -- "$as_myself" ||-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \-	 X"$as_myself" : 'X\(//\)[^/]' \| \-	 X"$as_myself" : 'X\(//\)$' \| \-	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||-$as_echo X"$as_myself" |-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)[^/].*/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`-  srcdir=$ac_confdir-  if test ! -r "$srcdir/$ac_unique_file"; then-    srcdir=..-  fi-else-  ac_srcdir_defaulted=no-fi-if test ! -r "$srcdir/$ac_unique_file"; then-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"-fi-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"-ac_abs_confdir=`(-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"-	pwd)`-# When building in place, set srcdir=.-if test "$ac_abs_confdir" = "$ac_pwd"; then-  srcdir=.-fi-# Remove unnecessary trailing slashes from srcdir.-# Double slashes in file names in object file debugging info-# mess up M-x gdb in Emacs.-case $srcdir in-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;-esac-for ac_var in $ac_precious_vars; do-  eval ac_env_${ac_var}_set=\${${ac_var}+set}-  eval ac_env_${ac_var}_value=\$${ac_var}-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}-  eval ac_cv_env_${ac_var}_value=\$${ac_var}-done--#-# Report the --help message.-#-if test "$ac_init_help" = "long"; then-  # Omit some internal or obsolete options to make the list less imposing.-  # This message is too long to be a string in the A/UX 3.1 sh.-  cat <<_ACEOF-\`configure' configures Haskell integer (GMP) 1.0 to adapt to many kinds of systems.--Usage: $0 [OPTION]... [VAR=VALUE]...--To assign environment variables (e.g., CC, CFLAGS...), specify them as-VAR=VALUE.  See below for descriptions of some of the useful variables.--Defaults for the options are specified in brackets.--Configuration:-  -h, --help              display this help and exit-      --help=short        display options specific to this package-      --help=recursive    display the short help of all the included packages-  -V, --version           display version information and exit-  -q, --quiet, --silent   do not print \`checking ...' messages-      --cache-file=FILE   cache test results in FILE [disabled]-  -C, --config-cache      alias for \`--cache-file=config.cache'-  -n, --no-create         do not create output files-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']--Installation directories:-  --prefix=PREFIX         install architecture-independent files in PREFIX-                          [$ac_default_prefix]-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX-                          [PREFIX]--By default, \`make install' will install all the files in-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify-an installation prefix other than \`$ac_default_prefix' using \`--prefix',-for instance \`--prefix=\$HOME'.--For better control, use the options below.--Fine tuning of the installation directories:-  --bindir=DIR            user executables [EPREFIX/bin]-  --sbindir=DIR           system admin executables [EPREFIX/sbin]-  --libexecdir=DIR        program executables [EPREFIX/libexec]-  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]-  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]-  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]-  --libdir=DIR            object code libraries [EPREFIX/lib]-  --includedir=DIR        C header files [PREFIX/include]-  --oldincludedir=DIR     C header files for non-gcc [/usr/include]-  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]-  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]-  --infodir=DIR           info documentation [DATAROOTDIR/info]-  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]-  --mandir=DIR            man documentation [DATAROOTDIR/man]-  --docdir=DIR            documentation root [DATAROOTDIR/doc/integer]-  --htmldir=DIR           html documentation [DOCDIR]-  --dvidir=DIR            dvi documentation [DOCDIR]-  --pdfdir=DIR            pdf documentation [DOCDIR]-  --psdir=DIR             ps documentation [DOCDIR]-_ACEOF--  cat <<\_ACEOF--System types:-  --build=BUILD     configure for building on BUILD [guessed]-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]-  --target=TARGET   configure for building compilers for TARGET [HOST]-_ACEOF-fi--if test -n "$ac_init_help"; then-  case $ac_init_help in-     short | recursive ) echo "Configuration of Haskell integer (GMP) 1.0:";;-   esac-  cat <<\_ACEOF--Optional Packages:-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)-  --with-gmp-includes     directory containing gmp.h-  --with-gmp-libraries    directory containing gmp library-  --with-gmp-framework-preferred-                          on OSX, prefer the GMP framework to the gmp lib-  --with-intree-gmp       force using the in-tree GMP--Some influential environment variables:-  CC          C compiler command-  CFLAGS      C compiler flags-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a-              nonstandard directory <lib dir>-  LIBS        libraries to pass to the linker, e.g. -l<library>-  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if-              you have headers in a nonstandard directory <include dir>-  CPP         C preprocessor--Use these variables to override the choices made by `configure' or to help-it to find libraries and programs with nonstandard names/locations.--Report bugs to <libraries@haskell.org>.-_ACEOF-ac_status=$?-fi--if test "$ac_init_help" = "recursive"; then-  # If there are subdirs, report their specific --help.-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue-    test -d "$ac_dir" ||-      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||-      continue-    ac_builddir=.--case "$ac_dir" in-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;-*)-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`-  # A ".." for each directory in $ac_dir_suffix.-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`-  case $ac_top_builddir_sub in-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;-  esac ;;-esac-ac_abs_top_builddir=$ac_pwd-ac_abs_builddir=$ac_pwd$ac_dir_suffix-# for backward compatibility:-ac_top_builddir=$ac_top_build_prefix--case $srcdir in-  .)  # We are building in place.-    ac_srcdir=.-    ac_top_srcdir=$ac_top_builddir_sub-    ac_abs_top_srcdir=$ac_pwd ;;-  [\\/]* | ?:[\\/]* )  # Absolute name.-    ac_srcdir=$srcdir$ac_dir_suffix;-    ac_top_srcdir=$srcdir-    ac_abs_top_srcdir=$srcdir ;;-  *) # Relative name.-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix-    ac_top_srcdir=$ac_top_build_prefix$srcdir-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;-esac-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix--    cd "$ac_dir" || { ac_status=$?; continue; }-    # Check for guested configure.-    if test -f "$ac_srcdir/configure.gnu"; then-      echo &&-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive-    elif test -f "$ac_srcdir/configure"; then-      echo &&-      $SHELL "$ac_srcdir/configure" --help=recursive-    else-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2-    fi || ac_status=$?-    cd "$ac_pwd" || { ac_status=$?; break; }-  done-fi--test -n "$ac_init_help" && exit $ac_status-if $ac_init_version; then-  cat <<\_ACEOF-Haskell integer (GMP) configure 1.0-generated by GNU Autoconf 2.69--Copyright (C) 2012 Free Software Foundation, Inc.-This configure script is free software; the Free Software Foundation-gives unlimited permission to copy, distribute and modify it.-_ACEOF-  exit-fi--## ------------------------ ##-## Autoconf initialization. ##-## ------------------------ ##--# ac_fn_c_try_compile LINENO-# ---------------------------# Try to compile conftest.$ac_ext, and return whether this succeeded.-ac_fn_c_try_compile ()-{-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack-  rm -f conftest.$ac_objext-  if { { ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_compile") 2>conftest.err-  ac_status=$?-  if test -s conftest.err; then-    grep -v '^ *+' conftest.err >conftest.er1-    cat conftest.er1 >&5-    mv -f conftest.er1 conftest.err-  fi-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then :-  ac_retval=0-else-  $as_echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	ac_retval=1-fi-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno-  as_fn_set_status $ac_retval--} # ac_fn_c_try_compile--# ac_fn_c_try_cpp LINENO-# -----------------------# Try to preprocess conftest.$ac_ext, and return whether this succeeded.-ac_fn_c_try_cpp ()-{-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack-  if { { ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err-  ac_status=$?-  if test -s conftest.err; then-    grep -v '^ *+' conftest.err >conftest.er1-    cat conftest.er1 >&5-    mv -f conftest.er1 conftest.err-  fi-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; } > conftest.i && {-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||-	 test ! -s conftest.err-       }; then :-  ac_retval=0-else-  $as_echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--    ac_retval=1-fi-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno-  as_fn_set_status $ac_retval--} # ac_fn_c_try_cpp--# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES-# --------------------------------------------------------# Tests whether HEADER exists, giving a warning if it cannot be compiled using-# the include files in INCLUDES and setting the cache variable VAR-# accordingly.-ac_fn_c_check_header_mongrel ()-{-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack-  if eval \${$3+:} false; then :-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5-$as_echo_n "checking for $2... " >&6; }-if eval \${$3+:} false; then :-  $as_echo_n "(cached) " >&6-fi-eval ac_res=\$$3-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-$as_echo "$ac_res" >&6; }-else-  # Is the header compilable?-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5-$as_echo_n "checking $2 usability... " >&6; }-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-$4-#include <$2>-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_header_compiler=yes-else-  ac_header_compiler=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5-$as_echo "$ac_header_compiler" >&6; }--# Is the header present?-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5-$as_echo_n "checking $2 presence... " >&6; }-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#include <$2>-_ACEOF-if ac_fn_c_try_cpp "$LINENO"; then :-  ac_header_preproc=yes-else-  ac_header_preproc=no-fi-rm -f conftest.err conftest.i conftest.$ac_ext-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5-$as_echo "$ac_header_preproc" >&6; }--# So?  What about this header?-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((-  yes:no: )-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}-    ;;-  no:yes:* )-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}-( $as_echo "## ------------------------------------ ##-## Report this to libraries@haskell.org ##-## ------------------------------------ ##"-     ) | sed "s/^/$as_me: WARNING:     /" >&2-    ;;-esac-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5-$as_echo_n "checking for $2... " >&6; }-if eval \${$3+:} false; then :-  $as_echo_n "(cached) " >&6-else-  eval "$3=\$ac_header_compiler"-fi-eval ac_res=\$$3-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-$as_echo "$ac_res" >&6; }-fi-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno--} # ac_fn_c_check_header_mongrel--# ac_fn_c_try_run LINENO-# -----------------------# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes-# that executables *can* be run.-ac_fn_c_try_run ()-{-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack-  if { { ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_link") 2>&5-  ac_status=$?-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'-  { { case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_try") 2>&5-  ac_status=$?-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; }; }; then :-  ac_retval=0-else-  $as_echo "$as_me: program exited with status $ac_status" >&5-       $as_echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--       ac_retval=$ac_status-fi-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno-  as_fn_set_status $ac_retval--} # ac_fn_c_try_run--# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES-# --------------------------------------------------------# Tests whether HEADER exists and can be compiled using the include files in-# INCLUDES, setting the cache variable VAR accordingly.-ac_fn_c_check_header_compile ()-{-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5-$as_echo_n "checking for $2... " >&6; }-if eval \${$3+:} false; then :-  $as_echo_n "(cached) " >&6-else-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-$4-#include <$2>-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  eval "$3=yes"-else-  eval "$3=no"-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-eval ac_res=\$$3-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-$as_echo "$ac_res" >&6; }-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno--} # ac_fn_c_check_header_compile--# ac_fn_c_try_link LINENO-# ------------------------# Try to link conftest.$ac_ext, and return whether this succeeded.-ac_fn_c_try_link ()-{-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack-  rm -f conftest.$ac_objext conftest$ac_exeext-  if { { ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_link") 2>conftest.err-  ac_status=$?-  if test -s conftest.err; then-    grep -v '^ *+' conftest.err >conftest.er1-    cat conftest.er1 >&5-    mv -f conftest.er1 conftest.err-  fi-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest$ac_exeext && {-	 test "$cross_compiling" = yes ||-	 test -x conftest$ac_exeext-       }; then :-  ac_retval=0-else-  $as_echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	ac_retval=1-fi-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would-  # interfere with the next link command; also delete a directory that is-  # left behind by Apple's compiler.  We do this before executing the actions.-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno-  as_fn_set_status $ac_retval--} # ac_fn_c_try_link--# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES-# ---------------------------------------------# Tries to find the compile-time value of EXPR in a program that includes-# INCLUDES, setting VAR accordingly. Returns whether the value could be-# computed-ac_fn_c_compute_int ()-{-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack-  if test "$cross_compiling" = yes; then-    # Depending upon the size, compute the lo and hi bounds.-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-$4-int-main ()-{-static int test_array [1 - 2 * !(($2) >= 0)];-test_array [0] = 0;-return test_array [0];--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_lo=0 ac_mid=0-  while :; do-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-$4-int-main ()-{-static int test_array [1 - 2 * !(($2) <= $ac_mid)];-test_array [0] = 0;-return test_array [0];--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_hi=$ac_mid; break-else-  as_fn_arith $ac_mid + 1 && ac_lo=$as_val-			if test $ac_lo -le $ac_mid; then-			  ac_lo= ac_hi=-			  break-			fi-			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-  done-else-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-$4-int-main ()-{-static int test_array [1 - 2 * !(($2) < 0)];-test_array [0] = 0;-return test_array [0];--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_hi=-1 ac_mid=-1-  while :; do-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-$4-int-main ()-{-static int test_array [1 - 2 * !(($2) >= $ac_mid)];-test_array [0] = 0;-return test_array [0];--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_lo=$ac_mid; break-else-  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val-			if test $ac_mid -le $ac_hi; then-			  ac_lo= ac_hi=-			  break-			fi-			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-  done-else-  ac_lo= ac_hi=-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-# Binary search between lo and hi bounds.-while test "x$ac_lo" != "x$ac_hi"; do-  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-$4-int-main ()-{-static int test_array [1 - 2 * !(($2) <= $ac_mid)];-test_array [0] = 0;-return test_array [0];--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_hi=$ac_mid-else-  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-done-case $ac_lo in #((-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;-'') ac_retval=1 ;;-esac-  else-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-$4-static long int longval () { return $2; }-static unsigned long int ulongval () { return $2; }-#include <stdio.h>-#include <stdlib.h>-int-main ()-{--  FILE *f = fopen ("conftest.val", "w");-  if (! f)-    return 1;-  if (($2) < 0)-    {-      long int i = longval ();-      if (i != ($2))-	return 1;-      fprintf (f, "%ld", i);-    }-  else-    {-      unsigned long int i = ulongval ();-      if (i != ($2))-	return 1;-      fprintf (f, "%lu", i);-    }-  /* Do not output a trailing newline, as this causes \r\n confusion-     on some platforms.  */-  return ferror (f) || fclose (f) != 0;--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_run "$LINENO"; then :-  echo >>conftest.val; read $3 <conftest.val; ac_retval=0-else-  ac_retval=1-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \-  conftest.$ac_objext conftest.beam conftest.$ac_ext-rm -f conftest.val--  fi-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno-  as_fn_set_status $ac_retval--} # ac_fn_c_compute_int-cat >config.log <<_ACEOF-This file contains any messages produced by compilers while-running configure, to aid debugging if configure makes a mistake.--It was created by Haskell integer (GMP) $as_me 1.0, which was-generated by GNU Autoconf 2.69.  Invocation command line was--  $ $0 $@--_ACEOF-exec 5>>config.log-{-cat <<_ASUNAME-## --------- ##-## Platform. ##-## --------- ##--hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`-uname -m = `(uname -m) 2>/dev/null || echo unknown`-uname -r = `(uname -r) 2>/dev/null || echo unknown`-uname -s = `(uname -s) 2>/dev/null || echo unknown`-uname -v = `(uname -v) 2>/dev/null || echo unknown`--/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`--/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`--_ASUNAME--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    $as_echo "PATH: $as_dir"-  done-IFS=$as_save_IFS--} >&5--cat >&5 <<_ACEOF---## ----------- ##-## Core tests. ##-## ----------- ##--_ACEOF---# Keep a trace of the command line.-# Strip out --no-create and --no-recursion so they do not pile up.-# Strip out --silent because we don't want to record it for future runs.-# Also quote any args containing shell meta-characters.-# Make two passes to allow for proper duplicate-argument suppression.-ac_configure_args=-ac_configure_args0=-ac_configure_args1=-ac_must_keep_next=false-for ac_pass in 1 2-do-  for ac_arg-  do-    case $ac_arg in-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \-    | -silent | --silent | --silen | --sile | --sil)-      continue ;;-    *\'*)-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;-    esac-    case $ac_pass in-    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;-    2)-      as_fn_append ac_configure_args1 " '$ac_arg'"-      if test $ac_must_keep_next = true; then-	ac_must_keep_next=false # Got value, back to normal.-      else-	case $ac_arg in-	  *=* | --config-cache | -C | -disable-* | --disable-* \-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \-	  | -with-* | --with-* | -without-* | --without-* | --x)-	    case "$ac_configure_args0 " in-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;-	    esac-	    ;;-	  -* ) ac_must_keep_next=true ;;-	esac-      fi-      as_fn_append ac_configure_args " '$ac_arg'"-      ;;-    esac-  done-done-{ ac_configure_args0=; unset ac_configure_args0;}-{ ac_configure_args1=; unset ac_configure_args1;}--# When interrupted or exit'd, cleanup temporary files, and complete-# config.log.  We remove comments because anyway the quotes in there-# would cause problems or look ugly.-# WARNING: Use '\'' to represent an apostrophe within the trap.-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.-trap 'exit_status=$?-  # Save into config.log some information that might help in debugging.-  {-    echo--    $as_echo "## ---------------- ##-## Cache variables. ##-## ---------------- ##"-    echo-    # The following way of writing the cache mishandles newlines in values,-(-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do-    eval ac_val=\$$ac_var-    case $ac_val in #(-    *${as_nl}*)-      case $ac_var in #(-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;-      esac-      case $ac_var in #(-      _ | IFS | as_nl) ;; #(-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(-      *) { eval $ac_var=; unset $ac_var;} ;;-      esac ;;-    esac-  done-  (set) 2>&1 |-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(-    *${as_nl}ac_space=\ *)-      sed -n \-	"s/'\''/'\''\\\\'\'''\''/g;-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"-      ;; #(-    *)-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"-      ;;-    esac |-    sort-)-    echo--    $as_echo "## ----------------- ##-## Output variables. ##-## ----------------- ##"-    echo-    for ac_var in $ac_subst_vars-    do-      eval ac_val=\$$ac_var-      case $ac_val in-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;-      esac-      $as_echo "$ac_var='\''$ac_val'\''"-    done | sort-    echo--    if test -n "$ac_subst_files"; then-      $as_echo "## ------------------- ##-## File substitutions. ##-## ------------------- ##"-      echo-      for ac_var in $ac_subst_files-      do-	eval ac_val=\$$ac_var-	case $ac_val in-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;-	esac-	$as_echo "$ac_var='\''$ac_val'\''"-      done | sort-      echo-    fi--    if test -s confdefs.h; then-      $as_echo "## ----------- ##-## confdefs.h. ##-## ----------- ##"-      echo-      cat confdefs.h-      echo-    fi-    test "$ac_signal" != 0 &&-      $as_echo "$as_me: caught signal $ac_signal"-    $as_echo "$as_me: exit $exit_status"-  } >&5-  rm -f core *.core core.conftest.* &&-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&-    exit $exit_status-' 0-for ac_signal in 1 2 13 15; do-  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal-done-ac_signal=0--# confdefs.h avoids OS command line length limits that DEFS can exceed.-rm -f -r conftest* confdefs.h--$as_echo "/* confdefs.h */" > confdefs.h--# Predefined preprocessor variables.--cat >>confdefs.h <<_ACEOF-#define PACKAGE_NAME "$PACKAGE_NAME"-_ACEOF--cat >>confdefs.h <<_ACEOF-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"-_ACEOF--cat >>confdefs.h <<_ACEOF-#define PACKAGE_VERSION "$PACKAGE_VERSION"-_ACEOF--cat >>confdefs.h <<_ACEOF-#define PACKAGE_STRING "$PACKAGE_STRING"-_ACEOF--cat >>confdefs.h <<_ACEOF-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"-_ACEOF--cat >>confdefs.h <<_ACEOF-#define PACKAGE_URL "$PACKAGE_URL"-_ACEOF---# Let the site file select an alternate cache file if it wants to.-# Prefer an explicitly selected file to automatically selected ones.-ac_site_file1=NONE-ac_site_file2=NONE-if test -n "$CONFIG_SITE"; then-  # We do not want a PATH search for config.site.-  case $CONFIG_SITE in #((-    -*)  ac_site_file1=./$CONFIG_SITE;;-    */*) ac_site_file1=$CONFIG_SITE;;-    *)   ac_site_file1=./$CONFIG_SITE;;-  esac-elif test "x$prefix" != xNONE; then-  ac_site_file1=$prefix/share/config.site-  ac_site_file2=$prefix/etc/config.site-else-  ac_site_file1=$ac_default_prefix/share/config.site-  ac_site_file2=$ac_default_prefix/etc/config.site-fi-for ac_site_file in "$ac_site_file1" "$ac_site_file2"-do-  test "x$ac_site_file" = xNONE && continue-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5-$as_echo "$as_me: loading site script $ac_site_file" >&6;}-    sed 's/^/| /' "$ac_site_file" >&5-    . "$ac_site_file" \-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "failed to load site script $ac_site_file-See \`config.log' for more details" "$LINENO" 5; }-  fi-done--if test -r "$cache_file"; then-  # Some versions of bash will fail to source /dev/null (special files-  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.-  if test /dev/null != "$cache_file" && test -f "$cache_file"; then-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5-$as_echo "$as_me: loading cache $cache_file" >&6;}-    case $cache_file in-      [\\/]* | ?:[\\/]* ) . "$cache_file";;-      *)                      . "./$cache_file";;-    esac-  fi-else-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5-$as_echo "$as_me: creating cache $cache_file" >&6;}-  >$cache_file-fi--# Check that the precious variables saved in the cache have kept the same-# value.-ac_cache_corrupted=false-for ac_var in $ac_precious_vars; do-  eval ac_old_set=\$ac_cv_env_${ac_var}_set-  eval ac_new_set=\$ac_env_${ac_var}_set-  eval ac_old_val=\$ac_cv_env_${ac_var}_value-  eval ac_new_val=\$ac_env_${ac_var}_value-  case $ac_old_set,$ac_new_set in-    set,)-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}-      ac_cache_corrupted=: ;;-    ,set)-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}-      ac_cache_corrupted=: ;;-    ,);;-    *)-      if test "x$ac_old_val" != "x$ac_new_val"; then-	# differences in whitespace do not lead to failure.-	ac_old_val_w=`echo x $ac_old_val`-	ac_new_val_w=`echo x $ac_new_val`-	if test "$ac_old_val_w" != "$ac_new_val_w"; then-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}-	  ac_cache_corrupted=:-	else-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}-	  eval $ac_var=\$ac_old_val-	fi-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}-      fi;;-  esac-  # Pass precious variables to config.status.-  if test "$ac_new_set" = set; then-    case $ac_new_val in-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;-    *) ac_arg=$ac_var=$ac_new_val ;;-    esac-    case " $ac_configure_args " in-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;-    esac-  fi-done-if $ac_cache_corrupted; then-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5-fi-## -------------------- ##-## Main body of script. ##-## -------------------- ##--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu----# Safety check: Ensure that we are in the correct source directory.---ac_aux_dir=-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do-  if test -f "$ac_dir/install-sh"; then-    ac_aux_dir=$ac_dir-    ac_install_sh="$ac_aux_dir/install-sh -c"-    break-  elif test -f "$ac_dir/install.sh"; then-    ac_aux_dir=$ac_dir-    ac_install_sh="$ac_aux_dir/install.sh -c"-    break-  elif test -f "$ac_dir/shtool"; then-    ac_aux_dir=$ac_dir-    ac_install_sh="$ac_aux_dir/shtool install -c"-    break-  fi-done-if test -z "$ac_aux_dir"; then-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5-fi--# These three variables are undocumented and unsupported,-# and are intended to be withdrawn in a future Autoconf release.-# They can cause serious problems if a builder's source tree is in a directory-# whose full name contains unusual characters.-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.---# Make sure we can run config.sub.-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5-$as_echo_n "checking build system type... " >&6; }-if ${ac_cv_build+:} false; then :-  $as_echo_n "(cached) " >&6-else-  ac_build_alias=$build_alias-test "x$ac_build_alias" = x &&-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`-test "x$ac_build_alias" = x &&-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5--fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5-$as_echo "$ac_cv_build" >&6; }-case $ac_cv_build in-*-*-*) ;;-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;-esac-build=$ac_cv_build-ac_save_IFS=$IFS; IFS='-'-set x $ac_cv_build-shift-build_cpu=$1-build_vendor=$2-shift; shift-# Remember, the first character of IFS is used to create $*,-# except with old shells:-build_os=$*-IFS=$ac_save_IFS-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac---{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5-$as_echo_n "checking host system type... " >&6; }-if ${ac_cv_host+:} false; then :-  $as_echo_n "(cached) " >&6-else-  if test "x$host_alias" = x; then-  ac_cv_host=$ac_cv_build-else-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5-fi--fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5-$as_echo "$ac_cv_host" >&6; }-case $ac_cv_host in-*-*-*) ;;-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;-esac-host=$ac_cv_host-ac_save_IFS=$IFS; IFS='-'-set x $ac_cv_host-shift-host_cpu=$1-host_vendor=$2-shift; shift-# Remember, the first character of IFS is used to create $*,-# except with old shells:-host_os=$*-IFS=$ac_save_IFS-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac---{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5-$as_echo_n "checking target system type... " >&6; }-if ${ac_cv_target+:} false; then :-  $as_echo_n "(cached) " >&6-else-  if test "x$target_alias" = x; then-  ac_cv_target=$ac_cv_host-else-  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5-fi--fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5-$as_echo "$ac_cv_target" >&6; }-case $ac_cv_target in-*-*-*) ;;-*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;-esac-target=$ac_cv_target-ac_save_IFS=$IFS; IFS='-'-set x $ac_cv_target-shift-target_cpu=$1-target_vendor=$2-shift; shift-# Remember, the first character of IFS is used to create $*,-# except with old shells:-target_os=$*-IFS=$ac_save_IFS-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac---# The aliases save the names the user supplied, while $host etc.-# will get canonicalized.-test -n "$target_alias" &&-  test "$program_prefix$program_suffix$program_transform_name" = \-    NONENONEs,x,x, &&-  program_prefix=${target_alias}---ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-if test -n "$ac_tool_prefix"; then-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.-set dummy ${ac_tool_prefix}gcc; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_CC+:} false; then :-  $as_echo_n "(cached) " >&6-else-  if test -n "$CC"; then-  ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    for ac_exec_ext in '' $ac_executable_extensions; do-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then-    ac_cv_prog_CC="${ac_tool_prefix}gcc"-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-  done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-$as_echo "$CC" >&6; }-else-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_CC"; then-  ac_ct_CC=$CC-  # Extract the first word of "gcc", so it can be a program name with args.-set dummy gcc; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_ac_ct_CC+:} false; then :-  $as_echo_n "(cached) " >&6-else-  if test -n "$ac_ct_CC"; then-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    for ac_exec_ext in '' $ac_executable_extensions; do-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then-    ac_cv_prog_ac_ct_CC="gcc"-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-  done-IFS=$as_save_IFS--fi-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5-$as_echo "$ac_ct_CC" >&6; }-else-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi--  if test "x$ac_ct_CC" = x; then-    CC=""-  else-    case $cross_compiling:$ac_tool_warned in-yes:)-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac-    CC=$ac_ct_CC-  fi-else-  CC="$ac_cv_prog_CC"-fi--if test -z "$CC"; then-          if test -n "$ac_tool_prefix"; then-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.-set dummy ${ac_tool_prefix}cc; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_CC+:} false; then :-  $as_echo_n "(cached) " >&6-else-  if test -n "$CC"; then-  ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    for ac_exec_ext in '' $ac_executable_extensions; do-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then-    ac_cv_prog_CC="${ac_tool_prefix}cc"-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-  done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-$as_echo "$CC" >&6; }-else-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi---  fi-fi-if test -z "$CC"; then-  # Extract the first word of "cc", so it can be a program name with args.-set dummy cc; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_CC+:} false; then :-  $as_echo_n "(cached) " >&6-else-  if test -n "$CC"; then-  ac_cv_prog_CC="$CC" # Let the user override the test.-else-  ac_prog_rejected=no-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    for ac_exec_ext in '' $ac_executable_extensions; do-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then-       ac_prog_rejected=yes-       continue-     fi-    ac_cv_prog_CC="cc"-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-  done-IFS=$as_save_IFS--if test $ac_prog_rejected = yes; then-  # We found a bogon in the path, so make sure we never use it.-  set dummy $ac_cv_prog_CC-  shift-  if test $# != 0; then-    # We chose a different compiler from the bogus one.-    # However, it has the same basename, so the bogon will be chosen-    # first if we set CC to just the basename; use the full file name.-    shift-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"-  fi-fi-fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-$as_echo "$CC" >&6; }-else-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi---fi-if test -z "$CC"; then-  if test -n "$ac_tool_prefix"; then-  for ac_prog in cl.exe-  do-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.-set dummy $ac_tool_prefix$ac_prog; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_CC+:} false; then :-  $as_echo_n "(cached) " >&6-else-  if test -n "$CC"; then-  ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    for ac_exec_ext in '' $ac_executable_extensions; do-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-  done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-$as_echo "$CC" >&6; }-else-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi---    test -n "$CC" && break-  done-fi-if test -z "$CC"; then-  ac_ct_CC=$CC-  for ac_prog in cl.exe-do-  # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_ac_ct_CC+:} false; then :-  $as_echo_n "(cached) " >&6-else-  if test -n "$ac_ct_CC"; then-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    for ac_exec_ext in '' $ac_executable_extensions; do-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then-    ac_cv_prog_ac_ct_CC="$ac_prog"-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-  done-IFS=$as_save_IFS--fi-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5-$as_echo "$ac_ct_CC" >&6; }-else-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi---  test -n "$ac_ct_CC" && break-done--  if test "x$ac_ct_CC" = x; then-    CC=""-  else-    case $cross_compiling:$ac_tool_warned in-yes:)-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac-    CC=$ac_ct_CC-  fi-fi--fi---test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "no acceptable C compiler found in \$PATH-See \`config.log' for more details" "$LINENO" 5; }--# Provide some information about the compiler.-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5-set X $ac_compile-ac_compiler=$2-for ac_option in --version -v -V -qversion; do-  { { ac_try="$ac_compiler $ac_option >&5"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err-  ac_status=$?-  if test -s conftest.err; then-    sed '10a\-... rest of stderr output deleted ...-         10q' conftest.err >conftest.er1-    cat conftest.er1 >&5-  fi-  rm -f conftest.er1 conftest.err-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; }-done--cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--int-main ()-{--  ;-  return 0;-}-_ACEOF-ac_clean_files_save=$ac_clean_files-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"-# Try to create an executable without -o first, disregard a.out.-# It will help us diagnose broken compilers, and finding out an intuition-# of exeext.-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5-$as_echo_n "checking whether the C compiler works... " >&6; }-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`--# The possible output files:-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"--ac_rmfiles=-for ac_file in $ac_files-do-  case $ac_file in-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;-  esac-done-rm -f $ac_rmfiles--if { { ac_try="$ac_link_default"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_link_default") 2>&5-  ac_status=$?-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; }; then :-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'-# in a Makefile.  We should not override ac_cv_exeext if it was cached,-# so that the user can short-circuit this test for compilers unknown to-# Autoconf.-for ac_file in $ac_files ''-do-  test -f "$ac_file" || continue-  case $ac_file in-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )-	;;-    [ab].out )-	# We found the default executable, but exeext='' is most-	# certainly right.-	break;;-    *.* )-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;-	then :; else-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`-	fi-	# We set ac_cv_exeext here because the later test for it is not-	# safe: cross compilers may not add the suffix if given an `-o'-	# argument, so we may need to know it at that point already.-	# Even if this section looks crufty: it has the advantage of-	# actually working.-	break;;-    * )-	break;;-  esac-done-test "$ac_cv_exeext" = no && ac_cv_exeext=--else-  ac_file=''-fi-if test -z "$ac_file"; then :-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-$as_echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error 77 "C compiler cannot create executables-See \`config.log' for more details" "$LINENO" 5; }-else-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5-$as_echo "yes" >&6; }-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5-$as_echo_n "checking for C compiler default output file name... " >&6; }-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5-$as_echo "$ac_file" >&6; }-ac_exeext=$ac_cv_exeext--rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out-ac_clean_files=$ac_clean_files_save-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5-$as_echo_n "checking for suffix of executables... " >&6; }-if { { ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_link") 2>&5-  ac_status=$?-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; }; then :-  # If both `conftest.exe' and `conftest' are `present' (well, observable)-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will-# work properly (i.e., refer to `conftest.exe'), while it won't with-# `rm'.-for ac_file in conftest.exe conftest conftest.*; do-  test -f "$ac_file" || continue-  case $ac_file in-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`-	  break;;-    * ) break;;-  esac-done-else-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "cannot compute suffix of executables: cannot compile and link-See \`config.log' for more details" "$LINENO" 5; }-fi-rm -f conftest conftest$ac_cv_exeext-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5-$as_echo "$ac_cv_exeext" >&6; }--rm -f conftest.$ac_ext-EXEEXT=$ac_cv_exeext-ac_exeext=$EXEEXT-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#include <stdio.h>-int-main ()-{-FILE *f = fopen ("conftest.out", "w");- return ferror (f) || fclose (f) != 0;--  ;-  return 0;-}-_ACEOF-ac_clean_files="$ac_clean_files conftest.out"-# Check that the compiler produces executables we can run.  If not, either-# the compiler is broken, or we cross compile.-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5-$as_echo_n "checking whether we are cross compiling... " >&6; }-if test "$cross_compiling" != yes; then-  { { ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_link") 2>&5-  ac_status=$?-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; }-  if { ac_try='./conftest$ac_cv_exeext'-  { { case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_try") 2>&5-  ac_status=$?-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; }; }; then-    cross_compiling=no-  else-    if test "$cross_compiling" = maybe; then-	cross_compiling=yes-    else-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "cannot run C compiled programs.-If you meant to cross compile, use \`--host'.-See \`config.log' for more details" "$LINENO" 5; }-    fi-  fi-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5-$as_echo "$cross_compiling" >&6; }--rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out-ac_clean_files=$ac_clean_files_save-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5-$as_echo_n "checking for suffix of object files... " >&6; }-if ${ac_cv_objext+:} false; then :-  $as_echo_n "(cached) " >&6-else-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--int-main ()-{--  ;-  return 0;-}-_ACEOF-rm -f conftest.o conftest.obj-if { { ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5-  (eval "$ac_compile") 2>&5-  ac_status=$?-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5-  test $ac_status = 0; }; then :-  for ac_file in conftest.o conftest.obj conftest.*; do-  test -f "$ac_file" || continue;-  case $ac_file in-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`-       break;;-  esac-done-else-  $as_echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "cannot compute suffix of object files: cannot compile-See \`config.log' for more details" "$LINENO" 5; }-fi-rm -f conftest.$ac_cv_objext conftest.$ac_ext-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5-$as_echo "$ac_cv_objext" >&6; }-OBJEXT=$ac_cv_objext-ac_objext=$OBJEXT-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }-if ${ac_cv_c_compiler_gnu+:} false; then :-  $as_echo_n "(cached) " >&6-else-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--int-main ()-{-#ifndef __GNUC__-       choke me-#endif--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_compiler_gnu=yes-else-  ac_compiler_gnu=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-ac_cv_c_compiler_gnu=$ac_compiler_gnu--fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5-$as_echo "$ac_cv_c_compiler_gnu" >&6; }-if test $ac_compiler_gnu = yes; then-  GCC=yes-else-  GCC=-fi-ac_test_CFLAGS=${CFLAGS+set}-ac_save_CFLAGS=$CFLAGS-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5-$as_echo_n "checking whether $CC accepts -g... " >&6; }-if ${ac_cv_prog_cc_g+:} false; then :-  $as_echo_n "(cached) " >&6-else-  ac_save_c_werror_flag=$ac_c_werror_flag-   ac_c_werror_flag=yes-   ac_cv_prog_cc_g=no-   CFLAGS="-g"-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--int-main ()-{--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_cv_prog_cc_g=yes-else-  CFLAGS=""-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--int-main ()-{--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :--else-  ac_c_werror_flag=$ac_save_c_werror_flag-	 CFLAGS="-g"-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--int-main ()-{--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_cv_prog_cc_g=yes-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-   ac_c_werror_flag=$ac_save_c_werror_flag-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5-$as_echo "$ac_cv_prog_cc_g" >&6; }-if test "$ac_test_CFLAGS" = set; then-  CFLAGS=$ac_save_CFLAGS-elif test $ac_cv_prog_cc_g = yes; then-  if test "$GCC" = yes; then-    CFLAGS="-g -O2"-  else-    CFLAGS="-g"-  fi-else-  if test "$GCC" = yes; then-    CFLAGS="-O2"-  else-    CFLAGS=-  fi-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }-if ${ac_cv_prog_cc_c89+:} false; then :-  $as_echo_n "(cached) " >&6-else-  ac_cv_prog_cc_c89=no-ac_save_CC=$CC-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#include <stdarg.h>-#include <stdio.h>-struct stat;-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */-struct buf { int x; };-FILE * (*rcsopen) (struct buf *, struct stat *, int);-static char *e (p, i)-     char **p;-     int i;-{-  return p[i];-}-static char *f (char * (*g) (char **, int), char **p, ...)-{-  char *s;-  va_list v;-  va_start (v,p);-  s = g (p, va_arg (v,int));-  va_end (v);-  return s;-}--/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has-   function prototypes and stuff, but not '\xHH' hex character constants.-   These don't provoke an error unfortunately, instead are silently treated-   as 'x'.  The following induces an error, until -std is added to get-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an-   array size at least.  It's necessary to write '\x00'==0 to get something-   that's true only with -std.  */-int osf4_cc_array ['\x00' == 0 ? 1 : -1];--/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters-   inside strings and character constants.  */-#define FOO(x) 'x'-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];--int test (int i, double x);-struct s1 {int (*f) (int a);};-struct s2 {int (*f) (double a);};-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);-int argc;-char **argv;-int-main ()-{-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];-  ;-  return 0;-}-_ACEOF-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"-do-  CC="$ac_save_CC $ac_arg"-  if ac_fn_c_try_compile "$LINENO"; then :-  ac_cv_prog_cc_c89=$ac_arg-fi-rm -f core conftest.err conftest.$ac_objext-  test "x$ac_cv_prog_cc_c89" != "xno" && break-done-rm -f conftest.$ac_ext-CC=$ac_save_CC--fi-# AC_CACHE_VAL-case "x$ac_cv_prog_cc_c89" in-  x)-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5-$as_echo "none needed" >&6; } ;;-  xno)-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5-$as_echo "unsupported" >&6; } ;;-  *)-    CC="$CC $ac_cv_prog_cc_c89"-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;-esac-if test "x$ac_cv_prog_cc_c89" != xno; then :--fi--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5-$as_echo_n "checking how to run the C preprocessor... " >&6; }-# On Suns, sometimes $CPP names a directory.-if test -n "$CPP" && test -d "$CPP"; then-  CPP=-fi-if test -z "$CPP"; then-  if ${ac_cv_prog_CPP+:} false; then :-  $as_echo_n "(cached) " >&6-else-      # Double quotes because CPP needs to be expanded-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"-    do-      ac_preproc_ok=false-for ac_c_preproc_warn_flag in '' yes-do-  # Use a header file that comes with gcc, so configuring glibc-  # with a fresh cross-compiler works.-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since-  # <limits.h> exists even on freestanding compilers.-  # On the NeXT, cc -E runs the code through the compiler's parser,-  # not just through cpp. "Syntax error" is here to catch this case.-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#ifdef __STDC__-# include <limits.h>-#else-# include <assert.h>-#endif-		     Syntax error-_ACEOF-if ac_fn_c_try_cpp "$LINENO"; then :--else-  # Broken: fails on valid input.-continue-fi-rm -f conftest.err conftest.i conftest.$ac_ext--  # OK, works on sane cases.  Now check whether nonexistent headers-  # can be detected and how.-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#include <ac_nonexistent.h>-_ACEOF-if ac_fn_c_try_cpp "$LINENO"; then :-  # Broken: success on invalid input.-continue-else-  # Passes both tests.-ac_preproc_ok=:-break-fi-rm -f conftest.err conftest.i conftest.$ac_ext--done-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.-rm -f conftest.i conftest.err conftest.$ac_ext-if $ac_preproc_ok; then :-  break-fi--    done-    ac_cv_prog_CPP=$CPP--fi-  CPP=$ac_cv_prog_CPP-else-  ac_cv_prog_CPP=$CPP-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5-$as_echo "$CPP" >&6; }-ac_preproc_ok=false-for ac_c_preproc_warn_flag in '' yes-do-  # Use a header file that comes with gcc, so configuring glibc-  # with a fresh cross-compiler works.-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since-  # <limits.h> exists even on freestanding compilers.-  # On the NeXT, cc -E runs the code through the compiler's parser,-  # not just through cpp. "Syntax error" is here to catch this case.-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#ifdef __STDC__-# include <limits.h>-#else-# include <assert.h>-#endif-		     Syntax error-_ACEOF-if ac_fn_c_try_cpp "$LINENO"; then :--else-  # Broken: fails on valid input.-continue-fi-rm -f conftest.err conftest.i conftest.$ac_ext--  # OK, works on sane cases.  Now check whether nonexistent headers-  # can be detected and how.-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#include <ac_nonexistent.h>-_ACEOF-if ac_fn_c_try_cpp "$LINENO"; then :-  # Broken: success on invalid input.-continue-else-  # Passes both tests.-ac_preproc_ok=:-break-fi-rm -f conftest.err conftest.i conftest.$ac_ext--done-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.-rm -f conftest.i conftest.err conftest.$ac_ext-if $ac_preproc_ok; then :--else-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check-See \`config.log' for more details" "$LINENO" 5; }-fi--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }-if ${ac_cv_path_GREP+:} false; then :-  $as_echo_n "(cached) " >&6-else-  if test -z "$GREP"; then-  ac_path_GREP_found=false-  # Loop through the user's path and test for each of PROGNAME-LIST-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    for ac_prog in grep ggrep; do-    for ac_exec_ext in '' $ac_executable_extensions; do-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"-      as_fn_executable_p "$ac_path_GREP" || continue-# Check for GNU ac_path_GREP and select it if it is found.-  # Check for GNU $ac_path_GREP-case `"$ac_path_GREP" --version 2>&1` in-*GNU*)-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;-*)-  ac_count=0-  $as_echo_n 0123456789 >"conftest.in"-  while :-  do-    cat "conftest.in" "conftest.in" >"conftest.tmp"-    mv "conftest.tmp" "conftest.in"-    cp "conftest.in" "conftest.nl"-    $as_echo 'GREP' >> "conftest.nl"-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break-    as_fn_arith $ac_count + 1 && ac_count=$as_val-    if test $ac_count -gt ${ac_path_GREP_max-0}; then-      # Best one so far, save it but keep looking for a better one-      ac_cv_path_GREP="$ac_path_GREP"-      ac_path_GREP_max=$ac_count-    fi-    # 10*(2^10) chars as input seems more than enough-    test $ac_count -gt 10 && break-  done-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac--      $ac_path_GREP_found && break 3-    done-  done-  done-IFS=$as_save_IFS-  if test -z "$ac_cv_path_GREP"; then-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5-  fi-else-  ac_cv_path_GREP=$GREP-fi--fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5-$as_echo "$ac_cv_path_GREP" >&6; }- GREP="$ac_cv_path_GREP"---{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5-$as_echo_n "checking for egrep... " >&6; }-if ${ac_cv_path_EGREP+:} false; then :-  $as_echo_n "(cached) " >&6-else-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1-   then ac_cv_path_EGREP="$GREP -E"-   else-     if test -z "$EGREP"; then-  ac_path_EGREP_found=false-  # Loop through the user's path and test for each of PROGNAME-LIST-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    for ac_prog in egrep; do-    for ac_exec_ext in '' $ac_executable_extensions; do-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"-      as_fn_executable_p "$ac_path_EGREP" || continue-# Check for GNU ac_path_EGREP and select it if it is found.-  # Check for GNU $ac_path_EGREP-case `"$ac_path_EGREP" --version 2>&1` in-*GNU*)-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;-*)-  ac_count=0-  $as_echo_n 0123456789 >"conftest.in"-  while :-  do-    cat "conftest.in" "conftest.in" >"conftest.tmp"-    mv "conftest.tmp" "conftest.in"-    cp "conftest.in" "conftest.nl"-    $as_echo 'EGREP' >> "conftest.nl"-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break-    as_fn_arith $ac_count + 1 && ac_count=$as_val-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then-      # Best one so far, save it but keep looking for a better one-      ac_cv_path_EGREP="$ac_path_EGREP"-      ac_path_EGREP_max=$ac_count-    fi-    # 10*(2^10) chars as input seems more than enough-    test $ac_count -gt 10 && break-  done-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac--      $ac_path_EGREP_found && break 3-    done-  done-  done-IFS=$as_save_IFS-  if test -z "$ac_cv_path_EGREP"; then-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5-  fi-else-  ac_cv_path_EGREP=$EGREP-fi--   fi-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5-$as_echo "$ac_cv_path_EGREP" >&6; }- EGREP="$ac_cv_path_EGREP"---{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5-$as_echo_n "checking for ANSI C header files... " >&6; }-if ${ac_cv_header_stdc+:} false; then :-  $as_echo_n "(cached) " >&6-else-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#include <stdlib.h>-#include <stdarg.h>-#include <string.h>-#include <float.h>--int-main ()-{--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_cv_header_stdc=yes-else-  ac_cv_header_stdc=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext--if test $ac_cv_header_stdc = yes; then-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#include <string.h>--_ACEOF-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |-  $EGREP "memchr" >/dev/null 2>&1; then :--else-  ac_cv_header_stdc=no-fi-rm -f conftest*--fi--if test $ac_cv_header_stdc = yes; then-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#include <stdlib.h>--_ACEOF-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |-  $EGREP "free" >/dev/null 2>&1; then :--else-  ac_cv_header_stdc=no-fi-rm -f conftest*--fi--if test $ac_cv_header_stdc = yes; then-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.-  if test "$cross_compiling" = yes; then :-  :-else-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */-#include <ctype.h>-#include <stdlib.h>-#if ((' ' & 0x0FF) == 0x020)-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))-#else-# define ISLOWER(c) \-		   (('a' <= (c) && (c) <= 'i') \-		     || ('j' <= (c) && (c) <= 'r') \-		     || ('s' <= (c) && (c) <= 'z'))-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))-#endif--#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))-int-main ()-{-  int i;-  for (i = 0; i < 256; i++)-    if (XOR (islower (i), ISLOWER (i))-	|| toupper (i) != TOUPPER (i))-      return 2;-  return 0;-}-_ACEOF-if ac_fn_c_try_run "$LINENO"; then :--else-  ac_cv_header_stdc=no-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \-  conftest.$ac_objext conftest.beam conftest.$ac_ext-fi--fi-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5-$as_echo "$ac_cv_header_stdc" >&6; }-if test $ac_cv_header_stdc = yes; then--$as_echo "#define STDC_HEADERS 1" >>confdefs.h--fi--# On IRIX 5.3, sys/types and inttypes.h are conflicting.-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \-		  inttypes.h stdint.h unistd.h-do :-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default-"-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :-  cat >>confdefs.h <<_ACEOF-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1-_ACEOF--fi--done----  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"-if test "x$ac_cv_header_minix_config_h" = xyes; then :-  MINIX=yes-else-  MINIX=-fi---  if test "$MINIX" = yes; then--$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h---$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h---$as_echo "#define _MINIX 1" >>confdefs.h--  fi---  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }-if ${ac_cv_safe_to_define___extensions__+:} false; then :-  $as_echo_n "(cached) " >&6-else-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--#         define __EXTENSIONS__ 1-          $ac_includes_default-int-main ()-{--  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :-  ac_cv_safe_to_define___extensions__=yes-else-  ac_cv_safe_to_define___extensions__=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }-  test $ac_cv_safe_to_define___extensions__ = yes &&-    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h--  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h--  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h--  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h--  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h-------# Check whether --with-gmp-includes was given.-if test "${with_gmp_includes+set}" = set; then :-  withval=$with_gmp_includes; GMP_INCLUDE_DIRS=$withval; CPPFLAGS="-I$withval"-else-  GMP_INCLUDE_DIRS=-fi----# Check whether --with-gmp-libraries was given.-if test "${with_gmp_libraries+set}" = set; then :-  withval=$with_gmp_libraries; GMP_LIB_DIRS=$withval; LDFLAGS="-L$withval"-else-  GMP_LIB_DIRS=-fi----# Check whether --with-gmp-framework-preferred was given.-if test "${with_gmp_framework_preferred+set}" = set; then :-  withval=$with_gmp_framework_preferred; GMP_PREFER_FRAMEWORK=YES-else-  GMP_PREFER_FRAMEWORK=NO-fi----# Check whether --with-intree-gmp was given.-if test "${with_intree_gmp+set}" = set; then :-  withval=$with_intree_gmp; GMP_FORCE_INTREE=YES-else-  GMP_FORCE_INTREE=NO-fi----HaveLibGmp=NO-GMP_LIBS=-HaveFrameworkGMP=NO-GMP_FRAMEWORK=-HaveSecurePowm=0--if test "$GMP_FORCE_INTREE" != "YES"-then-    if test "$GMP_PREFER_FRAMEWORK" = "YES"-    then--    if test "$HaveLibGmp" = "NO"-    then-        case $target_os in-        darwin*)-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GMP.framework" >&5-$as_echo_n "checking for GMP.framework... " >&6; }-            save_libs="$LIBS"-            LIBS="-framework GMP"-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--/* Override any GCC internal prototype to avoid an error.-   Use char because int might match the return type of a GCC-   builtin and then its argument prototype would still apply.  */-#ifdef __cplusplus-extern "C"-#endif-char __gmpz_powm_sec ();-int-main ()-{-return __gmpz_powm_sec ();-  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"; then :-  HaveFrameworkGMP=YES; GMP_FRAMEWORK=GMP-fi-rm -f core conftest.err conftest.$ac_objext \-    conftest$ac_exeext conftest.$ac_ext-            LIBS="$save_libs"-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HaveFrameworkGMP" >&5-$as_echo "$HaveFrameworkGMP" >&6; }-            ;;-        esac-    fi---    if test "$HaveFrameworkGMP" = "NO"-    then-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_powm in -lgmp" >&5-$as_echo_n "checking for __gmpz_powm in -lgmp... " >&6; }-if ${ac_cv_lib_gmp___gmpz_powm+:} false; then :-  $as_echo_n "(cached) " >&6-else-  ac_check_lib_save_LIBS=$LIBS-LIBS="-lgmp  $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--/* Override any GCC internal prototype to avoid an error.-   Use char because int might match the return type of a GCC-   builtin and then its argument prototype would still apply.  */-#ifdef __cplusplus-extern "C"-#endif-char __gmpz_powm ();-int-main ()-{-return __gmpz_powm ();-  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"; then :-  ac_cv_lib_gmp___gmpz_powm=yes-else-  ac_cv_lib_gmp___gmpz_powm=no-fi-rm -f core conftest.err conftest.$ac_objext \-    conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_powm" >&5-$as_echo "$ac_cv_lib_gmp___gmpz_powm" >&6; }-if test "x$ac_cv_lib_gmp___gmpz_powm" = xyes; then :-  HaveLibGmp=YES; GMP_LIBS=gmp-fi--        if test "$HaveLibGmp" = "NO"-        then-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_powm in -lgmp3" >&5-$as_echo_n "checking for __gmpz_powm in -lgmp3... " >&6; }-if ${ac_cv_lib_gmp3___gmpz_powm+:} false; then :-  $as_echo_n "(cached) " >&6-else-  ac_check_lib_save_LIBS=$LIBS-LIBS="-lgmp3  $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--/* Override any GCC internal prototype to avoid an error.-   Use char because int might match the return type of a GCC-   builtin and then its argument prototype would still apply.  */-#ifdef __cplusplus-extern "C"-#endif-char __gmpz_powm ();-int-main ()-{-return __gmpz_powm ();-  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"; then :-  ac_cv_lib_gmp3___gmpz_powm=yes-else-  ac_cv_lib_gmp3___gmpz_powm=no-fi-rm -f core conftest.err conftest.$ac_objext \-    conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp3___gmpz_powm" >&5-$as_echo "$ac_cv_lib_gmp3___gmpz_powm" >&6; }-if test "x$ac_cv_lib_gmp3___gmpz_powm" = xyes; then :-  HaveLibGmp=YES; GMP_LIBS=gmp3-fi--        fi-        if test "$HaveLibGmp" = "YES"-        then-            as_ac_Lib=`$as_echo "ac_cv_lib_$GMP_LIBS''___gmpz_powm_sec" | $as_tr_sh`-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_powm_sec in -l$GMP_LIBS" >&5-$as_echo_n "checking for __gmpz_powm_sec in -l$GMP_LIBS... " >&6; }-if eval \${$as_ac_Lib+:} false; then :-  $as_echo_n "(cached) " >&6-else-  ac_check_lib_save_LIBS=$LIBS-LIBS="-l$GMP_LIBS  $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--/* Override any GCC internal prototype to avoid an error.-   Use char because int might match the return type of a GCC-   builtin and then its argument prototype would still apply.  */-#ifdef __cplusplus-extern "C"-#endif-char __gmpz_powm_sec ();-int-main ()-{-return __gmpz_powm_sec ();-  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"; then :-  eval "$as_ac_Lib=yes"-else-  eval "$as_ac_Lib=no"-fi-rm -f core conftest.err conftest.$ac_objext \-    conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS-fi-eval ac_res=\$$as_ac_Lib-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-$as_echo "$ac_res" >&6; }-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :-  HaveSecurePowm=1-fi--        fi-    fi--    else--    if test "$HaveFrameworkGMP" = "NO"-    then-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_powm in -lgmp" >&5-$as_echo_n "checking for __gmpz_powm in -lgmp... " >&6; }-if ${ac_cv_lib_gmp___gmpz_powm+:} false; then :-  $as_echo_n "(cached) " >&6-else-  ac_check_lib_save_LIBS=$LIBS-LIBS="-lgmp  $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--/* Override any GCC internal prototype to avoid an error.-   Use char because int might match the return type of a GCC-   builtin and then its argument prototype would still apply.  */-#ifdef __cplusplus-extern "C"-#endif-char __gmpz_powm ();-int-main ()-{-return __gmpz_powm ();-  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"; then :-  ac_cv_lib_gmp___gmpz_powm=yes-else-  ac_cv_lib_gmp___gmpz_powm=no-fi-rm -f core conftest.err conftest.$ac_objext \-    conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_powm" >&5-$as_echo "$ac_cv_lib_gmp___gmpz_powm" >&6; }-if test "x$ac_cv_lib_gmp___gmpz_powm" = xyes; then :-  HaveLibGmp=YES; GMP_LIBS=gmp-fi--        if test "$HaveLibGmp" = "NO"-        then-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_powm in -lgmp3" >&5-$as_echo_n "checking for __gmpz_powm in -lgmp3... " >&6; }-if ${ac_cv_lib_gmp3___gmpz_powm+:} false; then :-  $as_echo_n "(cached) " >&6-else-  ac_check_lib_save_LIBS=$LIBS-LIBS="-lgmp3  $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--/* Override any GCC internal prototype to avoid an error.-   Use char because int might match the return type of a GCC-   builtin and then its argument prototype would still apply.  */-#ifdef __cplusplus-extern "C"-#endif-char __gmpz_powm ();-int-main ()-{-return __gmpz_powm ();-  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"; then :-  ac_cv_lib_gmp3___gmpz_powm=yes-else-  ac_cv_lib_gmp3___gmpz_powm=no-fi-rm -f core conftest.err conftest.$ac_objext \-    conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp3___gmpz_powm" >&5-$as_echo "$ac_cv_lib_gmp3___gmpz_powm" >&6; }-if test "x$ac_cv_lib_gmp3___gmpz_powm" = xyes; then :-  HaveLibGmp=YES; GMP_LIBS=gmp3-fi--        fi-        if test "$HaveLibGmp" = "YES"-        then-            as_ac_Lib=`$as_echo "ac_cv_lib_$GMP_LIBS''___gmpz_powm_sec" | $as_tr_sh`-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_powm_sec in -l$GMP_LIBS" >&5-$as_echo_n "checking for __gmpz_powm_sec in -l$GMP_LIBS... " >&6; }-if eval \${$as_ac_Lib+:} false; then :-  $as_echo_n "(cached) " >&6-else-  ac_check_lib_save_LIBS=$LIBS-LIBS="-l$GMP_LIBS  $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--/* Override any GCC internal prototype to avoid an error.-   Use char because int might match the return type of a GCC-   builtin and then its argument prototype would still apply.  */-#ifdef __cplusplus-extern "C"-#endif-char __gmpz_powm_sec ();-int-main ()-{-return __gmpz_powm_sec ();-  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"; then :-  eval "$as_ac_Lib=yes"-else-  eval "$as_ac_Lib=no"-fi-rm -f core conftest.err conftest.$ac_objext \-    conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS-fi-eval ac_res=\$$as_ac_Lib-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-$as_echo "$ac_res" >&6; }-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :-  HaveSecurePowm=1-fi--        fi-    fi---    if test "$HaveLibGmp" = "NO"-    then-        case $target_os in-        darwin*)-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GMP.framework" >&5-$as_echo_n "checking for GMP.framework... " >&6; }-            save_libs="$LIBS"-            LIBS="-framework GMP"-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h.  */--/* Override any GCC internal prototype to avoid an error.-   Use char because int might match the return type of a GCC-   builtin and then its argument prototype would still apply.  */-#ifdef __cplusplus-extern "C"-#endif-char __gmpz_powm_sec ();-int-main ()-{-return __gmpz_powm_sec ();-  ;-  return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"; then :-  HaveFrameworkGMP=YES; GMP_FRAMEWORK=GMP-fi-rm -f core conftest.err conftest.$ac_objext \-    conftest$ac_exeext conftest.$ac_ext-            LIBS="$save_libs"-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HaveFrameworkGMP" >&5-$as_echo "$HaveFrameworkGMP" >&6; }-            ;;-        esac-    fi--    fi-fi--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use in-tree GMP" >&5-$as_echo_n "checking whether to use in-tree GMP... " >&6; }-if test "$HaveFrameworkGMP" = "YES" || test "$HaveLibGmp" = "YES"-then-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-    UseIntreeGmp=0-    ac_fn_c_check_header_mongrel "$LINENO" "gmp.h" "ac_cv_header_gmp_h" "$ac_includes_default"-if test "x$ac_cv_header_gmp_h" = xyes; then :--else-  as_fn_error $? "Cannot find gmp.h" "$LINENO" 5-fi----    { $as_echo "$as_me:${as_lineno-$LINENO}: checking GMP version" >&5-$as_echo_n "checking GMP version... " >&6; }-    if ac_fn_c_compute_int "$LINENO" "__GNU_MP_VERSION" "GhcGmpVerMj"        "#include <gmp.h>"; then :--else-  as_fn_error $? "Unable to get value of __GNU_MP_VERSION" "$LINENO" 5-fi--    if ac_fn_c_compute_int "$LINENO" "__GNU_MP_VERSION_MINOR" "GhcGmpVerMi"        "#include <gmp.h>"; then :--else-  as_fn_error $? "Unable to get value of __GNU_MP_VERSION_MINOR" "$LINENO" 5-fi--    if ac_fn_c_compute_int "$LINENO" "__GNU_MP_VERSION_PATCHLEVEL" "GhcGmpVerPl"        "#include <gmp.h>"; then :--else-  as_fn_error $? "Unable to get value of __GNU_MP_VERSION_PATCHLEVEL" "$LINENO" 5-fi--    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GhcGmpVerMj.$GhcGmpVerMi.$GhcGmpVerPl" >&5-$as_echo "$GhcGmpVerMj.$GhcGmpVerMi.$GhcGmpVerPl" >&6; }--else-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5-$as_echo "yes" >&6; }-    UseIntreeGmp=1-    HaveSecurePowm=1--    { $as_echo "$as_me:${as_lineno-$LINENO}: checking GMP version" >&5-$as_echo_n "checking GMP version... " >&6; }-    GhcGmpVerMj=5-    GhcGmpVerMi=0-    GhcGmpVerPl=4-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GhcGmpVerMj.$GhcGmpVerMi.$GhcGmpVerPl" >&5-$as_echo "$GhcGmpVerMj.$GhcGmpVerMi.$GhcGmpVerPl" >&6; }-fi----------------ac_config_files="$ac_config_files integer-gmp.buildinfo gmp/config.mk include/HsIntegerGmp.h"----cat >confcache <<\_ACEOF-# This file is a shell script that caches the results of configure-# tests run on this system so they can be shared between configure-# scripts and configure runs, see configure's option --config-cache.-# It is not useful on other systems.  If it contains results you don't-# want to keep, you may remove or edit it.-#-# config.status only pays attention to the cache file if you give it-# the --recheck option to rerun configure.-#-# `ac_cv_env_foo' variables (set or unset) will be overridden when-# loading this file, other *unset* `ac_cv_foo' will be assigned the-# following values.--_ACEOF--# The following way of writing the cache mishandles newlines in values,-# but we know of no workaround that is simple, portable, and efficient.-# So, we kill variables containing newlines.-# Ultrix sh set writes to stderr and can't be redirected directly,-# and sets the high bit in the cache file unless we assign to the vars.-(-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do-    eval ac_val=\$$ac_var-    case $ac_val in #(-    *${as_nl}*)-      case $ac_var in #(-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;-      esac-      case $ac_var in #(-      _ | IFS | as_nl) ;; #(-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(-      *) { eval $ac_var=; unset $ac_var;} ;;-      esac ;;-    esac-  done--  (set) 2>&1 |-    case $as_nl`(ac_space=' '; set) 2>&1` in #(-    *${as_nl}ac_space=\ *)-      # `set' does not quote correctly, so add quotes: double-quote-      # substitution turns \\\\ into \\, and sed turns \\ into \.-      sed -n \-	"s/'/'\\\\''/g;-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"-      ;; #(-    *)-      # `set' quotes correctly as required by POSIX, so do not add quotes.-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"-      ;;-    esac |-    sort-) |-  sed '-     /^ac_cv_env_/b end-     t clear-     :clear-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/-     t end-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/-     :end' >>confcache-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else-  if test -w "$cache_file"; then-    if test "x$cache_file" != "x/dev/null"; then-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5-$as_echo "$as_me: updating cache $cache_file" >&6;}-      if test ! -f "$cache_file" || test -h "$cache_file"; then-	cat confcache >"$cache_file"-      else-        case $cache_file in #(-        */* | ?:*)-	  mv -f confcache "$cache_file"$$ &&-	  mv -f "$cache_file"$$ "$cache_file" ;; #(-        *)-	  mv -f confcache "$cache_file" ;;-	esac-      fi-    fi-  else-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}-  fi-fi-rm -f confcache--test "x$prefix" = xNONE && prefix=$ac_default_prefix-# Let make expand exec_prefix.-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'--# Transform confdefs.h into DEFS.-# Protect against shell expansion while executing Makefile rules.-# Protect against Makefile macro expansion.-#-# If the first sed substitution is executed (which looks for macros that-# take arguments), then branch to the quote section.  Otherwise,-# look for a macro that doesn't take arguments.-ac_script='-:mline-/\\$/{- N- s,\\\n,,- b mline-}-t clear-:clear-s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g-t quote-s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g-t quote-b any-:quote-s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g-s/\[/\\&/g-s/\]/\\&/g-s/\$/$$/g-H-:any-${-	g-	s/^\n//-	s/\n/ /g-	p-}-'-DEFS=`sed -n "$ac_script" confdefs.h`---ac_libobjs=-ac_ltlibobjs=-U=-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue-  # 1. Remove the extension, and $U if already installed.-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR-  #    will be set to the directory where LIBOBJS objects are built.-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'-done-LIBOBJS=$ac_libobjs--LTLIBOBJS=$ac_ltlibobjs----: "${CONFIG_STATUS=./config.status}"-ac_write_fail=0-ac_clean_files_save=$ac_clean_files-ac_clean_files="$ac_clean_files $CONFIG_STATUS"-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}-as_write_fail=0-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1-#! $SHELL-# Generated by $as_me.-# Run this file to recreate the current configuration.-# Compiler output produced by configure, useful for debugging-# configure, is in config.log if it exists.--debug=false-ac_cs_recheck=false-ac_cs_silent=false--SHELL=\${CONFIG_SHELL-$SHELL}-export SHELL-_ASEOF-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1-## -------------------- ##-## M4sh Initialization. ##-## -------------------- ##--# Be more Bourne compatible-DUALCASE=1; export DUALCASE # for MKS sh-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :-  emulate sh-  NULLCMD=:-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which-  # is contrary to our usage.  Disable this feature.-  alias -g '${1+"$@"}'='"$@"'-  setopt NO_GLOB_SUBST-else-  case `(set -o) 2>/dev/null` in #(-  *posix*) :-    set -o posix ;; #(-  *) :-     ;;-esac-fi---as_nl='-'-export as_nl-# Printing a long string crashes Solaris 7 /usr/bin/printf.-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo-# Prefer a ksh shell builtin over an external printf program on Solaris,-# but without wasting forks for bash or zsh.-if test -z "$BASH_VERSION$ZSH_VERSION" \-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then-  as_echo='print -r --'-  as_echo_n='print -rn --'-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then-  as_echo='printf %s\n'-  as_echo_n='printf %s'-else-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'-    as_echo_n='/usr/ucb/echo -n'-  else-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'-    as_echo_n_body='eval-      arg=$1;-      case $arg in #(-      *"$as_nl"*)-	expr "X$arg" : "X\\(.*\\)$as_nl";-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;-      esac;-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"-    '-    export as_echo_n_body-    as_echo_n='sh -c $as_echo_n_body as_echo'-  fi-  export as_echo_body-  as_echo='sh -c $as_echo_body as_echo'-fi--# The user is always right.-if test "${PATH_SEPARATOR+set}" != set; then-  PATH_SEPARATOR=:-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||-      PATH_SEPARATOR=';'-  }-fi---# IFS-# We need space, tab and new line, in precisely that order.  Quoting is-# there to prevent editors from complaining about space-tab.-# (If _AS_PATH_WALK were called with IFS unset, it would disable word-# splitting by setting IFS to empty value.)-IFS=" ""	$as_nl"--# Find who we are.  Look in the path if we contain no directory separator.-as_myself=-case $0 in #((-  *[\\/]* ) as_myself=$0 ;;-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break-  done-IFS=$as_save_IFS--     ;;-esac-# We did not find ourselves, most probably we were run as `sh COMMAND'-# in which case we are not to be found in the path.-if test "x$as_myself" = x; then-  as_myself=$0-fi-if test ! -f "$as_myself"; then-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2-  exit 1-fi--# Unset variables that we do not need and which cause bugs (e.g. in-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"-# suppresses any "Segmentation fault" message there.  '((' could-# trigger a bug in pdksh 5.2.14.-for as_var in BASH_ENV ENV MAIL MAILPATH-do eval test x\${$as_var+set} = xset \-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :-done-PS1='$ '-PS2='> '-PS4='+ '--# NLS nuisances.-LC_ALL=C-export LC_ALL-LANGUAGE=C-export LANGUAGE--# CDPATH.-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH---# as_fn_error STATUS ERROR [LINENO LOG_FD]-# -----------------------------------------# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the-# script with STATUS, using 1 if that was 0.-as_fn_error ()-{-  as_status=$1; test $as_status -eq 0 && as_status=1-  if test "$4"; then-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4-  fi-  $as_echo "$as_me: error: $2" >&2-  as_fn_exit $as_status-} # as_fn_error---# as_fn_set_status STATUS-# ------------------------# Set $? to STATUS, without forking.-as_fn_set_status ()-{-  return $1-} # as_fn_set_status--# as_fn_exit STATUS-# ------------------# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.-as_fn_exit ()-{-  set +e-  as_fn_set_status $1-  exit $1-} # as_fn_exit--# as_fn_unset VAR-# ----------------# Portably unset VAR.-as_fn_unset ()-{-  { eval $1=; unset $1;}-}-as_unset=as_fn_unset-# as_fn_append VAR VALUE-# -----------------------# Append the text in VALUE to the end of the definition contained in VAR. Take-# advantage of any shell optimizations that allow amortized linear growth over-# repeated appends, instead of the typical quadratic growth present in naive-# implementations.-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :-  eval 'as_fn_append ()-  {-    eval $1+=\$2-  }'-else-  as_fn_append ()-  {-    eval $1=\$$1\$2-  }-fi # as_fn_append--# as_fn_arith ARG...-# -------------------# Perform arithmetic evaluation on the ARGs, and store the result in the-# global $as_val. Take advantage of shells that can avoid forks. The arguments-# must be portable across $(()) and expr.-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :-  eval 'as_fn_arith ()-  {-    as_val=$(( $* ))-  }'-else-  as_fn_arith ()-  {-    as_val=`expr "$@" || test $? -eq 1`-  }-fi # as_fn_arith---if expr a : '\(a\)' >/dev/null 2>&1 &&-   test "X`expr 00001 : '.*\(...\)'`" = X001; then-  as_expr=expr-else-  as_expr=false-fi--if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then-  as_basename=basename-else-  as_basename=false-fi--if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then-  as_dirname=dirname-else-  as_dirname=false-fi--as_me=`$as_basename -- "$0" ||-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \-	 X"$0" : 'X\(//\)$' \| \-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||-$as_echo X/"$0" |-    sed '/^.*\/\([^/][^/]*\)\/*$/{-	    s//\1/-	    q-	  }-	  /^X\/\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\/\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`--# Avoid depending upon Character Ranges.-as_cr_letters='abcdefghijklmnopqrstuvwxyz'-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'-as_cr_Letters=$as_cr_letters$as_cr_LETTERS-as_cr_digits='0123456789'-as_cr_alnum=$as_cr_Letters$as_cr_digits--ECHO_C= ECHO_N= ECHO_T=-case `echo -n x` in #(((((--n*)-  case `echo 'xy\c'` in-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.-  xy)  ECHO_C='\c';;-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null-       ECHO_T='	';;-  esac;;-*)-  ECHO_N='-n';;-esac--rm -f conf$$ conf$$.exe conf$$.file-if test -d conf$$.dir; then-  rm -f conf$$.dir/conf$$.file-else-  rm -f conf$$.dir-  mkdir conf$$.dir 2>/dev/null-fi-if (echo >conf$$.file) 2>/dev/null; then-  if ln -s conf$$.file conf$$ 2>/dev/null; then-    as_ln_s='ln -s'-    # ... but there are two gotchas:-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.-    # In both cases, we have to default to `cp -pR'.-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||-      as_ln_s='cp -pR'-  elif ln conf$$.file conf$$ 2>/dev/null; then-    as_ln_s=ln-  else-    as_ln_s='cp -pR'-  fi-else-  as_ln_s='cp -pR'-fi-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file-rmdir conf$$.dir 2>/dev/null---# as_fn_mkdir_p-# --------------# Create "$as_dir" as a directory, including parents if necessary.-as_fn_mkdir_p ()-{--  case $as_dir in #(-  -*) as_dir=./$as_dir;;-  esac-  test -d "$as_dir" || eval $as_mkdir_p || {-    as_dirs=-    while :; do-      case $as_dir in #(-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(-      *) as_qdir=$as_dir;;-      esac-      as_dirs="'$as_qdir' $as_dirs"-      as_dir=`$as_dirname -- "$as_dir" ||-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \-	 X"$as_dir" : 'X\(//\)[^/]' \| \-	 X"$as_dir" : 'X\(//\)$' \| \-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||-$as_echo X"$as_dir" |-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)[^/].*/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`-      test -d "$as_dir" && break-    done-    test -z "$as_dirs" || eval "mkdir $as_dirs"-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"---} # as_fn_mkdir_p-if mkdir -p . 2>/dev/null; then-  as_mkdir_p='mkdir -p "$as_dir"'-else-  test -d ./-p && rmdir ./-p-  as_mkdir_p=false-fi---# as_fn_executable_p FILE-# ------------------------# Test if FILE is an executable regular file.-as_fn_executable_p ()-{-  test -f "$1" && test -x "$1"-} # as_fn_executable_p-as_test_x='test -x'-as_executable_p=as_fn_executable_p--# Sed expression to map a string onto a valid CPP name.-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"--# Sed expression to map a string onto a valid variable name.-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"---exec 6>&1-## ----------------------------------- ##-## Main body of $CONFIG_STATUS script. ##-## ----------------------------------- ##-_ASEOF-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-# Save the log message, to keep $0 and so on meaningful, and to-# report actual input values of CONFIG_FILES etc. instead of their-# values after options handling.-ac_log="-This file was extended by Haskell integer (GMP) $as_me 1.0, which was-generated by GNU Autoconf 2.69.  Invocation command line was--  CONFIG_FILES    = $CONFIG_FILES-  CONFIG_HEADERS  = $CONFIG_HEADERS-  CONFIG_LINKS    = $CONFIG_LINKS-  CONFIG_COMMANDS = $CONFIG_COMMANDS-  $ $0 $@--on `(hostname || uname -n) 2>/dev/null | sed 1q`-"--_ACEOF--case $ac_config_files in *"-"*) set x $ac_config_files; shift; ac_config_files=$*;;-esac----cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-# Files that config.status was made for.-config_files="$ac_config_files"--_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-ac_cs_usage="\-\`$as_me' instantiates files and other configuration actions-from templates according to the current configuration.  Unless the files-and actions are specified as TAGs, all are instantiated by default.--Usage: $0 [OPTION]... [TAG]...--  -h, --help       print this help, then exit-  -V, --version    print version number and configuration settings, then exit-      --config     print configuration, then exit-  -q, --quiet, --silent-                   do not print progress messages-  -d, --debug      don't remove temporary files-      --recheck    update $as_me by reconfiguring in the same conditions-      --file=FILE[:TEMPLATE]-                   instantiate the configuration file FILE--Configuration files:-$config_files--Report bugs to <libraries@haskell.org>."--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"-ac_cs_version="\\-Haskell integer (GMP) config.status 1.0-configured by $0, generated by GNU Autoconf 2.69,-  with options \\"\$ac_cs_config\\"--Copyright (C) 2012 Free Software Foundation, Inc.-This config.status script is free software; the Free Software Foundation-gives unlimited permission to copy, distribute and modify it."--ac_pwd='$ac_pwd'-srcdir='$srcdir'-test -n "\$AWK" || AWK=awk-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-# The default lists apply if the user does not specify any file.-ac_need_defaults=:-while test $# != 0-do-  case $1 in-  --*=?*)-    ac_option=`expr "X$1" : 'X\([^=]*\)='`-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`-    ac_shift=:-    ;;-  --*=)-    ac_option=`expr "X$1" : 'X\([^=]*\)='`-    ac_optarg=-    ac_shift=:-    ;;-  *)-    ac_option=$1-    ac_optarg=$2-    ac_shift=shift-    ;;-  esac--  case $ac_option in-  # Handling of the options.-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)-    ac_cs_recheck=: ;;-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )-    $as_echo "$ac_cs_version"; exit ;;-  --config | --confi | --conf | --con | --co | --c )-    $as_echo "$ac_cs_config"; exit ;;-  --debug | --debu | --deb | --de | --d | -d )-    debug=: ;;-  --file | --fil | --fi | --f )-    $ac_shift-    case $ac_optarg in-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;-    '') as_fn_error $? "missing file argument" ;;-    esac-    as_fn_append CONFIG_FILES " '$ac_optarg'"-    ac_need_defaults=false;;-  --he | --h |  --help | --hel | -h )-    $as_echo "$ac_cs_usage"; exit ;;-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \-  | -silent | --silent | --silen | --sile | --sil | --si | --s)-    ac_cs_silent=: ;;--  # This is an error.-  -*) as_fn_error $? "unrecognized option: \`$1'-Try \`$0 --help' for more information." ;;--  *) as_fn_append ac_config_targets " $1"-     ac_need_defaults=false ;;--  esac-  shift-done--ac_configure_extra_args=--if $ac_cs_silent; then-  exec 6>/dev/null-  ac_configure_extra_args="$ac_configure_extra_args --silent"-fi--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-if \$ac_cs_recheck; then-  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion-  shift-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6-  CONFIG_SHELL='$SHELL'-  export CONFIG_SHELL-  exec "\$@"-fi--_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-exec 5>>config.log-{-  echo-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX-## Running $as_me. ##-_ASBOX-  $as_echo "$ac_log"-} >&5--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1--# Handling of arguments.-for ac_config_target in $ac_config_targets-do-  case $ac_config_target in-    "integer-gmp.buildinfo") CONFIG_FILES="$CONFIG_FILES integer-gmp.buildinfo" ;;-    "gmp/config.mk") CONFIG_FILES="$CONFIG_FILES gmp/config.mk" ;;-    "include/HsIntegerGmp.h") CONFIG_FILES="$CONFIG_FILES include/HsIntegerGmp.h" ;;--  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;-  esac-done---# If the user did not use the arguments to specify the items to instantiate,-# then the envvar interface is used.  Set only those that are not.-# We use the long form for the default assignment because of an extremely-# bizarre bug on SunOS 4.1.3.-if $ac_need_defaults; then-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files-fi--# Have a temporary directory for convenience.  Make it in the build tree-# simply because there is no reason against having it here, and in addition,-# creating and moving files from /tmp can sometimes cause problems.-# Hook for its removal unless debugging.-# Note that there is a small window in which the directory will not be cleaned:-# after its creation but before its name has been assigned to `$tmp'.-$debug ||-{-  tmp= ac_tmp=-  trap 'exit_status=$?-  : "${ac_tmp:=$tmp}"-  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status-' 0-  trap 'as_fn_exit 1' 1 2 13 15-}-# Create a (secure) tmp directory for tmp files.--{-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&-  test -d "$tmp"-}  ||-{-  tmp=./conf$$-$RANDOM-  (umask 077 && mkdir "$tmp")-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5-ac_tmp=$tmp--# Set up the scripts for CONFIG_FILES section.-# No need to generate them if there are no CONFIG_FILES.-# This happens for instance with `./config.status config.h'.-if test -n "$CONFIG_FILES"; then---ac_cr=`echo X | tr X '\015'`-# On cygwin, bash can eat \r inside `` if the user requested igncr.-# But we know of no other shell where ac_cr would be empty at this-# point, so we can use a bashism as a fallback.-if test "x$ac_cr" = x; then-  eval ac_cr=\$\'\\r\'-fi-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then-  ac_cs_awk_cr='\\r'-else-  ac_cs_awk_cr=$ac_cr-fi--echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&-_ACEOF---{-  echo "cat >conf$$subs.awk <<_ACEOF" &&-  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&-  echo "_ACEOF"-} >conf$$subs.sh ||-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`-ac_delim='%!_!# '-for ac_last_try in false false false false false :; do-  . ./conf$$subs.sh ||-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5--  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`-  if test $ac_delim_n = $ac_delim_num; then-    break-  elif $ac_last_try; then-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5-  else-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "-  fi-done-rm -f conf$$subs.sh--cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&-_ACEOF-sed -n '-h-s/^/S["/; s/!.*/"]=/-p-g-s/^[^!]*!//-:repl-t repl-s/'"$ac_delim"'$//-t delim-:nl-h-s/\(.\{148\}\)..*/\1/-t more1-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/-p-n-b repl-:more1-s/["\\]/\\&/g; s/^/"/; s/$/"\\/-p-g-s/.\{148\}//-t nl-:delim-h-s/\(.\{148\}\)..*/\1/-t more2-s/["\\]/\\&/g; s/^/"/; s/$/"/-p-b-:more2-s/["\\]/\\&/g; s/^/"/; s/$/"\\/-p-g-s/.\{148\}//-t delim-' <conf$$subs.awk | sed '-/^[^""]/{-  N-  s/\n//-}-' >>$CONFIG_STATUS || ac_write_fail=1-rm -f conf$$subs.awk-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-_ACAWK-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&-  for (key in S) S_is_set[key] = 1-  FS = ""--}-{-  line = $ 0-  nfields = split(line, field, "@")-  substed = 0-  len = length(field[1])-  for (i = 2; i < nfields; i++) {-    key = field[i]-    keylen = length(key)-    if (S_is_set[key]) {-      value = S[key]-      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)-      len += length(value) + length(field[++i])-      substed = 1-    } else-      len += 1 + keylen-  }--  print line-}--_ACAWK-_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then-  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"-else-  cat-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5-_ACEOF--# VPATH may cause trouble with some makes, so we remove sole $(srcdir),-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and-# trailing colons and then remove the whole line if VPATH becomes empty-# (actually we leave an empty line to preserve line numbers).-if test "x$srcdir" = x.; then-  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{-h-s///-s/^/:/-s/[	 ]*$/:/-s/:\$(srcdir):/:/g-s/:\${srcdir}:/:/g-s/:@srcdir@:/:/g-s/^:*//-s/:*$//-x-s/\(=[	 ]*\).*/\1/-G-s/\n//-s/^[^=]*=[	 ]*$//-}'-fi--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-fi # test -n "$CONFIG_FILES"---eval set X "  :F $CONFIG_FILES      "-shift-for ac_tag-do-  case $ac_tag in-  :[FHLC]) ac_mode=$ac_tag; continue;;-  esac-  case $ac_mode$ac_tag in-  :[FHL]*:*);;-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;-  :[FH]-) ac_tag=-:-;;-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;-  esac-  ac_save_IFS=$IFS-  IFS=:-  set x $ac_tag-  IFS=$ac_save_IFS-  shift-  ac_file=$1-  shift--  case $ac_mode in-  :L) ac_source=$1;;-  :[FH])-    ac_file_inputs=-    for ac_f-    do-      case $ac_f in-      -) ac_f="$ac_tmp/stdin";;-      *) # Look for the file first in the build tree, then in the source tree-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,-	 # because $ac_f cannot contain `:'.-	 test -f "$ac_f" ||-	   case $ac_f in-	   [\\/$]*) false;;-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;-	   esac ||-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;-      esac-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac-      as_fn_append ac_file_inputs " '$ac_f'"-    done--    # Let's still pretend it is `configure' which instantiates (i.e., don't-    # use $as_me), people would be surprised to read:-    #    /* config.h.  Generated by config.status.  */-    configure_input='Generated from '`-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'-	`' by configure.'-    if test x"$ac_file" != x-; then-      configure_input="$ac_file.  $configure_input"-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5-$as_echo "$as_me: creating $ac_file" >&6;}-    fi-    # Neutralize special characters interpreted by sed in replacement strings.-    case $configure_input in #(-    *\&* | *\|* | *\\* )-       ac_sed_conf_input=`$as_echo "$configure_input" |-       sed 's/[\\\\&|]/\\\\&/g'`;; #(-    *) ac_sed_conf_input=$configure_input;;-    esac--    case $ac_tag in-    *:-:* | *:-) cat >"$ac_tmp/stdin" \-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;-    esac-    ;;-  esac--  ac_dir=`$as_dirname -- "$ac_file" ||-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \-	 X"$ac_file" : 'X\(//\)[^/]' \| \-	 X"$ac_file" : 'X\(//\)$' \| \-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||-$as_echo X"$ac_file" |-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)[^/].*/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`-  as_dir="$ac_dir"; as_fn_mkdir_p-  ac_builddir=.--case "$ac_dir" in-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;-*)-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`-  # A ".." for each directory in $ac_dir_suffix.-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`-  case $ac_top_builddir_sub in-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;-  esac ;;-esac-ac_abs_top_builddir=$ac_pwd-ac_abs_builddir=$ac_pwd$ac_dir_suffix-# for backward compatibility:-ac_top_builddir=$ac_top_build_prefix--case $srcdir in-  .)  # We are building in place.-    ac_srcdir=.-    ac_top_srcdir=$ac_top_builddir_sub-    ac_abs_top_srcdir=$ac_pwd ;;-  [\\/]* | ?:[\\/]* )  # Absolute name.-    ac_srcdir=$srcdir$ac_dir_suffix;-    ac_top_srcdir=$srcdir-    ac_abs_top_srcdir=$srcdir ;;-  *) # Relative name.-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix-    ac_top_srcdir=$ac_top_build_prefix$srcdir-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;-esac-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix---  case $ac_mode in-  :F)-  #-  # CONFIG_FILE-  #--_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-# If the template does not know about datarootdir, expand it.-# FIXME: This hack should be removed a few years after 2.60.-ac_datarootdir_hack=; ac_datarootdir_seen=-ac_sed_dataroot='-/datarootdir/ {-  p-  q-}-/@datadir@/p-/@docdir@/p-/@infodir@/p-/@localedir@/p-/@mandir@/p'-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in-*datarootdir*) ac_datarootdir_seen=yes;;-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}-_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-  ac_datarootdir_hack='-  s&@datadir@&$datadir&g-  s&@docdir@&$docdir&g-  s&@infodir@&$infodir&g-  s&@localedir@&$localedir&g-  s&@mandir@&$mandir&g-  s&\\\${datarootdir}&$datarootdir&g' ;;-esac-_ACEOF--# Neutralize VPATH when `$srcdir' = `.'.-# Shell code in configure.ac might set extrasub.-# FIXME: do we really want to maintain this feature?-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-ac_sed_extra="$ac_vpsub-$extrasub-_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-:t-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b-s|@configure_input@|$ac_sed_conf_input|;t t-s&@top_builddir@&$ac_top_builddir_sub&;t t-s&@top_build_prefix@&$ac_top_build_prefix&;t t-s&@srcdir@&$ac_srcdir&;t t-s&@abs_srcdir@&$ac_abs_srcdir&;t t-s&@top_srcdir@&$ac_top_srcdir&;t t-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t-s&@builddir@&$ac_builddir&;t t-s&@abs_builddir@&$ac_abs_builddir&;t t-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t-$ac_datarootdir_hack-"-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \-  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5--test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&-  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \-      "$ac_tmp/out"`; test -z "$ac_out"; } &&-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'-which seems to be undefined.  Please make sure it is defined" >&5-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'-which seems to be undefined.  Please make sure it is defined" >&2;}--  rm -f "$ac_tmp/stdin"-  case $ac_file in-  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;-  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;-  esac \-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5- ;;----  esac--done # for ac_tag---as_fn_exit 0-_ACEOF-ac_clean_files=$ac_clean_files_save--test $ac_write_fail = 0 ||-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5---# configure is writing to config.log, and then calls config.status.-# config.status does its own redirection, appending to config.log.-# Unfortunately, on DOS this fails, as config.log is still kept open-# by configure, so config.status won't be able to write to it; its-# output is simply discarded.  So we exec the FD to /dev/null,-# effectively closing config.log, so it can be properly (re)opened and-# appended to by config.status.  When coming back to configure, we-# need to make the FD available again.-if test "$no_create" != yes; then-  ac_cs_success=:-  ac_config_status_args=-  test "$silent" = yes &&-    ac_config_status_args="$ac_config_status_args --quiet"-  exec 5>/dev/null-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false-  exec 5>>config.log-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which-  # would make configure fail if this is the last instruction.-  $ac_cs_success || as_fn_exit 1-fi-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}-fi-
− configure.ac
@@ -1,115 +0,0 @@-AC_PREREQ(2.60)-AC_INIT([Haskell integer (GMP)], [1.0], [libraries@haskell.org], [integer])--# Safety check: Ensure that we are in the correct source directory.-AC_CONFIG_SRCDIR([cbits/wrappers.c])--AC_CANONICAL_TARGET--AC_PROG_CC-dnl make extensions visible to allow feature-tests to detect them lateron-AC_USE_SYSTEM_EXTENSIONS---dnl---------------------------------------------------------------------dnl * Deal with arguments telling us gmp is somewhere odd-dnl----------------------------------------------------------------------AC_ARG_WITH([gmp-includes],-  [AC_HELP_STRING([--with-gmp-includes],-    [directory containing gmp.h])],-    [GMP_INCLUDE_DIRS=$withval; CPPFLAGS="-I$withval"],-    [GMP_INCLUDE_DIRS=])--AC_ARG_WITH([gmp-libraries],-  [AC_HELP_STRING([--with-gmp-libraries],-    [directory containing gmp library])],-    [GMP_LIB_DIRS=$withval; LDFLAGS="-L$withval"],-    [GMP_LIB_DIRS=])--AC_ARG_WITH([gmp-framework-preferred],-  [AC_HELP_STRING([--with-gmp-framework-preferred],-    [on OSX, prefer the GMP framework to the gmp lib])],-    [GMP_PREFER_FRAMEWORK=YES],-    [GMP_PREFER_FRAMEWORK=NO])--AC_ARG_WITH([intree-gmp],-  [AC_HELP_STRING([--with-intree-gmp],-    [force using the in-tree GMP])],-    [GMP_FORCE_INTREE=YES],-    [GMP_FORCE_INTREE=NO])--dnl---------------------------------------------------------------------dnl * Detect gmp-dnl----------------------------------------------------------------------HaveLibGmp=NO-GMP_LIBS=-HaveFrameworkGMP=NO-GMP_FRAMEWORK=-HaveSecurePowm=0--if test "$GMP_FORCE_INTREE" != "YES"-then-    if test "$GMP_PREFER_FRAMEWORK" = "YES"-    then-        LOOK_FOR_GMP_FRAMEWORK-        LOOK_FOR_GMP_LIB-    else-        LOOK_FOR_GMP_LIB-        LOOK_FOR_GMP_FRAMEWORK-    fi-fi--AC_MSG_CHECKING([whether to use in-tree GMP])-if test "$HaveFrameworkGMP" = "YES" || test "$HaveLibGmp" = "YES"-then-    AC_MSG_RESULT([no])-    UseIntreeGmp=0-    AC_CHECK_HEADER([gmp.h], , [AC_MSG_ERROR([Cannot find gmp.h])])--    AC_MSG_CHECKING([GMP version])-    AC_COMPUTE_INT(GhcGmpVerMj, __GNU_MP_VERSION, [#include <gmp.h>],-        AC_MSG_ERROR([Unable to get value of __GNU_MP_VERSION]))-    AC_COMPUTE_INT(GhcGmpVerMi, __GNU_MP_VERSION_MINOR, [#include <gmp.h>],-        AC_MSG_ERROR([Unable to get value of __GNU_MP_VERSION_MINOR]))-    AC_COMPUTE_INT(GhcGmpVerPl, __GNU_MP_VERSION_PATCHLEVEL, [#include <gmp.h>],-        AC_MSG_ERROR([Unable to get value of __GNU_MP_VERSION_PATCHLEVEL]))-    AC_MSG_RESULT([$GhcGmpVerMj.$GhcGmpVerMi.$GhcGmpVerPl])--else-    AC_MSG_RESULT([yes])-    UseIntreeGmp=1-    HaveSecurePowm=1--    AC_MSG_CHECKING([GMP version])-    GhcGmpVerMj=5-    GhcGmpVerMi=0-    GhcGmpVerPl=4-    AC_MSG_RESULT([$GhcGmpVerMj.$GhcGmpVerMi.$GhcGmpVerPl])-fi---dnl---------------------------------------------------------------------dnl * Make sure we got some form of gmp-dnl----------------------------------------------------------------------AC_SUBST(GMP_INCLUDE_DIRS)-AC_SUBST(GMP_LIBS)-AC_SUBST(GMP_LIB_DIRS)-AC_SUBST(GMP_FRAMEWORK)-AC_SUBST(HaveLibGmp)-AC_SUBST(HaveFrameworkGMP)-AC_SUBST(HaveSecurePowm)-AC_SUBST(UseIntreeGmp)-AC_SUBST(GhcGmpVerMj)-AC_SUBST(GhcGmpVerMi)-AC_SUBST(GhcGmpVerPl)--AC_CONFIG_FILES([integer-gmp.buildinfo gmp/config.mk include/HsIntegerGmp.h])--dnl---------------------------------------------------------------------dnl * Generate output files-dnl----------------------------------------------------------------------AC_OUTPUT
− gmp/config.mk.in
@@ -1,11 +0,0 @@-ifeq "$(HaveLibGmp)" ""- HaveLibGmp = @HaveLibGmp@-endif--ifeq "$(HaveFrameworkGMP)" ""- HaveFrameworkGMP = @HaveFrameworkGMP@-endif--GMP_INCLUDE_DIRS = @GMP_INCLUDE_DIRS@-GMP_LIB_DIRS = @GMP_LIB_DIRS@-
− include/HsIntegerGmp.h.in
@@ -1,14 +0,0 @@-#ifndef _HS_INTEGER_GMP_H_-#define _HS_INTEGER_GMP_H_--/* Whether GMP is embedded into integer-gmp */-#define GHC_GMP_INTREE     @UseIntreeGmp@--/* The following values denote the GMP version used during GHC build-time */-#define GHC_GMP_VERSION_MJ @GhcGmpVerMj@-#define GHC_GMP_VERSION_MI @GhcGmpVerMi@-#define GHC_GMP_VERSION_PL @GhcGmpVerPl@-#define GHC_GMP_VERSION \-    (@GhcGmpVerMj@ * 10000 + @GhcGmpVerMi@ * 100 + @GhcGmpVerPl@)--#endif /* _HS_INTEGER_GMP_H_ */
− install-sh
@@ -1,527 +0,0 @@-#!/bin/sh-# install - install a program, script, or datafile--scriptversion=2011-11-20.07; # UTC--# This originates from X11R5 (mit/util/scripts/install.sh), which was-# later released in X11R6 (xc/config/util/install.sh) with the-# following copyright and license.-#-# Copyright (C) 1994 X Consortium-#-# Permission is hereby granted, free of charge, to any person obtaining a copy-# of this software and associated documentation files (the "Software"), to-# deal in the Software without restriction, including without limitation the-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or-# sell copies of the Software, and to permit persons to whom the Software is-# furnished to do so, subject to the following conditions:-#-# The above copyright notice and this permission notice shall be included in-# all copies or substantial portions of the Software.-#-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC--# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.-#-# Except as contained in this notice, the name of the X Consortium shall not-# be used in advertising or otherwise to promote the sale, use or other deal--# ings in this Software without prior written authorization from the X Consor--# tium.-#-#-# FSF changes to this file are in the public domain.-#-# Calling this script install-sh is preferred over install.sh, to prevent-# 'make' implicit rules from creating a file called install from it-# when there is no Makefile.-#-# This script is compatible with the BSD install script, but was written-# from scratch.--nl='-'-IFS=" ""	$nl"--# set DOITPROG to echo to test this script--# Don't use :- since 4.3BSD and earlier shells don't like it.-doit=${DOITPROG-}-if test -z "$doit"; then-  doit_exec=exec-else-  doit_exec=$doit-fi--# Put in absolute file names if you don't have them in your path;-# or use environment vars.--chgrpprog=${CHGRPPROG-chgrp}-chmodprog=${CHMODPROG-chmod}-chownprog=${CHOWNPROG-chown}-cmpprog=${CMPPROG-cmp}-cpprog=${CPPROG-cp}-mkdirprog=${MKDIRPROG-mkdir}-mvprog=${MVPROG-mv}-rmprog=${RMPROG-rm}-stripprog=${STRIPPROG-strip}--posix_glob='?'-initialize_posix_glob='-  test "$posix_glob" != "?" || {-    if (set -f) 2>/dev/null; then-      posix_glob=-    else-      posix_glob=:-    fi-  }-'--posix_mkdir=--# Desired mode of installed file.-mode=0755--chgrpcmd=-chmodcmd=$chmodprog-chowncmd=-mvcmd=$mvprog-rmcmd="$rmprog -f"-stripcmd=--src=-dst=-dir_arg=-dst_arg=--copy_on_change=false-no_target_directory=--usage="\-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE-   or: $0 [OPTION]... SRCFILES... DIRECTORY-   or: $0 [OPTION]... -t DIRECTORY SRCFILES...-   or: $0 [OPTION]... -d DIRECTORIES...--In the 1st form, copy SRCFILE to DSTFILE.-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.-In the 4th, create DIRECTORIES.--Options:-     --help     display this help and exit.-     --version  display version info and exit.--  -c            (ignored)-  -C            install only if different (preserve the last data modification time)-  -d            create directories instead of installing files.-  -g GROUP      $chgrpprog installed files to GROUP.-  -m MODE       $chmodprog installed files to MODE.-  -o USER       $chownprog installed files to USER.-  -s            $stripprog installed files.-  -t DIRECTORY  install into DIRECTORY.-  -T            report an error if DSTFILE is a directory.--Environment variables override the default commands:-  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG-  RMPROG STRIPPROG-"--while test $# -ne 0; do-  case $1 in-    -c) ;;--    -C) copy_on_change=true;;--    -d) dir_arg=true;;--    -g) chgrpcmd="$chgrpprog $2"-	shift;;--    --help) echo "$usage"; exit $?;;--    -m) mode=$2-	case $mode in-	  *' '* | *'	'* | *'-'*	  | *'*'* | *'?'* | *'['*)-	    echo "$0: invalid mode: $mode" >&2-	    exit 1;;-	esac-	shift;;--    -o) chowncmd="$chownprog $2"-	shift;;--    -s) stripcmd=$stripprog;;--    -t) dst_arg=$2-	# Protect names problematic for 'test' and other utilities.-	case $dst_arg in-	  -* | [=\(\)!]) dst_arg=./$dst_arg;;-	esac-	shift;;--    -T) no_target_directory=true;;--    --version) echo "$0 $scriptversion"; exit $?;;--    --)	shift-	break;;--    -*)	echo "$0: invalid option: $1" >&2-	exit 1;;--    *)  break;;-  esac-  shift-done--if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then-  # When -d is used, all remaining arguments are directories to create.-  # When -t is used, the destination is already specified.-  # Otherwise, the last argument is the destination.  Remove it from $@.-  for arg-  do-    if test -n "$dst_arg"; then-      # $@ is not empty: it contains at least $arg.-      set fnord "$@" "$dst_arg"-      shift # fnord-    fi-    shift # arg-    dst_arg=$arg-    # Protect names problematic for 'test' and other utilities.-    case $dst_arg in-      -* | [=\(\)!]) dst_arg=./$dst_arg;;-    esac-  done-fi--if test $# -eq 0; then-  if test -z "$dir_arg"; then-    echo "$0: no input file specified." >&2-    exit 1-  fi-  # It's OK to call 'install-sh -d' without argument.-  # This can happen when creating conditional directories.-  exit 0-fi--if test -z "$dir_arg"; then-  do_exit='(exit $ret); exit $ret'-  trap "ret=129; $do_exit" 1-  trap "ret=130; $do_exit" 2-  trap "ret=141; $do_exit" 13-  trap "ret=143; $do_exit" 15--  # Set umask so as not to create temps with too-generous modes.-  # However, 'strip' requires both read and write access to temps.-  case $mode in-    # Optimize common cases.-    *644) cp_umask=133;;-    *755) cp_umask=22;;--    *[0-7])-      if test -z "$stripcmd"; then-	u_plus_rw=-      else-	u_plus_rw='% 200'-      fi-      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;-    *)-      if test -z "$stripcmd"; then-	u_plus_rw=-      else-	u_plus_rw=,u+rw-      fi-      cp_umask=$mode$u_plus_rw;;-  esac-fi--for src-do-  # Protect names problematic for 'test' and other utilities.-  case $src in-    -* | [=\(\)!]) src=./$src;;-  esac--  if test -n "$dir_arg"; then-    dst=$src-    dstdir=$dst-    test -d "$dstdir"-    dstdir_status=$?-  else--    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command-    # might cause directories to be created, which would be especially bad-    # if $src (and thus $dsttmp) contains '*'.-    if test ! -f "$src" && test ! -d "$src"; then-      echo "$0: $src does not exist." >&2-      exit 1-    fi--    if test -z "$dst_arg"; then-      echo "$0: no destination specified." >&2-      exit 1-    fi-    dst=$dst_arg--    # If destination is a directory, append the input filename; won't work-    # if double slashes aren't ignored.-    if test -d "$dst"; then-      if test -n "$no_target_directory"; then-	echo "$0: $dst_arg: Is a directory" >&2-	exit 1-      fi-      dstdir=$dst-      dst=$dstdir/`basename "$src"`-      dstdir_status=0-    else-      # Prefer dirname, but fall back on a substitute if dirname fails.-      dstdir=`-	(dirname "$dst") 2>/dev/null ||-	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \-	     X"$dst" : 'X\(//\)[^/]' \| \-	     X"$dst" : 'X\(//\)$' \| \-	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||-	echo X"$dst" |-	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{-		   s//\1/-		   q-		 }-		 /^X\(\/\/\)[^/].*/{-		   s//\1/-		   q-		 }-		 /^X\(\/\/\)$/{-		   s//\1/-		   q-		 }-		 /^X\(\/\).*/{-		   s//\1/-		   q-		 }-		 s/.*/./; q'-      `--      test -d "$dstdir"-      dstdir_status=$?-    fi-  fi--  obsolete_mkdir_used=false--  if test $dstdir_status != 0; then-    case $posix_mkdir in-      '')-	# Create intermediate dirs using mode 755 as modified by the umask.-	# This is like FreeBSD 'install' as of 1997-10-28.-	umask=`umask`-	case $stripcmd.$umask in-	  # Optimize common cases.-	  *[2367][2367]) mkdir_umask=$umask;;-	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;--	  *[0-7])-	    mkdir_umask=`expr $umask + 22 \-	      - $umask % 100 % 40 + $umask % 20 \-	      - $umask % 10 % 4 + $umask % 2-	    `;;-	  *) mkdir_umask=$umask,go-w;;-	esac--	# With -d, create the new directory with the user-specified mode.-	# Otherwise, rely on $mkdir_umask.-	if test -n "$dir_arg"; then-	  mkdir_mode=-m$mode-	else-	  mkdir_mode=-	fi--	posix_mkdir=false-	case $umask in-	  *[123567][0-7][0-7])-	    # POSIX mkdir -p sets u+wx bits regardless of umask, which-	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.-	    ;;-	  *)-	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$-	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0--	    if (umask $mkdir_umask &&-		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1-	    then-	      if test -z "$dir_arg" || {-		   # Check for POSIX incompatibilities with -m.-		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or-		   # other-writable bit of parent directory when it shouldn't.-		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.-		   ls_ld_tmpdir=`ls -ld "$tmpdir"`-		   case $ls_ld_tmpdir in-		     d????-?r-*) different_mode=700;;-		     d????-?--*) different_mode=755;;-		     *) false;;-		   esac &&-		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {-		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`-		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"-		   }-		 }-	      then posix_mkdir=:-	      fi-	      rmdir "$tmpdir/d" "$tmpdir"-	    else-	      # Remove any dirs left behind by ancient mkdir implementations.-	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null-	    fi-	    trap '' 0;;-	esac;;-    esac--    if-      $posix_mkdir && (-	umask $mkdir_umask &&-	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"-      )-    then :-    else--      # The umask is ridiculous, or mkdir does not conform to POSIX,-      # or it failed possibly due to a race condition.  Create the-      # directory the slow way, step by step, checking for races as we go.--      case $dstdir in-	/*) prefix='/';;-	[-=\(\)!]*) prefix='./';;-	*)  prefix='';;-      esac--      eval "$initialize_posix_glob"--      oIFS=$IFS-      IFS=/-      $posix_glob set -f-      set fnord $dstdir-      shift-      $posix_glob set +f-      IFS=$oIFS--      prefixes=--      for d-      do-	test X"$d" = X && continue--	prefix=$prefix$d-	if test -d "$prefix"; then-	  prefixes=-	else-	  if $posix_mkdir; then-	    (umask=$mkdir_umask &&-	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break-	    # Don't fail if two instances are running concurrently.-	    test -d "$prefix" || exit 1-	  else-	    case $prefix in-	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;-	      *) qprefix=$prefix;;-	    esac-	    prefixes="$prefixes '$qprefix'"-	  fi-	fi-	prefix=$prefix/-      done--      if test -n "$prefixes"; then-	# Don't fail if two instances are running concurrently.-	(umask $mkdir_umask &&-	 eval "\$doit_exec \$mkdirprog $prefixes") ||-	  test -d "$dstdir" || exit 1-	obsolete_mkdir_used=true-      fi-    fi-  fi--  if test -n "$dir_arg"; then-    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&-    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&-    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||-      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1-  else--    # Make a couple of temp file names in the proper directory.-    dsttmp=$dstdir/_inst.$$_-    rmtmp=$dstdir/_rm.$$_--    # Trap to clean up those temp files at exit.-    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0--    # Copy the file name to the temp name.-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&--    # and set any options; do chmod last to preserve setuid bits.-    #-    # If any of these fail, we abort the whole thing.  If we want to-    # ignore errors from any of these, just make sure not to ignore-    # errors from the above "$doit $cpprog $src $dsttmp" command.-    #-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&-    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&-    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&-    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&--    # If -C, don't bother to copy if it wouldn't change the file.-    if $copy_on_change &&-       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&-       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&--       eval "$initialize_posix_glob" &&-       $posix_glob set -f &&-       set X $old && old=:$2:$4:$5:$6 &&-       set X $new && new=:$2:$4:$5:$6 &&-       $posix_glob set +f &&--       test "$old" = "$new" &&-       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1-    then-      rm -f "$dsttmp"-    else-      # Rename the file to the real destination.-      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||--      # The rename failed, perhaps because mv can't rename something else-      # to itself, or perhaps because mv is so ancient that it does not-      # support -f.-      {-	# Now remove or move aside any old file at destination location.-	# We try this two ways since rm can't unlink itself on some-	# systems and the destination file might be busy for other-	# reasons.  In this case, the final cleanup might fail but the new-	# file should still install successfully.-	{-	  test ! -f "$dst" ||-	  $doit $rmcmd -f "$dst" 2>/dev/null ||-	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&-	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }-	  } ||-	  { echo "$0: cannot unlink or rename $dst" >&2-	    (exit 1); exit 1-	  }-	} &&--	# Now rename the file to the real destination.-	$doit $mvcmd "$dsttmp" "$dst"-      }-    fi || exit 1--    trap '' 0-  fi-done--# Local variables:-# eval: (add-hook 'write-file-hooks 'time-stamp)-# time-stamp-start: "scriptversion="-# time-stamp-format: "%:y-%02m-%02d.%02H"-# time-stamp-time-zone: "UTC"-# time-stamp-end: "; # UTC"-# End:
− integer-gmp.buildinfo.in
@@ -1,5 +0,0 @@-include-dirs: @GMP_INCLUDE_DIRS@-extra-lib-dirs: @GMP_LIB_DIRS@-extra-libraries: @GMP_LIBS@-frameworks: @GMP_FRAMEWORK@-install-includes: HsIntegerGmp.h ghc-gmp.h
integer-gmp.cabal view
@@ -1,66 +1,41 @@+cabal-version:       2.0 name:                integer-gmp-version:             1.0.0.1+version:             1.1+ synopsis:            Integer library based on GMP license:             BSD3 license-file:        LICENSE author:              Herbert Valerio Riedel maintainer:          hvr@gnu.org category:            Numeric, Algebra-build-type:          Configure-cabal-version:       >=1.10+build-type:          Simple -extra-source-files:-    aclocal.m4-    cbits/wrappers.c-    changelog.md-    config.guess-    config.sub-    configure-    configure.ac-    gmp/config.mk.in-    include/HsIntegerGmp.h.in-    install-sh-    integer-gmp.buildinfo.in+homepage:            https://www.haskell.org/ghc/+bug-reports:         https://gitlab.haskell.org/ghc/ghc/issues/new -extra-tmp-files:-    autom4te.cache-    config.log-    config.status-    gmp/config.mk-    integer-gmp.buildinfo-    include/HsIntegerGmp.h+description:+    This package used to provide an implementation of the standard 'Integer'+    type based on the+    <http://gmplib.org/ GNU Multiple Precision Arithmetic Library (GMP)>.+    .+    It is now deprecated in favor of the 'ghc-bignum' package.+    .+    Its purpose is to provide backward compatibility for codes directly+    depending on the `integer-gmp` package. +source-repository head+    type:     git+    location: https://gitlab.haskell.org/ghc/ghc.git+    subdir:   libraries/integer-gmp+ library   default-language:    Haskell2010-  other-extensions:-    BangPatterns-    CApiFFI-    CPP-    DeriveDataTypeable-    ExplicitForAll-    GHCForeignImportPrim-    MagicHash-    NegativeLiterals-    NoImplicitPrelude-    RebindableSyntax-    StandaloneDeriving-    UnboxedTuples-    UnliftedFFITypes-  build-depends:       ghc-prim   hs-source-dirs:      src/-  ghc-options: -this-unit-id integer-gmp -Wall-  cc-options: -std=c99 -Wall--  include-dirs: include-  c-sources:-    cbits/wrappers.c+  ghc-options:         -Wall+  build-depends:+      base >= 4.11 && < 5+    , ghc-prim+    , ghc-bignum    exposed-modules:-    GHC.Integer-    GHC.Integer.Logarithms-    GHC.Integer.Logarithms.Internals-     GHC.Integer.GMP.Internals--  other-modules:-    GHC.Integer.Type
− src/GHC/Integer.hs
@@ -1,73 +0,0 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE MagicHash #-}-{-# LANGUAGE NoImplicitPrelude #-}--#include "MachDeps.h"---- |--- Module      :  GHC.Integer.Type--- Copyright   :  (c) Herbert Valerio Riedel 2014--- License     :  BSD3------ Maintainer  :  ghc-devs@haskell.org--- Stability   :  provisional--- Portability :  non-portable (GHC Extensions)------ The 'Integer' type.------ This module exposes the /portable/ 'Integer' API.  See--- "GHC.Integer.GMP.Internals" for the @integer-gmp@-specific internal--- representation of 'Integer' as well as optimized GMP-specific--- operations.--module GHC.Integer (-    Integer,--    -- * Construct 'Integer's-    mkInteger, smallInteger, wordToInteger,-#if WORD_SIZE_IN_BITS < 64-    word64ToInteger, int64ToInteger,-#endif-    -- * Conversion to other integral types-    integerToWord, integerToInt,-#if WORD_SIZE_IN_BITS < 64-    integerToWord64, integerToInt64,-#endif--    -- * Helpers for 'RealFloat' type-class operations-    encodeFloatInteger, floatFromInteger,-    encodeDoubleInteger, decodeDoubleInteger, doubleFromInteger,--    -- * Arithmetic operations-    plusInteger, minusInteger, timesInteger, negateInteger,-    absInteger, signumInteger,--    divModInteger, divInteger, modInteger,-    quotRemInteger, quotInteger, remInteger,--    -- * Comparison predicates-    eqInteger,  neqInteger,  leInteger,  gtInteger,  ltInteger,  geInteger,-    compareInteger,--    -- ** 'Int#'-boolean valued versions of comparision predicates-    ---    -- | These operations return @0#@ and @1#@ instead of 'False' and-    -- 'True' respectively.  See-    -- <https://ghc.haskell.org/trac/ghc/wiki/PrimBool PrimBool wiki-page>-    -- for more details-    eqInteger#, neqInteger#, leInteger#, gtInteger#, ltInteger#, geInteger#,---    -- * Bit-operations-    andInteger, orInteger, xorInteger,--    complementInteger,-    shiftLInteger, shiftRInteger, testBitInteger,--    -- * Hashing-    hashInteger,-    ) where--import GHC.Integer.Type--default ()
src/GHC/Integer/GMP/Internals.hs view
@@ -1,13 +1,11 @@ {-# LANGUAGE BangPatterns #-}-{-# LANGUAGE CApiFFI #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE UnboxedTuples #-}-{-# LANGUAGE UnliftedFFITypes #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE GHCForeignImportPrim #-} {-# LANGUAGE CPP #-}-{-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE BlockArguments #-}  #include "MachDeps.h" @@ -20,20 +18,9 @@ -- Stability   :  provisional -- Portability :  non-portable (GHC Extensions) ----- This modules provides access to the 'Integer' constructors and--- exposes some highly optimized GMP-operations.------ Note that since @integer-gmp@ does not depend on `base`, error--- reporting via exceptions, 'error', or 'undefined' is not--- available. Instead, the low-level functions will crash the runtime--- if called with invalid arguments.------ See also--- <https://ghc.haskell.org/trac/ghc/wiki/Commentary/Libraries/Integer GHC Commentary: Libraries/Integer>.- module GHC.Integer.GMP.Internals     ( -- * The 'Integer' type-      Integer(..)+      Integer (S#,Jn#,Jp#)     , isValidInteger#        -- ** Basic 'Integer' operations@@ -41,8 +28,6 @@     , module GHC.Integer        -- ** Additional 'Integer' operations-    , bitInteger-    , popCountInteger     , gcdInteger     , gcdExtInteger     , lcmInteger@@ -67,7 +52,6 @@     , sizeofBigNat#     , zeroBigNat     , oneBigNat-    , nullBigNat        -- ** Conversions to/from 'BigNat' @@ -97,24 +81,21 @@     , gcdBigNat     , gcdBigNatWord -    , powModBigNat-    , powModBigNatWord--    , recipModBigNat-       -- ** 'BigNat' logic operations     , shiftRBigNat     , shiftLBigNat     , testBitBigNat+    , clearBitBigNat+    , complementBitBigNat+    , setBitBigNat     , andBigNat     , xorBigNat     , popCountBigNat     , orBigNat     , bitBigNat -      -- ** 'BigNat' comparision predicates+      -- ** 'BigNat' comparison predicates     , isZeroBigNat-    , isNullBigNat#      , compareBigNatWord     , compareBigNat@@ -124,21 +105,6 @@     , eqBigNat#     , gtBigNatWord# -      -- * Miscellaneous GMP-provided operations-    , gcdInt-    , gcdWord-    , powModWord-    , recipModWord--      -- * Primality tests-    , testPrimeInteger-    , testPrimeBigNat-    , testPrimeWord#--    , nextPrimeInteger-    , nextPrimeBigNat-    , nextPrimeWord#-       -- * Import/export functions       -- ** Compute size of serialisation     , sizeInBaseBigNat@@ -148,14 +114,11 @@       -- ** Export     , exportBigNatToAddr     , exportIntegerToAddr-    , exportWordToAddr      , exportBigNatToMutableByteArray     , exportIntegerToMutableByteArray-    , exportWordToMutableByteArray        -- ** Import-     , importBigNatFromAddr     , importIntegerFromAddr @@ -163,200 +126,329 @@     , importIntegerFromByteArray     ) where -import GHC.Integer.Type import GHC.Integer-import GHC.Prim+import GHC.Natural+import GHC.Num.Integer (Integer(..))+import qualified GHC.Num.Integer as I+import qualified GHC.Num.BigNat as B+import qualified GHC.Num.Primitives as P import GHC.Types+import GHC.Prim+import GHC.Exts (runRW#)+import Control.Exception -default ()+{-# COMPLETE S#, Jp#, Jn# #-} +{-# DEPRECATED S# "Use IS constructor instead" #-}+pattern S# :: Int# -> Integer+pattern S# i = IS i --- | Compute number of digits (without sign) in given @/base/@.------ This function wraps @mpz_sizeinbase()@ which has some--- implementation pecularities to take into account:------ * \"@'sizeInBaseInteger' 0 /base/ = 1@\"---   (see also comment in 'exportIntegerToMutableByteArray').------ * This function is only defined if @/base/ >= 2#@ and @/base/ <= 256#@---   (Note: the documentation claims that only @/base/ <= 62#@ is---   supported, however the actual implementation supports up to base 256).------ * If @/base/@ is a power of 2, the result will be exact. In other---   cases (e.g. for @/base/ = 10#@), the result /may/ be 1 digit too large---   sometimes.------ * \"@'sizeInBaseInteger' /i/ 2#@\" can be used to determine the most---   significant bit of @/i/@.------ @since 0.5.1.0-sizeInBaseInteger :: Integer -> Int# -> Word#-sizeInBaseInteger (S# i#)  = sizeInBaseWord# (int2Word# (absI# i#))-sizeInBaseInteger (Jp# bn) = sizeInBaseBigNat bn-sizeInBaseInteger (Jn# bn) = sizeInBaseBigNat bn+fromBN# :: BigNat -> ByteArray#+fromBN# (BN# x) = x --- | Version of 'sizeInBaseInteger' operating on 'BigNat'------ @since 1.0.0.0-sizeInBaseBigNat :: BigNat -> Int# -> Word#-sizeInBaseBigNat bn@(BN# ba#) = c_mpn_sizeinbase# ba# (sizeofBigNat# bn)+fromIP :: Integer -> (# () | BigNat #)+fromIP (IP x) = (# | BN# x #)+fromIP _      = (# () | #) -foreign import ccall unsafe "integer_gmp_mpn_sizeinbase"-  c_mpn_sizeinbase# :: ByteArray# -> GmpSize# -> Int# -> Word#+fromIN :: Integer -> (# () | BigNat #)+fromIN (IN x) = (# | BN# x #)+fromIN _      = (# () | #) --- | Version of 'sizeInBaseInteger' operating on 'Word#'------ @since 1.0.0.0-foreign import ccall unsafe "integer_gmp_mpn_sizeinbase1"-  sizeInBaseWord# :: Word# -> Int# -> Word#+{-# DEPRECATED Jp# "Use IP constructor instead" #-}+pattern Jp# :: BigNat -> Integer+pattern Jp# i <- (fromIP -> (# | i #))+   where+      Jp# i = IP (fromBN# i) --- | Dump 'Integer' (without sign) to @/addr/@ in base-256 representation.------ @'exportIntegerToAddr' /i/ /addr/ /e/@------ See description of 'exportIntegerToMutableByteArray' for more details.------ @since 1.0.0.0-exportIntegerToAddr :: Integer -> Addr# -> Int# -> IO Word-exportIntegerToAddr (S# i#)  = exportWordToAddr (W# (int2Word# (absI# i#)))-exportIntegerToAddr (Jp# bn) = exportBigNatToAddr bn-exportIntegerToAddr (Jn# bn) = exportBigNatToAddr bn+{-# DEPRECATED Jn# "Use IN constructor instead" #-}+pattern Jn# :: BigNat -> Integer+pattern Jn# i <- (fromIN -> (# | i #))+   where+      Jn# i = IN (fromBN# i) --- | Version of 'exportIntegerToAddr' operating on 'BigNat's.-exportBigNatToAddr :: BigNat -> Addr# -> Int# -> IO Word-exportBigNatToAddr bn@(BN# ba#) addr e-  = c_mpn_exportToAddr# ba# (sizeofBigNat# bn) addr 0# e+{-# DEPRECATED isValidInteger# "Use integerCheck# instead" #-}+isValidInteger# :: Integer -> Int#+isValidInteger# = I.integerCheck# -foreign import ccall unsafe "integer_gmp_mpn_export"-  c_mpn_exportToAddr# :: ByteArray# -> GmpSize# -> Addr# -> Int# -> Int#-                         -> IO Word+{-# DEPRECATED gcdInteger "Use integerGcd instead" #-}+gcdInteger :: Integer -> Integer -> Integer+gcdInteger = I.integerGcd --- | Version of 'exportIntegerToAddr' operating on 'Word's.-exportWordToAddr :: Word -> Addr# -> Int# -> IO Word-exportWordToAddr (W# w#) addr-  = c_mpn_export1ToAddr# w# addr 0# -- TODO: we don't calling GMP for that+{-# DEPRECATED gcdExtInteger "Use integerGcde instead" #-}+gcdExtInteger :: Integer -> Integer -> (# Integer, Integer #)+gcdExtInteger a b = case I.integerGcde# a b of+   (# g, s, _t #) -> (# g, s #) -foreign import ccall unsafe "integer_gmp_mpn_export1"-  c_mpn_export1ToAddr# :: GmpLimb# -> Addr# -> Int# -> Int#-                          -> IO Word --- | Dump 'Integer' (without sign) to mutable byte-array in base-256--- representation.------ The call------ @'exportIntegerToMutableByteArray' /i/ /mba/ /offset/ /msbf/@------ writes------ * the 'Integer' @/i/@------ * into the 'MutableByteArray#' @/mba/@ starting at @/offset/@------ * with most significant byte first if @msbf@ is @1#@ or least---   significant byte first if @msbf@ is @0#@, and------ * returns number of bytes written.------ Use \"@'sizeInBaseInteger' /i/ 256#@\" to compute the exact number of--- bytes written in advance for @/i/ /= 0@. In case of @/i/ == 0@,--- 'exportIntegerToMutableByteArray' will write and report zero bytes--- written, whereas 'sizeInBaseInteger' report one byte.------ It's recommended to avoid calling 'exportIntegerToMutableByteArray' for small--- integers as this function would currently convert those to big--- integers in msbf to call @mpz_export()@.------ @since 1.0.0.0-exportIntegerToMutableByteArray :: Integer -> MutableByteArray# RealWorld-                                -> Word# -> Int# -> IO Word-exportIntegerToMutableByteArray (S# i#)-    = exportWordToMutableByteArray (W# (int2Word# (absI# i#)))-exportIntegerToMutableByteArray (Jp# bn) = exportBigNatToMutableByteArray bn-exportIntegerToMutableByteArray (Jn# bn) = exportBigNatToMutableByteArray bn+{-# DEPRECATED lcmInteger "Use integerLcm instead" #-}+lcmInteger :: Integer -> Integer -> Integer+lcmInteger = I.integerLcm --- | Version of 'exportIntegerToMutableByteArray' operating on 'BigNat's.------ @since 1.0.0.0-exportBigNatToMutableByteArray :: BigNat -> MutableByteArray# RealWorld -> Word#-                               -> Int# -> IO Word-exportBigNatToMutableByteArray bn@(BN# ba#)-  = c_mpn_exportToMutableByteArray# ba# (sizeofBigNat# bn)+{-# DEPRECATED sqrInteger "Use integerSqr instead" #-}+sqrInteger :: Integer -> Integer+sqrInteger = I.integerSqr -foreign import ccall unsafe "integer_gmp_mpn_export"-  c_mpn_exportToMutableByteArray# :: ByteArray# -> GmpSize#-                                  -> MutableByteArray# RealWorld -> Word#-                                  -> Int# -> IO Word+{-# DEPRECATED recipModInteger "Use integerRecipMod# instead" #-}+recipModInteger :: Integer -> Integer -> Integer+recipModInteger x m = case I.integerRecipMod# x (I.integerToNatural m) of+   (# y |    #) -> I.integerFromNatural y+   (#   | () #) -> 0 --- | Version of 'exportIntegerToMutableByteArray' operating on 'Word's.------ @since 1.0.0.0-exportWordToMutableByteArray :: Word -> MutableByteArray# RealWorld -> Word#-                             -> Int# -> IO Word-exportWordToMutableByteArray (W# w#) = c_mpn_export1ToMutableByteArray# w#+{-# DEPRECATED powModInteger "Use integerPowMod# instead" #-}+powModInteger :: Integer -> Integer -> Integer -> Integer+powModInteger b e m = case I.integerPowMod# b e (I.integerToNatural m) of+   (# r  | #) -> I.integerFromNatural r+   (# | () #) -> 0 -foreign import ccall unsafe "integer_gmp_mpn_export1"-  c_mpn_export1ToMutableByteArray# :: GmpLimb# -> MutableByteArray# RealWorld-                                   -> Word# -> Int# -> IO Word+{-# DEPRECATED wordToNegInteger "Use integerFromWordNeg# instead" #-}+wordToNegInteger :: Word# -> Integer+wordToNegInteger = I.integerFromWordNeg# +{-# DEPRECATED bigNatToInteger "Use integerFromBigNat# instead" #-}+bigNatToInteger :: BigNat -> Integer+bigNatToInteger (BN# i) = I.integerFromBigNat# i --- | Probalistic Miller-Rabin primality test.------ \"@'testPrimeInteger' /n/ /k/@\" determines whether @/n/@ is prime--- and returns one of the following results:------ * @2#@ is returned if @/n/@ is definitely prime,------ * @1#@ if @/n/@ is a /probable prime/, or------ * @0#@ if @/n/@ is definitely not a prime.------ The @/k/@ argument controls how many test rounds are performed for--- determining a /probable prime/. For more details, see--- <http://gmplib.org/manual/Number-Theoretic-Functions.html#index-mpz_005fprobab_005fprime_005fp-360 GMP documentation for `mpz_probab_prime_p()`>.------ @since 0.5.1.0-{-# NOINLINE testPrimeInteger #-}-testPrimeInteger :: Integer -> Int# -> Int#-testPrimeInteger (S# i#) = testPrimeWord# (int2Word# (absI# i#))-testPrimeInteger (Jp# n) = testPrimeBigNat n-testPrimeInteger (Jn# n) = testPrimeBigNat n+{-# DEPRECATED bigNatToNegInteger "Use integerFromBigNatNeg# instead" #-}+bigNatToNegInteger :: BigNat -> Integer+bigNatToNegInteger (BN# i) = I.integerFromBigNatNeg# i --- | Version of 'testPrimeInteger' operating on 'BigNat's------ @since 1.0.0.0-testPrimeBigNat :: BigNat -> Int# -> Int#-testPrimeBigNat bn@(BN# ba#) = c_integer_gmp_test_prime# ba# (sizeofBigNat# bn)+type GmpLimb = Word+type GmpLimb# = Word#+type GmpSize = Int+type GmpSize# = Int# -foreign import ccall unsafe "integer_gmp_test_prime"-  c_integer_gmp_test_prime# :: ByteArray# -> GmpSize# -> Int# -> Int#+{-# DEPRECATED sizeofBigNat# "Use bigNatSize# instead" #-}+sizeofBigNat# :: BigNat -> GmpSize#+sizeofBigNat# (BN# i) = B.bigNatSize# i --- | Version of 'testPrimeInteger' operating on 'Word#'s------ @since 1.0.0.0-foreign import ccall unsafe "integer_gmp_test_prime1"-  testPrimeWord# :: GmpLimb# -> Int# -> Int#+{-# DEPRECATED isValidBigNat# "Use bigNatCheck# instead" #-}+isValidBigNat# :: BigNat -> Int#+isValidBigNat# (BN# i) = B.bigNatCheck# i +{-# DEPRECATED zeroBigNat "Use bigNatZero instead" #-}+zeroBigNat :: BigNat+zeroBigNat = B.bigNatZero --- | Compute next prime greater than @/n/@ probalistically.------ According to the GMP documentation, the underlying function--- @mpz_nextprime()@ \"uses a probabilistic algorithm to identify--- primes. For practical purposes it's adequate, the chance of a--- composite passing will be extremely small.\"------ @since 0.5.1.0-{-# NOINLINE nextPrimeInteger #-}-nextPrimeInteger :: Integer -> Integer-nextPrimeInteger (S# i#)-  | isTrue# (i# ># 1#)    = wordToInteger (nextPrimeWord# (int2Word# i#))-  | True                  = S# 2#-nextPrimeInteger (Jp# bn) = Jp# (nextPrimeBigNat bn)-nextPrimeInteger (Jn# _)  = S# 2#+{-# DEPRECATED oneBigNat "Use bigNatOne instead" #-}+oneBigNat :: BigNat+oneBigNat = B.bigNatOne --- | Version of 'nextPrimeInteger' operating on 'Word#'s------ @since 1.0.0.0-foreign import ccall unsafe "integer_gmp_next_prime1"-  nextPrimeWord# :: GmpLimb# -> GmpLimb#+{-# DEPRECATED plusBigNat "Use bigNatAdd instead" #-}+plusBigNat :: BigNat -> BigNat -> BigNat+plusBigNat (BN# a) (BN# b) = BN# (B.bigNatAdd a b)++{-# DEPRECATED plusBigNatWord "Use bigNatAddWord# instead" #-}+plusBigNatWord :: BigNat -> GmpLimb# -> BigNat+plusBigNatWord (BN# a) w = BN# (B.bigNatAddWord# a w)++{-# DEPRECATED minusBigNat "Use bigNatSub instead" #-}+minusBigNat :: BigNat -> BigNat -> BigNat+minusBigNat (BN# a) (BN# b) = case B.bigNatSub a b of+   (# (# #) | #)   -> throw Underflow+   (#       | r #) -> BN# r++{-# DEPRECATED minusBigNatWord "Use bigNatSubWord# instead" #-}+minusBigNatWord :: BigNat -> GmpLimb# -> BigNat+minusBigNatWord (BN# a) b = case B.bigNatSubWord# a b of+   (# (# #) | #)   -> throw Underflow+   (#       | r #) -> BN# r+++{-# DEPRECATED timesBigNat "Use bigNatMul instead" #-}+timesBigNat :: BigNat -> BigNat -> BigNat+timesBigNat (BN# a) (BN# b) = BN# (B.bigNatMul a b)++{-# DEPRECATED timesBigNatWord "Use bigNatMulWord# instead" #-}+timesBigNatWord :: BigNat -> GmpLimb# -> BigNat+timesBigNatWord (BN# a) w = BN# (B.bigNatMulWord# a w)++{-# DEPRECATED sqrBigNat "Use bigNatSqr instead" #-}+sqrBigNat :: BigNat -> BigNat+sqrBigNat (BN# a) = BN# (B.bigNatSqr a)++{-# DEPRECATED quotRemBigNat "Use bigNatQuotRem# instead" #-}+quotRemBigNat :: BigNat -> BigNat -> (# BigNat,BigNat #)+quotRemBigNat (BN# a) (BN# b) = case B.bigNatQuotRem# a b of+   (# q, r #) -> (# BN# q, BN# r #)++{-# DEPRECATED quotRemBigNatWord "Use bigNatQuotRemWord# instead" #-}+quotRemBigNatWord :: BigNat -> GmpLimb# -> (# BigNat, GmpLimb# #)+quotRemBigNatWord (BN# a) b = case B.bigNatQuotRemWord# a b of+   (# q, r #) -> (# BN# q, r #)++{-# DEPRECATED quotBigNat "Use bigNatQuot instead" #-}+quotBigNat :: BigNat -> BigNat -> BigNat+quotBigNat (BN# a) (BN# b) = BN# (B.bigNatQuot a b)++{-# DEPRECATED quotBigNatWord "Use bigNatQuotWord# instead" #-}+quotBigNatWord :: BigNat -> GmpLimb# -> BigNat+quotBigNatWord (BN# a) b = BN# (B.bigNatQuotWord# a b)++{-# DEPRECATED remBigNat "Use bigNatRem instead" #-}+remBigNat :: BigNat -> BigNat -> BigNat+remBigNat (BN# a) (BN# b) = BN# (B.bigNatRem a b)++{-# DEPRECATED remBigNatWord "Use bigNatRemWord# instead" #-}+remBigNatWord :: BigNat -> GmpLimb# -> Word#+remBigNatWord (BN# a) b = B.bigNatRemWord# a b++{-# DEPRECATED gcdBigNatWord "Use bigNatGcdWord# instead" #-}+gcdBigNatWord :: BigNat -> Word# -> Word#+gcdBigNatWord (BN# a) b = B.bigNatGcdWord# a b++{-# DEPRECATED gcdBigNat "Use bigNatGcd instead" #-}+gcdBigNat:: BigNat -> BigNat -> BigNat+gcdBigNat (BN# a) (BN# b) = BN# (B.bigNatGcd a b)++{-# DEPRECATED shiftRBigNat "Use bigNatShiftR# instead" #-}+shiftRBigNat :: BigNat -> Int# -> BigNat+shiftRBigNat (BN# a) i = BN# (B.bigNatShiftR# a (int2Word# i))++{-# DEPRECATED shiftLBigNat "Use bigNatShiftL# instead" #-}+shiftLBigNat :: BigNat -> Int# -> BigNat+shiftLBigNat (BN# a) i = BN# (B.bigNatShiftL# a (int2Word# i))++{-# DEPRECATED testBitBigNat "Use bigNatTestBit# instead" #-}+testBitBigNat :: BigNat -> Int# -> Bool+testBitBigNat (BN# a) i = isTrue# (B.bigNatTestBit# a (int2Word# i))++{-# DEPRECATED clearBitBigNat "Use bigNatClearBit# instead" #-}+clearBitBigNat :: BigNat -> Int# -> BigNat+clearBitBigNat (BN# a) i = BN# (B.bigNatClearBit# a (int2Word# i))++{-# DEPRECATED complementBitBigNat "Use bigNatComplementBit# instead" #-}+complementBitBigNat :: BigNat -> Int# -> BigNat+complementBitBigNat (BN# a) i = BN# (B.bigNatComplementBit# a (int2Word# i))++{-# DEPRECATED setBitBigNat "Use bigNatSetBit# instead" #-}+setBitBigNat :: BigNat -> Int# -> BigNat+setBitBigNat (BN# a) i = BN# (B.bigNatSetBit# a (int2Word# i))++{-# DEPRECATED andBigNat "Use bigNatAnd instead" #-}+andBigNat :: BigNat -> BigNat -> BigNat+andBigNat (BN# a) (BN# b) = BN# (B.bigNatAnd a b)++{-# DEPRECATED orBigNat "Use bigNatOr instead" #-}+orBigNat :: BigNat -> BigNat -> BigNat+orBigNat (BN# a) (BN# b) = BN# (B.bigNatOr a b)++{-# DEPRECATED xorBigNat "Use bigNatXor instead" #-}+xorBigNat :: BigNat -> BigNat -> BigNat+xorBigNat (BN# a) (BN# b) = BN# (B.bigNatXor a b)++{-# DEPRECATED popCountBigNat "Use bigNatPopCount# instead" #-}+popCountBigNat :: BigNat -> Int#+popCountBigNat (BN# a) = word2Int# (B.bigNatPopCount# a)++{-# DEPRECATED bitBigNat "Use bigNatBit# instead" #-}+bitBigNat :: Int# -> BigNat+bitBigNat i = BN# (B.bigNatBit# (int2Word# i))++{-# DEPRECATED isZeroBigNat "Use bigNatIsZero instead" #-}+isZeroBigNat :: BigNat -> Bool+isZeroBigNat (BN# a) = B.bigNatIsZero a++{-# DEPRECATED compareBigNat "Use bigNatCompare instead" #-}+compareBigNat :: BigNat -> BigNat -> Ordering+compareBigNat (BN# a) (BN# b) = B.bigNatCompare a b++{-# DEPRECATED compareBigNatWord "Use bigNatCompareWord# instead" #-}+compareBigNatWord :: BigNat -> GmpLimb# -> Ordering+compareBigNatWord (BN# a) w = B.bigNatCompareWord# a w++{-# DEPRECATED eqBigNatWord "Use bigNatEqWord# instead" #-}+eqBigNatWord :: BigNat -> GmpLimb# -> Bool+eqBigNatWord (BN# a) w = isTrue# (B.bigNatEqWord# a w)++{-# DEPRECATED eqBigNatWord# "Use bigNatEqWord# instead" #-}+eqBigNatWord# :: BigNat -> GmpLimb# -> Int#+eqBigNatWord# (BN# a) w = B.bigNatEqWord# a w++{-# DEPRECATED eqBigNat# "Use bigNatEq# instead" #-}+eqBigNat# :: BigNat -> BigNat -> Int#+eqBigNat# (BN# a) (BN# b) = B.bigNatEq# a b++{-# DEPRECATED eqBigNat "Use bigNatEq instead" #-}+eqBigNat :: BigNat -> BigNat -> Bool+eqBigNat (BN# a) (BN# b) = B.bigNatEq a b++{-# DEPRECATED gtBigNatWord# "Use bigNatGtWord# instead" #-}+gtBigNatWord# :: BigNat -> GmpLimb# -> Int#+gtBigNatWord# (BN# a) w = B.bigNatGtWord# a w++{-# DEPRECATED sizeInBaseBigNat "Use bigNatSizeInBase# instead" #-}+sizeInBaseBigNat :: BigNat -> Int# -> Word#+sizeInBaseBigNat (BN# a) b = B.bigNatSizeInBase# (int2Word# b) a++{-# DEPRECATED sizeInBaseInteger "Use integerSizeInBase# instead" #-}+sizeInBaseInteger :: Integer -> Int# -> Word#+sizeInBaseInteger i b = I.integerSizeInBase# (int2Word# b) i++{-# DEPRECATED sizeInBaseWord# "Use wordSizeInBase# instead" #-}+sizeInBaseWord# :: Word# -> Int# -> Word#+sizeInBaseWord# a b = P.wordSizeInBase# (int2Word# b) a++{-# DEPRECATED importBigNatFromAddr "Use bigNatFromAddr# instead" #-}+importBigNatFromAddr :: Addr# -> Word# -> Int# -> IO BigNat+importBigNatFromAddr addr sz endian = IO \s ->+   case B.bigNatFromAddr# sz addr endian s of+      (# s', b #) -> (# s', BN# b #)++{-# DEPRECATED exportBigNatToAddr "Use bigNatToAddr# instead" #-}+exportBigNatToAddr :: BigNat -> Addr# -> Int# -> IO Word+exportBigNatToAddr (BN# b) addr endian = IO \s ->+   case B.bigNatToAddr# b addr endian s of+      (# s', w #) -> (# s', W# w #)++{-# DEPRECATED importIntegerFromAddr "Use integerFromAddr# instead" #-}+importIntegerFromAddr :: Addr# -> Word# -> Int# -> IO Integer+importIntegerFromAddr addr sz endian = IO \s ->+   case I.integerFromAddr# sz addr endian s of+      (# s', i #) -> (# s', i #)++{-# DEPRECATED exportIntegerToAddr "Use integerToAddr# instead" #-}+exportIntegerToAddr :: Integer -> Addr# -> Int# -> IO Word+exportIntegerToAddr i addr endian = IO \s ->+   case I.integerToAddr# i addr endian s of+      (# s', w #) -> (# s', W# w #)++wordToBigNat :: Word# -> BigNat+wordToBigNat w = BN# (B.bigNatFromWord# w)++wordToBigNat2 :: Word# -> Word# -> BigNat+wordToBigNat2 h l = BN# (B.bigNatFromWord2# h l)++bigNatToInt :: BigNat -> Int#+bigNatToInt (BN# b) = B.bigNatToInt# b++bigNatToWord :: BigNat -> Word#+bigNatToWord (BN# b) = B.bigNatToWord# b++{-# DEPRECATED indexBigNat# "Use bigNatIndex# instead" #-}+indexBigNat# :: BigNat -> GmpSize# -> GmpLimb#+indexBigNat# (BN# b) i = B.bigNatIndex# b i++{-# DEPRECATED importBigNatFromByteArray "Use bigNatFromByteArray# instead" #-}+importBigNatFromByteArray :: ByteArray# -> Word# -> Word# -> Int# -> BigNat+importBigNatFromByteArray ba off sz endian = case runRW# (B.bigNatFromByteArray# sz ba off endian) of+   (# _, r #) -> BN# r++{-# DEPRECATED exportBigNatToMutableByteArray "Use bigNatToMutableByteArray# instead" #-}+exportBigNatToMutableByteArray :: BigNat -> MutableByteArray# RealWorld -> Word# -> Int# -> IO Word+exportBigNatToMutableByteArray (BN# ba) mba off endian = IO (\s -> case B.bigNatToMutableByteArray# ba mba off endian s of+   (# s', r #) -> (# s', W# r #))++{-# DEPRECATED importIntegerFromByteArray "Use integerFromByteArray# instead" #-}+importIntegerFromByteArray :: ByteArray# -> Word# -> Word# -> Int# -> Integer+importIntegerFromByteArray ba off sz endian = case runRW# (I.integerFromByteArray# sz ba off endian) of+   (# _, r #) -> r++{-# DEPRECATED exportIntegerToMutableByteArray "Use integerToMutableByteArray# instead" #-}+exportIntegerToMutableByteArray :: Integer -> MutableByteArray# RealWorld -> Word# -> Int# -> IO Word+exportIntegerToMutableByteArray i mba off endian = IO (\s -> case I.integerToMutableByteArray# i mba off endian s of+   (# s', r #) -> (# s', W# r #))+++{-# DEPRECATED byteArrayToBigNat# "Use bigNatFromWordArray instead" #-}+byteArrayToBigNat# :: ByteArray# -> GmpSize# -> BigNat+byteArrayToBigNat# ba n = B.bigNatFromWordArray ba (int2Word# n)
− src/GHC/Integer/Logarithms.hs
@@ -1,73 +0,0 @@-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE MagicHash #-}-{-# LANGUAGE UnboxedTuples #-}-{-# LANGUAGE UnliftedFFITypes #-}-{-# LANGUAGE CPP #-}--module GHC.Integer.Logarithms-    ( wordLog2#-    , integerLog2#-    , integerLogBase#-    ) where--#include "MachDeps.h"--#if WORD_SIZE_IN_BITS == 32-# define LD_WORD_SIZE_IN_BITS 5-#elif WORD_SIZE_IN_BITS == 64-# define LD_WORD_SIZE_IN_BITS 6-#else-# error unsupported WORD_SIZE_IN_BITS-#endif--import GHC.Integer.Type--import GHC.Prim--default ()---- | Calculate the integer logarithm for an arbitrary base.------ The base must be greater than @1@, the second argument, the number--- whose logarithm is sought, shall be positive, otherwise the--- result is meaningless.------ The following property holds------ @base ^ 'integerLogBase#' base m <= m < base ^('integerLogBase#' base m + 1)@------ for @base > 1@ and @m > 0@.------ Note: Internally uses 'integerLog2#' for base 2-integerLogBase# :: Integer -> Integer -> Int#-integerLogBase# (S# 2#) m = integerLog2# m-integerLogBase# b m = e'-  where-    (# _, e' #) = go b--    go pw | m `ltInteger` pw = (# m, 0# #)-    go pw = case go (sqrInteger pw) of-              (# q, e #) | q `ltInteger` pw -> (# q, 2# *# e #)-              (# q, e #) -> (# q `quotInteger` pw, 2# *# e +# 1# #)----- | Calculate the integer base 2 logarithm of an 'Integer'.  The--- calculation is more efficient than for the general case, on--- platforms with 32- or 64-bit words much more efficient.------ The argument must be strictly positive, that condition is /not/ checked.-integerLog2# :: Integer -> Int#-integerLog2# (S# i#) = wordLog2# (int2Word# i#)-integerLog2# (Jn#  _) = -1#-integerLog2# (Jp# bn) = go (s -# 1#)-  where-    s = sizeofBigNat# bn-    go i = case indexBigNat# bn i of-               0## -> go (i -# 1#)-               w   -> wordLog2# w +# (uncheckedIShiftL# i LD_WORD_SIZE_IN_BITS#)---- | Compute base-2 log of 'Word#'------ This is internally implemented as count-leading-zeros machine instruction.-wordLog2# :: Word# -> Int#-wordLog2# w# = (WORD_SIZE_IN_BITS# -# 1#) -# (word2Int# (clz# w#))
− src/GHC/Integer/Logarithms/Internals.hs
@@ -1,118 +0,0 @@-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE MagicHash #-}-{-# LANGUAGE UnboxedTuples #-}-{-# LANGUAGE CPP #-}--{-# OPTIONS_HADDOCK hide #-}--#include "MachDeps.h"--#if WORD_SIZE_IN_BITS == 32-# define WSHIFT 5-# define MMASK 31-#elif WORD_SIZE_IN_BITS == 64-# define WSHIFT 6-# define MMASK 63-#else-# error unsupported WORD_SIZE_IN_BITS-#endif---- | Fast 'Integer' logarithms to base 2.  'integerLog2#' and--- 'wordLog2#' are of general usefulness, the others are only needed--- for a fast implementation of 'fromRational'.  Since they are needed--- in "GHC.Float", we must expose this module, but it should not show--- up in the docs.------ See https://ghc.haskell.org/trac/ghc/ticket/5122--- for the origin of the code in this module-module GHC.Integer.Logarithms.Internals-    ( wordLog2#-    , integerLog2IsPowerOf2#-    , integerLog2#-    , roundingMode#-    ) where--import GHC.Integer.Type-import GHC.Integer.Logarithms--import GHC.Types-import GHC.Prim--default ()---- | Extended version of 'integerLog2#'------ Assumption: Integer is strictly positive------ First component of result is @log2 n@, second is @0#@ iff /n/ is a--- power of two.-integerLog2IsPowerOf2# :: Integer -> (# Int#, Int# #)--- The power of 2 test is n&(n-1) == 0, thus powers of 2--- are indicated bythe second component being zero.-integerLog2IsPowerOf2# (S# i#) = case int2Word# i# of-      w -> (# wordLog2# w, word2Int# (w `and#` (w `minusWord#` 1##)) #)-integerLog2IsPowerOf2# (Jn# _) = (# -1#, -1# #)--- Find the log2 as above, test whether that word is a power--- of 2, if so, check whether only zero bits follow.-integerLog2IsPowerOf2# (Jp# bn) = check (s -# 1#)-  where-    s = sizeofBigNat# bn-    check :: Int# -> (# Int#, Int# #)-    check i = case indexBigNat# bn i of-                0## -> check (i -# 1#)-                w   -> (# wordLog2# w +# (uncheckedIShiftL# i WSHIFT#)-                        , case w `and#` (w `minusWord#` 1##) of-                            0## -> test (i -# 1#)-                            _   -> 1# #)-    test :: Int# -> Int#-    test i = if isTrue# (i <# 0#)-                then 0#-                else case indexBigNat# bn i of-                        0## -> test (i -# 1#)-                        _   -> 1#----- Assumption: Integer and Int# are strictly positive, Int# is less--- than logBase 2 of Integer, otherwise havoc ensues.--- Used only for the numerator in fromRational when the denominator--- is a power of 2.--- The Int# argument is log2 n minus the number of bits in the mantissa--- of the target type, i.e. the index of the first non-integral bit in--- the quotient.------ 0# means round down (towards zero)--- 1# means we have a half-integer, round to even--- 2# means round up (away from zero)-roundingMode# :: Integer -> Int# -> Int#-roundingMode# (S# i#) t =-    case int2Word# i# `and#` ((uncheckedShiftL# 2## t) `minusWord#` 1##) of-      k -> case uncheckedShiftL# 1## t of-            c -> if isTrue# (c `gtWord#` k)-                    then 0#-                    else if isTrue# (c `ltWord#` k)-                            then 2#-                            else 1#--roundingMode# (Jn# bn) t = roundingMode# (Jp# bn) t -- dummy-roundingMode# (Jp# bn) t =-    case word2Int# (int2Word# t `and#` MMASK##) of-      j ->      -- index of relevant bit in word-        case uncheckedIShiftRA# t WSHIFT# of-          k ->  -- index of relevant word-            case indexBigNat# bn k `and#`-                    ((uncheckedShiftL# 2## j) `minusWord#` 1##) of-              r ->-                case uncheckedShiftL# 1## j of-                  c -> if isTrue# (c `gtWord#` r)-                        then 0#-                        else if isTrue# (c `ltWord#` r)---                                then 2#-                                else test (k -# 1#)-  where-    test i = if isTrue# (i <# 0#)-                then 1#-                else case indexBigNat# bn i of-                        0## -> test (i -# 1#)-                        _   -> 2#
− src/GHC/Integer/Type.hs
@@ -1,2018 +0,0 @@-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE BangPatterns #-}-{-# LANGUAGE CPP #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE GHCForeignImportPrim #-}-{-# LANGUAGE MagicHash #-}-{-# LANGUAGE UnboxedTuples #-}-{-# LANGUAGE UnliftedFFITypes #-}-{-# LANGUAGE RebindableSyntax #-}-{-# LANGUAGE NegativeLiterals #-}-{-# LANGUAGE ExplicitForAll #-}---- |--- Module      :  GHC.Integer.Type--- Copyright   :  (c) Herbert Valerio Riedel 2014--- License     :  BSD3------ Maintainer  :  ghc-devs@haskell.org--- Stability   :  provisional--- Portability :  non-portable (GHC Extensions)------ GHC needs this module to be named "GHC.Integer.Type" and provide--- all the low-level 'Integer' operations.--module GHC.Integer.Type where--#include "MachDeps.h"---- Sanity check as CPP defines are implicitly 0-valued when undefined-#if !(defined(SIZEOF_LONG) && defined(SIZEOF_HSWORD) \-           && defined(WORD_SIZE_IN_BITS))-# error missing defines-#endif--import GHC.Classes-import GHC.Magic-import GHC.Prim-import GHC.Types-#if WORD_SIZE_IN_BITS < 64-import GHC.IntWord64-#endif--default ()---- Most high-level operations need to be marked `NOINLINE` as--- otherwise GHC doesn't recognize them and fails to apply constant--- folding to `Integer`-typed expression.------ To this end, the CPP hack below allows to write the pseudo-pragma------   {-# CONSTANT_FOLDED plusInteger #-}------ which is simply expaned into a------   {-# NOINLINE plusInteger #-}----#define CONSTANT_FOLDED NOINLINE--------------------------------------------------------------------------------- type definitions---- NB: all code assumes GMP_LIMB_BITS == WORD_SIZE_IN_BITS--- The C99 code in cbits/wrappers.c will fail to compile if this doesn't hold---- | Type representing a GMP Limb-type GmpLimb = Word -- actually, 'CULong'-type GmpLimb# = Word#---- | Count of 'GmpLimb's, must be positive (unless specified otherwise).-type GmpSize = Int  -- actually, a 'CLong'-type GmpSize# = Int#--narrowGmpSize# :: Int# -> Int#-#if SIZEOF_LONG == SIZEOF_HSWORD-narrowGmpSize# x = x-#elif (SIZEOF_LONG == 4) && (SIZEOF_HSWORD == 8)--- On IL32P64 (i.e. Win64), we have to be careful with CLong not being--- 64bit.  This is mostly an issue on values returned from C functions--- due to sign-extension.-narrowGmpSize# = narrow32Int#-#endif---type GmpBitCnt = Word -- actually, 'CULong'-type GmpBitCnt# = Word# -- actually, 'CULong'---- Pseudo FFI CType-type CInt = Int-type CInt# = Int#--narrowCInt# :: Int# -> Int#-narrowCInt# = narrow32Int#---- | Bits in a 'GmpLimb'. Same as @WORD_SIZE_IN_BITS@.-gmpLimbBits :: Word -- 8 `shiftL` gmpLimbShift-gmpLimbBits = W# WORD_SIZE_IN_BITS##--#if WORD_SIZE_IN_BITS == 64-# define GMP_LIMB_SHIFT   3-# define GMP_LIMB_BYTES   8-# define GMP_LIMB_BITS    64-# define INT_MINBOUND     -0x8000000000000000-# define INT_MAXBOUND      0x7fffffffffffffff-# define ABS_INT_MINBOUND  0x8000000000000000-# define SQRT_INT_MAXBOUND 0xb504f333-#elif WORD_SIZE_IN_BITS == 32-# define GMP_LIMB_SHIFT   2-# define GMP_LIMB_BYTES   4-# define GMP_LIMB_BITS    32-# define INT_MINBOUND     -0x80000000-# define INT_MAXBOUND      0x7fffffff-# define ABS_INT_MINBOUND  0x80000000-# define SQRT_INT_MAXBOUND 0xb504-#else-# error unsupported WORD_SIZE_IN_BITS config-#endif---- | Type representing /raw/ arbitrary-precision Naturals------ This is common type used by 'Natural' and 'Integer'.  As this type--- consists of a single constructor wrapping a 'ByteArray#' it can be--- unpacked.------ Essential invariants:------  - 'ByteArray#' size is an exact multiple of 'Word#' size---  - limbs are stored in least-significant-limb-first order,---  - the most-significant limb must be non-zero, except for---  - @0@ which is represented as a 1-limb.-data BigNat = BN# ByteArray#--instance Eq BigNat where-    (==) = eqBigNat--instance Ord BigNat where-    compare = compareBigNat---- | Invariant: 'Jn#' and 'Jp#' are used iff value doesn't fit in 'S#'------ Useful properties resulting from the invariants:------  - @abs ('S#' _) <= abs ('Jp#' _)@---  - @abs ('S#' _) <  abs ('Jn#' _)@----data Integer  = S#                !Int#-                -- ^ iff value in @[minBound::'Int', maxBound::'Int']@ range-              | Jp# {-# UNPACK #-} !BigNat-                -- ^ iff value in @]maxBound::'Int', +inf[@ range-              | Jn# {-# UNPACK #-} !BigNat-                -- ^ iff value in @]-inf, minBound::'Int'[@ range---- TODO: experiment with different constructor-ordering--instance Eq Integer where-    (==)    = eqInteger-    (/=)    = neqInteger--instance Ord Integer where-    compare = compareInteger-    (>)     = gtInteger-    (>=)    = geInteger-    (<)     = ltInteger-    (<=)    = leInteger---------------------------------------------------------------------------------- | Construct 'Integer' value from list of 'Int's.------ This function is used by GHC for constructing 'Integer' literals.-mkInteger :: Bool   -- ^ sign of integer ('True' if non-negative)-          -> [Int]  -- ^ absolute value expressed in 31 bit chunks, least-                    --   significant first (ideally these would be machine-word-                    --   'Word's rather than 31-bit truncated 'Int's)-          -> Integer-mkInteger nonNegative is-  | nonNegative = f is-  | True        = negateInteger (f is)-  where-    f [] = S# 0#-    f (I# i : is') = smallInteger (i `andI#` 0x7fffffff#) `orInteger`-                         shiftLInteger (f is') 31#-{-# CONSTANT_FOLDED mkInteger #-}---- | Test whether all internal invariants are satisfied by 'Integer' value------ Returns @1#@ if valid, @0#@ otherwise.------ This operation is mostly useful for test-suites and/or code which--- constructs 'Integer' values directly.-isValidInteger# :: Integer -> Int#-isValidInteger# (S#  _) = 1#-isValidInteger# (Jp# bn)-    = isValidBigNat# bn `andI#` (bn `gtBigNatWord#` INT_MAXBOUND##)-isValidInteger# (Jn# bn)-    = isValidBigNat# bn `andI#` (bn `gtBigNatWord#` ABS_INT_MINBOUND##)---- | Should rather be called @intToInteger@-smallInteger :: Int# -> Integer-smallInteger i# = S# i#-{-# CONSTANT_FOLDED smallInteger #-}--------------------------------------------------------------------------------- Int64/Word64 specific primitives--#if WORD_SIZE_IN_BITS < 64-int64ToInteger :: Int64# -> Integer-int64ToInteger i-  | isTrue# (i `leInt64#` intToInt64#  0x7FFFFFFF#)-  , isTrue# (i `geInt64#` intToInt64# -0x80000000#)-    = S# (int64ToInt# i)-  | isTrue# (i `geInt64#` intToInt64# 0#)-    = Jp# (word64ToBigNat (int64ToWord64# i))-  | True-    = Jn# (word64ToBigNat (int64ToWord64# (negateInt64# i)))-{-# CONSTANT_FOLDED int64ToInteger #-}--word64ToInteger :: Word64# -> Integer-word64ToInteger w-  | isTrue# (w `leWord64#` wordToWord64# 0x7FFFFFFF##)-    = S# (int64ToInt# (word64ToInt64# w))-  | True-    = Jp# (word64ToBigNat w)-{-# CONSTANT_FOLDED word64ToInteger #-}--integerToInt64 :: Integer -> Int64#-integerToInt64 (S# i#)  = intToInt64# i#-integerToInt64 (Jp# bn) = word64ToInt64# (bigNatToWord64 bn)-integerToInt64 (Jn# bn) = negateInt64# (word64ToInt64# (bigNatToWord64 bn))-{-# CONSTANT_FOLDED integerToInt64 #-}--integerToWord64 :: Integer -> Word64#-integerToWord64 (S# i#)  = int64ToWord64# (intToInt64# i#)-integerToWord64 (Jp# bn) = bigNatToWord64 bn-integerToWord64 (Jn# bn)-    = int64ToWord64# (negateInt64# (word64ToInt64# (bigNatToWord64 bn)))-{-# CONSTANT_FOLDED integerToWord64 #-}--#if GMP_LIMB_BITS == 32-word64ToBigNat :: Word64# -> BigNat-word64ToBigNat w64 = wordToBigNat2 wh# wl#-  where-    wh# = word64ToWord# (uncheckedShiftRL64# w64 32#)-    wl# = word64ToWord# w64--bigNatToWord64 :: BigNat -> Word64#-bigNatToWord64 bn-  | isTrue# (sizeofBigNat# bn ># 1#)-    = let wh# = wordToWord64# (indexBigNat# bn 1#)-      in uncheckedShiftL64# wh# 32# `or64#` wl#-  | True = wl#-  where-    wl# = wordToWord64# (bigNatToWord bn)-#endif-#endif---- End of Int64/Word64 specific primitives--------------------------------------------------------------------------------- | Truncates 'Integer' to least-significant 'Int#'-integerToInt :: Integer -> Int#-integerToInt (S# i#)  = i#-integerToInt (Jp# bn) = bigNatToInt bn-integerToInt (Jn# bn) = negateInt# (bigNatToInt bn)-{-# CONSTANT_FOLDED integerToInt #-}--hashInteger :: Integer -> Int#-hashInteger = integerToInt -- emulating what integer-{simple,gmp} already do--integerToWord :: Integer -> Word#-integerToWord (S# i#)  = int2Word# i#-integerToWord (Jp# bn) = bigNatToWord bn-integerToWord (Jn# bn) = int2Word# (negateInt# (bigNatToInt bn))-{-# CONSTANT_FOLDED integerToWord #-}--wordToInteger :: Word# -> Integer-wordToInteger w#-  | isTrue# (i# >=# 0#) = S# i#-  | True                = Jp# (wordToBigNat w#)-  where-    i# = word2Int# w#-{-# CONSTANT_FOLDED wordToInteger #-}--wordToNegInteger :: Word# -> Integer-wordToNegInteger w#-  | isTrue# (i# <=# 0#) = S# i#-  | True                = Jn# (wordToBigNat w#)-  where-    i# = negateInt# (word2Int# w#)---- we could almost auto-derive Ord if it wasn't for the Jn#-Jn# case-compareInteger :: Integer -> Integer -> Ordering-compareInteger (Jn# x)  (Jn# y) = compareBigNat y x-compareInteger (S#  x)  (S#  y) = compareInt#   x y-compareInteger (Jp# x)  (Jp# y) = compareBigNat x y-compareInteger (Jn# _)  _       = LT-compareInteger (S#  _)  (Jp# _) = LT-compareInteger (S#  _)  (Jn# _) = GT-compareInteger (Jp# _)  _       = GT-{-# CONSTANT_FOLDED compareInteger #-}--isNegInteger# :: Integer -> Int#-isNegInteger# (S# i#) = i# <# 0#-isNegInteger# (Jp# _)  = 0#-isNegInteger# (Jn# _)  = 1#---- | Not-equal predicate.-neqInteger :: Integer -> Integer -> Bool-neqInteger x y = isTrue# (neqInteger# x y)--eqInteger, leInteger, ltInteger, gtInteger, geInteger-  :: Integer -> Integer -> Bool-eqInteger  x y = isTrue# (eqInteger#  x y)-leInteger  x y = isTrue# (leInteger#  x y)-ltInteger  x y = isTrue# (ltInteger#  x y)-gtInteger  x y = isTrue# (gtInteger#  x y)-geInteger  x y = isTrue# (geInteger#  x y)--eqInteger#, neqInteger#, leInteger#, ltInteger#, gtInteger#, geInteger#-  :: Integer -> Integer -> Int#-eqInteger# (S# x#) (S# y#)   = x# ==# y#-eqInteger# (Jn# x) (Jn# y)   = eqBigNat# x y-eqInteger# (Jp# x) (Jp# y)   = eqBigNat# x y-eqInteger# _       _         = 0#-{-# CONSTANT_FOLDED eqInteger# #-}--neqInteger# (S# x#) (S# y#)  = x# /=# y#-neqInteger# (Jn# x) (Jn# y)  = neqBigNat# x y-neqInteger# (Jp# x) (Jp# y)  = neqBigNat# x y-neqInteger# _       _        = 1#-{-# CONSTANT_FOLDED neqInteger# #-}---gtInteger# (S# x#) (S# y#)   = x# ># y#-gtInteger# x y | inline compareInteger x y == GT  = 1#-gtInteger# _ _                                    = 0#-{-# CONSTANT_FOLDED gtInteger# #-}--leInteger# (S# x#) (S# y#)   = x# <=# y#-leInteger# x y | inline compareInteger x y /= GT  = 1#-leInteger# _ _                             = 0#-{-# CONSTANT_FOLDED leInteger# #-}--ltInteger# (S# x#) (S# y#)   = x# <# y#-ltInteger# x y | inline compareInteger x y == LT  = 1#-ltInteger# _ _                             = 0#-{-# CONSTANT_FOLDED ltInteger# #-}--geInteger# (S# x#) (S# y#)   = x# >=# y#-geInteger# x y | inline compareInteger x y /= LT  = 1#-geInteger# _ _                             = 0#-{-# CONSTANT_FOLDED geInteger# #-}---- | Compute absolute value of an 'Integer'-absInteger :: Integer -> Integer-absInteger (Jn# n)                       = Jp# n-absInteger (S# INT_MINBOUND#)            = Jp# (wordToBigNat ABS_INT_MINBOUND##)-absInteger (S# i#) | isTrue# (i# <# 0#)  = S# (negateInt# i#)-absInteger i@(S# _)                      = i-absInteger i@(Jp# _)                     = i-{-# CONSTANT_FOLDED absInteger #-}---- | Return @-1@, @0@, and @1@ depending on whether argument is--- negative, zero, or positive, respectively-signumInteger :: Integer -> Integer-signumInteger j = S# (signumInteger# j)-{-# CONSTANT_FOLDED signumInteger #-}---- | Return @-1#@, @0#@, and @1#@ depending on whether argument is--- negative, zero, or positive, respectively-signumInteger# :: Integer -> Int#-signumInteger# (Jn# _)  = -1#-signumInteger# (S# i#) = sgnI# i#-signumInteger# (Jp# _ ) =  1#---- | Negate 'Integer'-negateInteger :: Integer -> Integer-negateInteger (Jn# n)      = Jp# n-negateInteger (S# INT_MINBOUND#) = Jp# (wordToBigNat ABS_INT_MINBOUND##)-negateInteger (S# i#)             = S# (negateInt# i#)-negateInteger (Jp# bn)-  | isTrue# (eqBigNatWord# bn ABS_INT_MINBOUND##) = S# INT_MINBOUND#-  | True                                        = Jn# bn-{-# CONSTANT_FOLDED negateInteger #-}---- one edge-case issue to take into account is that Int's range is not--- symmetric around 0.  I.e. @minBound+maxBound = -1@------ Jp# is used iff n > maxBound::Int--- Jn# is used iff n < minBound::Int---- | Add two 'Integer's-plusInteger :: Integer -> Integer -> Integer-plusInteger x    (S# 0#)  = x-plusInteger (S# 0#) y     = y-plusInteger (S# x#) (S# y#)-  = case addIntC# x# y# of-    (# z#, 0# #) -> S# z#-    (# 0#, _  #) -> Jn# (wordToBigNat2 1## 0##) -- 2*minBound::Int-    (# z#, _  #)-      | isTrue# (z# ># 0#) -> Jn# (wordToBigNat ( (int2Word# (negateInt# z#))))-      | True               -> Jp# (wordToBigNat ( (int2Word# z#)))-plusInteger y@(S# _) x = plusInteger x y--- no S# as first arg from here on-plusInteger (Jp# x) (Jp# y) = Jp# (plusBigNat x y)-plusInteger (Jn# x) (Jn# y) = Jn# (plusBigNat x y)-plusInteger (Jp# x) (S# y#) -- edge-case: @(maxBound+1) + minBound == 0@-  | isTrue# (y# >=# 0#) = Jp# (plusBigNatWord x (int2Word# y#))-  | True                = bigNatToInteger (minusBigNatWord x (int2Word#-                                                              (negateInt# y#)))-plusInteger (Jn# x) (S# y#) -- edge-case: @(minBound-1) + maxBound == -2@-  | isTrue# (y# >=# 0#) = bigNatToNegInteger (minusBigNatWord x (int2Word# y#))-  | True                = Jn# (plusBigNatWord x (int2Word# (negateInt# y#)))-plusInteger y@(Jn# _) x@(Jp# _) = plusInteger x y-plusInteger (Jp# x) (Jn# y)-    = case compareBigNat x y of-      LT -> bigNatToNegInteger (minusBigNat y x)-      EQ -> S# 0#-      GT -> bigNatToInteger (minusBigNat x y)-{-# CONSTANT_FOLDED plusInteger #-}---- TODO--- | Subtract two 'Integer's from each other.-minusInteger :: Integer -> Integer -> Integer-minusInteger x y = inline plusInteger x (inline negateInteger y)-{-# CONSTANT_FOLDED minusInteger #-}---- | Multiply two 'Integer's-timesInteger :: Integer -> Integer -> Integer-timesInteger !_      (S# 0#) = S# 0#-timesInteger (S# 0#) _       = S# 0#-timesInteger x       (S# 1#) = x-timesInteger (S# 1#) y       = y-timesInteger x      (S# -1#) = negateInteger x-timesInteger (S# -1#) y      = negateInteger y-timesInteger (S# x#) (S# y#)-  = case mulIntMayOflo# x# y# of-    0# -> S# (x# *# y#)-    _  -> timesInt2Integer x# y#-timesInteger x@(S# _) y      = timesInteger y x--- no S# as first arg from here on-timesInteger (Jp# x) (Jp# y) = Jp# (timesBigNat x y)-timesInteger (Jp# x) (Jn# y) = Jn# (timesBigNat x y)-timesInteger (Jp# x) (S# y#)-  | isTrue# (y# >=# 0#) = Jp# (timesBigNatWord x (int2Word# y#))-  | True       = Jn# (timesBigNatWord x (int2Word# (negateInt# y#)))-timesInteger (Jn# x) (Jn# y) = Jp# (timesBigNat x y)-timesInteger (Jn# x) (Jp# y) = Jn# (timesBigNat x y)-timesInteger (Jn# x) (S# y#)-  | isTrue# (y# >=# 0#) = Jn# (timesBigNatWord x (int2Word# y#))-  | True       = Jp# (timesBigNatWord x (int2Word# (negateInt# y#)))-{-# CONSTANT_FOLDED timesInteger #-}---- | Square 'Integer'-sqrInteger :: Integer -> Integer-sqrInteger (S# INT_MINBOUND#) = timesInt2Integer INT_MINBOUND# INT_MINBOUND#-sqrInteger (S# j#) | isTrue# (absI# j# <=# SQRT_INT_MAXBOUND#) = S# (j# *# j#)-sqrInteger (S# j#) = timesInt2Integer j# j#-sqrInteger (Jp# bn) = Jp# (sqrBigNat bn)-sqrInteger (Jn# bn) = Jp# (sqrBigNat bn)---- | Construct 'Integer' from the product of two 'Int#'s-timesInt2Integer :: Int# -> Int# -> Integer-timesInt2Integer x# y# = case (# isTrue# (x# >=# 0#), isTrue# (y# >=# 0#) #) of-    (# False, False #) -> case timesWord2# (int2Word# (negateInt# x#))-                                     (int2Word# (negateInt# y#)) of-        (# 0##,l #) -> inline wordToInteger l-        (# h  ,l #) -> Jp# (wordToBigNat2 h l)--    (#  True, False #) -> case timesWord2# (int2Word# x#)-                                     (int2Word# (negateInt# y#)) of-        (# 0##,l #) -> wordToNegInteger l-        (# h  ,l #) -> Jn# (wordToBigNat2 h l)--    (# False,  True #) -> case timesWord2# (int2Word# (negateInt# x#))-                                     (int2Word# y#) of-        (# 0##,l #) -> wordToNegInteger l-        (# h  ,l #) -> Jn# (wordToBigNat2 h l)--    (#  True,  True #) -> case timesWord2# (int2Word# x#)-                                     (int2Word# y#) of-        (# 0##,l #) -> inline wordToInteger l-        (# h  ,l #) -> Jp# (wordToBigNat2 h l)--bigNatToInteger :: BigNat -> Integer-bigNatToInteger bn-  | isTrue# ((sizeofBigNat# bn ==# 1#) `andI#` (i# >=# 0#)) = S# i#-  | True                                                    = Jp# bn-  where-    i# = word2Int# (bigNatToWord bn)--bigNatToNegInteger :: BigNat -> Integer-bigNatToNegInteger bn-  | isTrue# ((sizeofBigNat# bn ==# 1#) `andI#` (i# <=# 0#)) = S# i#-  | True                                                    = Jn# bn-  where-    i# = negateInt# (word2Int# (bigNatToWord bn))---- | Count number of set bits. For negative arguments returns negative--- population count of negated argument.-popCountInteger :: Integer -> Int#-popCountInteger (S# i#)-  | isTrue# (i# >=# 0#) = popCntI# i#-  | True                = negateInt# (popCntI# (negateInt# i#))-popCountInteger (Jp# bn)  = popCountBigNat bn-popCountInteger (Jn# bn)  = negateInt# (popCountBigNat bn)-{-# CONSTANT_FOLDED popCountInteger #-}---- | 'Integer' for which only /n/-th bit is set. Undefined behaviour--- for negative /n/ values.-bitInteger :: Int# -> Integer-bitInteger i#-  | isTrue# (i# <# (GMP_LIMB_BITS# -# 1#)) = S# (uncheckedIShiftL# 1# i#)-  | True = Jp# (bitBigNat i#)-{-# CONSTANT_FOLDED bitInteger #-}---- | Test if /n/-th bit is set.-testBitInteger :: Integer -> Int# -> Bool-testBitInteger !_  n# | isTrue# (n# <# 0#) = False-testBitInteger (S# i#) n#-  | isTrue# (n# <# GMP_LIMB_BITS#) = isTrue# (((uncheckedIShiftL# 1# n#)-                                               `andI#` i#) /=# 0#)-  | True                          = isTrue# (i# <# 0#)-testBitInteger (Jp# bn) n = testBitBigNat bn n-testBitInteger (Jn# bn) n = testBitNegBigNat bn n-{-# CONSTANT_FOLDED testBitInteger #-}---- | Bitwise @NOT@ operation-complementInteger :: Integer -> Integer-complementInteger (S# i#) = S# (notI# i#)-complementInteger (Jp# bn) = Jn# (plusBigNatWord  bn 1##)-complementInteger (Jn# bn) = Jp# (minusBigNatWord bn 1##)-{-# CONSTANT_FOLDED complementInteger #-}---- | Arithmetic shift-right operation------ Even though the shift-amount is expressed as `Int#`, the result is--- undefined for negative shift-amounts.-shiftRInteger :: Integer -> Int# -> Integer-shiftRInteger x        0# = x-shiftRInteger (S# i#)  n# = S# (iShiftRA# i# n#)-  where-    iShiftRA# a b-      | isTrue# (b >=# WORD_SIZE_IN_BITS#) = (a <# 0#) *# (-1#)-      | True                               = a `uncheckedIShiftRA#` b-shiftRInteger (Jp# bn) n# = bigNatToInteger (shiftRBigNat bn n#)-shiftRInteger (Jn# bn) n#-    = case bigNatToNegInteger (shiftRNegBigNat bn n#) of-        S# 0# -> S# -1#-        r           -> r-{-# CONSTANT_FOLDED shiftRInteger #-}---- | Shift-left operation------ Even though the shift-amount is expressed as `Int#`, the result is--- undefined for negative shift-amounts.-shiftLInteger :: Integer -> Int# -> Integer-shiftLInteger x       0#  = x-shiftLInteger (S# 0#) _  = S# 0#-shiftLInteger (S# 1#) n# = bitInteger n#-shiftLInteger (S# i#) n#-  | isTrue# (i# >=# 0#)   = bigNatToInteger (shiftLBigNat-                                             (wordToBigNat (int2Word# i#)) n#)-  | True               = bigNatToNegInteger (shiftLBigNat-                                             (wordToBigNat (int2Word#-                                                         (negateInt# i#))) n#)-shiftLInteger (Jp# bn) n# = Jp# (shiftLBigNat bn n#)-shiftLInteger (Jn# bn) n# = Jn# (shiftLBigNat bn n#)-{-# CONSTANT_FOLDED shiftLInteger #-}---- | Bitwise OR operation-orInteger :: Integer -> Integer -> Integer--- short-cuts-orInteger  (S# 0#)     y         = y-orInteger  x           (S# 0#)   = x-orInteger  (S# -1#)    _         = S# -1#-orInteger  _           (S# -1#)  = S# -1#--- base-cases-orInteger  (S# x#)     (S# y#)   = S# (orI# x# y#)-orInteger  (Jp# x)     (Jp# y)   = Jp# (orBigNat x y)-orInteger  (Jn# x)     (Jn# y)-    = bigNatToNegInteger (plusBigNatWord (andBigNat-                                          (minusBigNatWord x 1##)-                                          (minusBigNatWord y 1##)) 1##)-orInteger  x@(Jn# _)   y@(Jp# _)  = orInteger y x -- retry with swapped args-orInteger  (Jp# x)     (Jn# y)-    = bigNatToNegInteger (plusBigNatWord (andnBigNat (minusBigNatWord y 1##) x)-                                         1##)--- TODO/FIXpromotion-hack-orInteger  x@(S# _)   y          = orInteger (unsafePromote x) y-orInteger  x           y {- S# -}= orInteger x (unsafePromote y)-{-# CONSTANT_FOLDED orInteger #-}---- | Bitwise XOR operation-xorInteger :: Integer -> Integer -> Integer--- short-cuts-xorInteger (S# 0#)     y          = y-xorInteger x           (S# 0#)    = x--- TODO: (S# -1) cases--- base-cases-xorInteger (S# x#)     (S# y#)    = S# (xorI# x# y#)-xorInteger (Jp# x)     (Jp# y)    = bigNatToInteger (xorBigNat x y)-xorInteger (Jn# x)     (Jn# y)-    = bigNatToInteger (xorBigNat (minusBigNatWord x 1##)-                                 (minusBigNatWord y 1##))-xorInteger x@(Jn# _)   y@(Jp# _)  = xorInteger y x -- retry with swapped args-xorInteger (Jp# x)     (Jn# y)-    = bigNatToNegInteger (plusBigNatWord (xorBigNat x (minusBigNatWord y 1##))-                                         1##)--- TODO/FIXME promotion-hack-xorInteger x@(S# _)    y          = xorInteger (unsafePromote x) y-xorInteger x           y {- S# -} = xorInteger x (unsafePromote y)-{-# CONSTANT_FOLDED xorInteger #-}---- | Bitwise AND operation-andInteger :: Integer -> Integer -> Integer--- short-cuts-andInteger (S# 0#)     !_        = S# 0#-andInteger _           (S# 0#)   = S# 0#-andInteger (S# -1#)   y          = y-andInteger x           (S# -1#)  = x--- base-cases-andInteger (S# x#)     (S# y#)   = S# (andI# x# y#)-andInteger (Jp# x)     (Jp# y)   = bigNatToInteger (andBigNat x y)-andInteger (Jn# x)     (Jn# y)-    = bigNatToNegInteger (plusBigNatWord (orBigNat (minusBigNatWord x 1##)-                                                   (minusBigNatWord y 1##)) 1##)-andInteger x@(Jn# _)   y@(Jp# _)  = andInteger y x-andInteger (Jp# x)     (Jn# y)-    = bigNatToInteger (andnBigNat x (minusBigNatWord y 1##))--- TODO/FIXME promotion-hack-andInteger x@(S# _)   y          = andInteger (unsafePromote x) y-andInteger x           y {- S# -}= andInteger x (unsafePromote y)-{-# CONSTANT_FOLDED andInteger #-}---- HACK warning! breaks invariant on purpose-unsafePromote :: Integer -> Integer-unsafePromote (S# x#)-    | isTrue# (x# >=# 0#) = Jp# (wordToBigNat (int2Word# x#))-    | True                = Jn# (wordToBigNat (int2Word# (negateInt# x#)))-unsafePromote x = x---- | Simultaneous 'quotInteger' and 'remInteger'.------ Divisor must be non-zero otherwise the GHC runtime will terminate--- with a division-by-zero fault.-quotRemInteger :: Integer -> Integer -> (# Integer, Integer #)-quotRemInteger n       (S# 1#) = (# n, S# 0# #)-quotRemInteger n      (S# -1#) = let !q = negateInteger n in (# q, (S# 0#) #)-quotRemInteger !_      (S# 0#) = (# S# (quotInt# 0# 0#),S# (remInt# 0# 0#) #)-quotRemInteger (S# 0#) _       = (# S# 0#, S# 0# #)-quotRemInteger (S# n#) (S# d#) = case quotRemInt# n# d# of-    (# q#, r# #) -> (# S# q#, S# r# #)-quotRemInteger (Jp# n)  (Jp# d)  = case quotRemBigNat n d of-    (# q, r #) -> (# bigNatToInteger q, bigNatToInteger r #)-quotRemInteger (Jp# n)  (Jn# d)  = case quotRemBigNat n d of-    (# q, r #) -> (# bigNatToNegInteger q, bigNatToInteger r #)-quotRemInteger (Jn# n)  (Jn# d)  = case quotRemBigNat n d of-    (# q, r #) -> (# bigNatToInteger q, bigNatToNegInteger r #)-quotRemInteger (Jn# n)  (Jp# d)  = case quotRemBigNat n d of-    (# q, r #) -> (# bigNatToNegInteger q, bigNatToNegInteger r #)-quotRemInteger (Jp# n)  (S# d#)-  | isTrue# (d# >=# 0#) = case quotRemBigNatWord n (int2Word# d#) of-      (# q, r# #) -> (# bigNatToInteger q, inline wordToInteger r# #)-  | True               = case quotRemBigNatWord n (int2Word# (negateInt# d#)) of-      (# q, r# #) -> (# bigNatToNegInteger q, inline wordToInteger r# #)-quotRemInteger (Jn# n)  (S# d#)-  | isTrue# (d# >=# 0#) = case quotRemBigNatWord n (int2Word# d#) of-      (# q, r# #) -> (# bigNatToNegInteger q, wordToNegInteger r# #)-  | True               = case quotRemBigNatWord n (int2Word# (negateInt# d#)) of-      (# q, r# #) -> (# bigNatToInteger q, wordToNegInteger r# #)-quotRemInteger n@(S# _) (Jn# _) = (# S# 0#, n #) -- since @n < d@-quotRemInteger n@(S# n#) (Jp# d) -- need to account for (S# minBound)-    | isTrue# (n# ># 0#)                                    = (# S# 0#, n #)-    | isTrue# (gtBigNatWord# d (int2Word# (negateInt# n#))) = (# S# 0#, n #)-    | True {- abs(n) == d -}                          = (# S# -1#, S# 0# #)-{-# CONSTANT_FOLDED quotRemInteger #-}---quotInteger :: Integer -> Integer -> Integer-quotInteger n       (S# 1#) = n-quotInteger n      (S# -1#) = negateInteger n-quotInteger !_      (S# 0#) = S# (quotInt# 0# 0#)-quotInteger (S# 0#) _       = S# 0#-quotInteger (S# n#)  (S# d#) = S# (quotInt# n# d#)-quotInteger (Jp# n)   (S# d#)-  | isTrue# (d# >=# 0#) = bigNatToInteger    (quotBigNatWord n (int2Word# d#))-  | True                = bigNatToNegInteger (quotBigNatWord n-                                              (int2Word# (negateInt# d#)))-quotInteger (Jn# n)   (S# d#)-  | isTrue# (d# >=# 0#) = bigNatToNegInteger (quotBigNatWord n (int2Word# d#))-  | True                = bigNatToInteger    (quotBigNatWord n-                                              (int2Word# (negateInt# d#)))-quotInteger (Jp# n) (Jp# d) = bigNatToInteger    (quotBigNat n d)-quotInteger (Jp# n) (Jn# d) = bigNatToNegInteger (quotBigNat n d)-quotInteger (Jn# n) (Jp# d) = bigNatToNegInteger (quotBigNat n d)-quotInteger (Jn# n) (Jn# d) = bigNatToInteger    (quotBigNat n d)--- handle remaining non-allocating cases-quotInteger n d = case inline quotRemInteger n d of (# q, _ #) -> q-{-# CONSTANT_FOLDED quotInteger #-}--remInteger :: Integer -> Integer -> Integer-remInteger !_       (S# 1#) = S# 0#-remInteger _       (S# -1#) = S# 0#-remInteger _        (S# 0#) = S# (remInt# 0# 0#)-remInteger (S# 0#) _        = S# 0#-remInteger (S# n#) (S# d#) = S# (remInt# n# d#)-remInteger (Jp# n)  (S# d#)-    = wordToInteger    (remBigNatWord n (int2Word# (absI# d#)))-remInteger (Jn# n)  (S# d#)-    = wordToNegInteger (remBigNatWord n (int2Word# (absI# d#)))-remInteger (Jp# n)  (Jp# d)  = bigNatToInteger    (remBigNat n d)-remInteger (Jp# n)  (Jn# d)  = bigNatToInteger    (remBigNat n d)-remInteger (Jn# n)  (Jp# d)  = bigNatToNegInteger (remBigNat n d)-remInteger (Jn# n)  (Jn# d)  = bigNatToNegInteger (remBigNat n d)--- handle remaining non-allocating cases-remInteger n d = case inline quotRemInteger n d of (# _, r #) -> r-{-# CONSTANT_FOLDED remInteger #-}---- | Simultaneous 'divInteger' and 'modInteger'.------ Divisor must be non-zero otherwise the GHC runtime will terminate--- with a division-by-zero fault.-divModInteger :: Integer -> Integer -> (# Integer, Integer #)-divModInteger n d-  | isTrue# (signumInteger# r ==# negateInt# (signumInteger# d))-     = let !q' = plusInteger q (S# -1#) -- TODO: optimize-           !r' = plusInteger r d-       in (# q', r' #)-  | True = qr-  where-    qr@(# q, r #) = quotRemInteger n d-{-# CONSTANT_FOLDED divModInteger #-}--divInteger :: Integer -> Integer -> Integer--- same-sign ops can be handled by more efficient 'quotInteger'-divInteger n d | isTrue# (isNegInteger# n ==# isNegInteger# d) = quotInteger n d-divInteger n d = case inline divModInteger n d of (# q, _ #) -> q-{-# CONSTANT_FOLDED divInteger #-}--modInteger :: Integer -> Integer -> Integer--- same-sign ops can be handled by more efficient 'remInteger'-modInteger n d | isTrue# (isNegInteger# n ==# isNegInteger# d) = remInteger n d-modInteger n d = case inline divModInteger n d of (# _, r #) -> r-{-# CONSTANT_FOLDED modInteger #-}---- | Compute greatest common divisor.-gcdInteger :: Integer -> Integer -> Integer-gcdInteger (S# 0#)        b = absInteger b-gcdInteger a        (S# 0#) = absInteger a-gcdInteger (S# 1#)        _ = S# 1#-gcdInteger (S# -1#)       _ = S# 1#-gcdInteger _        (S# 1#) = S# 1#-gcdInteger _       (S# -1#) = S# 1#-gcdInteger (S# a#) (S# b#)-    = wordToInteger (gcdWord# (int2Word# (absI# a#)) (int2Word# (absI# b#)))-gcdInteger a@(S# _) b = gcdInteger b a-gcdInteger (Jn# a) b = gcdInteger (Jp# a) b-gcdInteger (Jp# a) (Jp# b) = bigNatToInteger (gcdBigNat a b)-gcdInteger (Jp# a) (Jn# b) = bigNatToInteger (gcdBigNat a b)-gcdInteger (Jp# a) (S# b#)-    = wordToInteger (gcdBigNatWord a (int2Word# (absI# b#)))-{-# CONSTANT_FOLDED gcdInteger #-}---- | Compute least common multiple.-lcmInteger :: Integer -> Integer -> Integer-lcmInteger (S# 0#) !_  = S# 0#-lcmInteger (S# 1#)  b  = absInteger b-lcmInteger (S# -1#) b  = absInteger b-lcmInteger _ (S# 0#)   = S# 0#-lcmInteger a (S# 1#)   = absInteger a-lcmInteger a (S# -1#)  = absInteger a-lcmInteger a b = (aa `quotInteger` (aa `gcdInteger` ab)) `timesInteger` ab-  where-    aa = absInteger a-    ab = absInteger b-{-# CONSTANT_FOLDED lcmInteger #-}---- | Compute greatest common divisor.------ __Warning__: result may become negative if (at least) one argument--- is 'minBound'-gcdInt :: Int# -> Int# -> Int#-gcdInt x# y#-    = word2Int# (gcdWord# (int2Word# (absI# x#)) (int2Word# (absI# y#)))---- | Compute greatest common divisor.------ @since 1.0.0.0-gcdWord :: Word# -> Word# -> Word#-gcdWord = gcdWord#--------------------------------------------------------------------------------- BigNat operations--compareBigNat :: BigNat -> BigNat -> Ordering-compareBigNat x@(BN# x#) y@(BN# y#)-  | isTrue# (nx# ==# ny#)-      = compareInt# (narrowCInt# (c_mpn_cmp x# y# nx#)) 0#-  | isTrue# (nx# <#  ny#) = LT-  | True                  = GT-  where-    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y--compareBigNatWord :: BigNat -> GmpLimb# -> Ordering-compareBigNatWord bn w#-  | isTrue# (sizeofBigNat# bn ==# 1#) = cmpW# (bigNatToWord bn) w#-  | True                              = GT--gtBigNatWord# :: BigNat -> GmpLimb# -> Int#-gtBigNatWord# bn w#-    = (sizeofBigNat# bn ># 1#) `orI#` (bigNatToWord bn `gtWord#` w#)--eqBigNat :: BigNat -> BigNat -> Bool-eqBigNat x y = isTrue# (eqBigNat# x y)--eqBigNat# :: BigNat -> BigNat -> Int#-eqBigNat# x@(BN# x#) y@(BN# y#)-  | isTrue# (nx# ==# ny#) = c_mpn_cmp x# y# nx# ==# 0#-  | True                  = 0#-  where-    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y--neqBigNat# :: BigNat -> BigNat -> Int#-neqBigNat# x@(BN# x#) y@(BN# y#)-  | isTrue# (nx# ==# ny#) = c_mpn_cmp x# y# nx# /=# 0#-  | True                  = 1#-  where-    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y--eqBigNatWord :: BigNat -> GmpLimb# -> Bool-eqBigNatWord bn w# = isTrue# (eqBigNatWord# bn w#)--eqBigNatWord# :: BigNat -> GmpLimb# -> Int#-eqBigNatWord# bn w#-    = (sizeofBigNat# bn ==# 1#) `andI#` (bigNatToWord bn `eqWord#` w#)----- | Same as @'indexBigNat#' bn 0\#@-bigNatToWord :: BigNat -> Word#-bigNatToWord bn = indexBigNat# bn 0#---- | Equivalent to @'word2Int#' . 'bigNatToWord'@-bigNatToInt :: BigNat -> Int#-bigNatToInt (BN# ba#) = indexIntArray# ba# 0#---- | CAF representing the value @0 :: BigNat@-zeroBigNat :: BigNat-zeroBigNat = runS $ do-    mbn <- newBigNat# 1#-    _ <- svoid (writeBigNat# mbn 0# 0##)-    unsafeFreezeBigNat# mbn-{-# NOINLINE zeroBigNat #-}---- | Test if 'BigNat' value is equal to zero.-isZeroBigNat :: BigNat -> Bool-isZeroBigNat bn = eqBigNatWord bn 0##---- | CAF representing the value @1 :: BigNat@-oneBigNat :: BigNat-oneBigNat = runS $ do-    mbn <- newBigNat# 1#-    _ <- svoid (writeBigNat# mbn 0# 1##)-    unsafeFreezeBigNat# mbn-{-# NOINLINE oneBigNat #-}--czeroBigNat :: BigNat-czeroBigNat = runS $ do-    mbn <- newBigNat# 1#-    _ <- svoid (writeBigNat# mbn 0# (not# 0##))-    unsafeFreezeBigNat# mbn-{-# NOINLINE czeroBigNat #-}---- | Special 0-sized bigNat returned in case of arithmetic underflow------ This is currently only returned by the following operations:------  - 'minusBigNat'---  - 'minusBigNatWord'------ Other operations such as 'quotBigNat' may return 'nullBigNat' as--- well as a dummy/place-holder value instead of 'undefined' since we--- can't throw exceptions. But that behaviour should not be relied--- upon.------ NB: @isValidBigNat# nullBigNat@ is false-nullBigNat :: BigNat-nullBigNat = runS (newBigNat# 0# >>= unsafeFreezeBigNat#)-{-# NOINLINE nullBigNat #-}---- | Test for special 0-sized 'BigNat' representing underflows.-isNullBigNat# :: BigNat -> Int#-isNullBigNat# (BN# ba#) = sizeofByteArray# ba# ==# 0#---- | Construct 1-limb 'BigNat' from 'Word#'-wordToBigNat :: Word# -> BigNat-wordToBigNat 0## = zeroBigNat-wordToBigNat 1## = oneBigNat-wordToBigNat w#-  | isTrue# (not# w# `eqWord#` 0##) = czeroBigNat-  | True = runS $ do-    mbn <- newBigNat# 1#-    _ <- svoid (writeBigNat# mbn 0# w#)-    unsafeFreezeBigNat# mbn---- | Construct BigNat from 2 limbs.--- The first argument is the most-significant limb.-wordToBigNat2 :: Word# -> Word# -> BigNat-wordToBigNat2 0## lw# = wordToBigNat lw#-wordToBigNat2 hw# lw# = runS $ do-    mbn <- newBigNat# 2#-    _ <- svoid (writeBigNat# mbn 0# lw#)-    _ <- svoid (writeBigNat# mbn 1# hw#)-    unsafeFreezeBigNat# mbn--plusBigNat :: BigNat -> BigNat -> BigNat-plusBigNat x y-  | isTrue# (eqBigNatWord# x 0##) = y-  | isTrue# (eqBigNatWord# y 0##) = x-  | isTrue# (nx# >=# ny#) = go x nx# y ny#-  | True                  = go y ny# x nx#-  where-    go (BN# a#) na# (BN# b#) nb# = runS $ do-        mbn@(MBN# mba#) <- newBigNat# na#-        (W# c#) <- liftIO (c_mpn_add mba# a# na# b# nb#)-        case c# of-              0## -> unsafeFreezeBigNat# mbn-              _   -> unsafeSnocFreezeBigNat# mbn c#--    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y--plusBigNatWord :: BigNat -> GmpLimb# -> BigNat-plusBigNatWord x          0## = x-plusBigNatWord x@(BN# x#) y# = runS $ do-    mbn@(MBN# mba#) <- newBigNat# nx#-    (W# c#) <- liftIO (c_mpn_add_1 mba# x# nx# y#)-    case c# of-        0## -> unsafeFreezeBigNat# mbn-        _   -> unsafeSnocFreezeBigNat# mbn c#-  where-    nx# = sizeofBigNat# x---- | Returns 'nullBigNat' (see 'isNullBigNat#') in case of underflow-minusBigNat :: BigNat -> BigNat -> BigNat-minusBigNat x@(BN# x#) y@(BN# y#)-  | isZeroBigNat y = x-  | isTrue# (nx# >=# ny#) = runS $ do-    mbn@(MBN# mba#) <- newBigNat# nx#-    (W# b#) <- liftIO (c_mpn_sub mba# x# nx# y# ny#)-    case b# of-        0## -> unsafeRenormFreezeBigNat# mbn-        _   -> return nullBigNat--  | True = nullBigNat-  where-    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y---- | Returns 'nullBigNat' (see 'isNullBigNat#') in case of underflow-minusBigNatWord :: BigNat -> GmpLimb# -> BigNat-minusBigNatWord x 0## = x-minusBigNatWord x@(BN# x#) y# = runS $ do-    mbn@(MBN# mba#) <- newBigNat# nx#-    (W# b#) <- liftIO $ c_mpn_sub_1 mba# x# nx# y#-    case b# of-        0## -> unsafeRenormFreezeBigNat# mbn-        _   -> return nullBigNat-  where-    nx# = sizeofBigNat# x---timesBigNat :: BigNat -> BigNat -> BigNat-timesBigNat x y-  | isZeroBigNat x = zeroBigNat-  | isZeroBigNat y = zeroBigNat-  | isTrue# (nx# >=# ny#) = go x nx# y ny#-  | True                  = go y ny# x nx#-  where-    go (BN# a#) na# (BN# b#) nb# = runS $ do-        let n# = nx# +# ny#-        mbn@(MBN# mba#) <- newBigNat# n#-        (W# msl#) <- liftIO (c_mpn_mul mba# a# na# b# nb#)-        case msl# of-              0## -> unsafeShrinkFreezeBigNat# mbn (n# -# 1#)-              _   -> unsafeFreezeBigNat# mbn--    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y---- | Square 'BigNat'-sqrBigNat :: BigNat -> BigNat-sqrBigNat x-  | isZeroBigNat x = zeroBigNat-  -- TODO: 1-limb BigNats below sqrt(maxBound::GmpLimb)-sqrBigNat x = timesBigNat x x -- TODO: mpn_sqr--timesBigNatWord :: BigNat -> GmpLimb# -> BigNat-timesBigNatWord !_ 0## = zeroBigNat-timesBigNatWord x 1## = x-timesBigNatWord x@(BN# x#) y#-  | isTrue# (nx# ==# 1#) =-      let (# !h#, !l# #) = timesWord2# (bigNatToWord x) y#-      in wordToBigNat2 h# l#-  | True = runS $ do-        mbn@(MBN# mba#) <- newBigNat# nx#-        (W# msl#) <- liftIO (c_mpn_mul_1 mba# x# nx# y#)-        case msl# of-              0## -> unsafeFreezeBigNat# mbn-              _   -> unsafeSnocFreezeBigNat# mbn msl#--  where-    nx# = sizeofBigNat# x---- | Specialised version of------ > bitBigNat = shiftLBigNat (wordToBigNat 1##)------ avoiding a few redundant allocations-bitBigNat :: Int# -> BigNat-bitBigNat i#-  | isTrue# (i#  <#  0#) = zeroBigNat -- or maybe 'nullBigNat'?-  | isTrue# (i# ==#  0#) = oneBigNat-  | True = runS $ do-      mbn@(MBN# mba#) <- newBigNat# (li# +# 1#)-      -- FIXME: do we really need to zero-init MBAs returned by 'newByteArray#'?-      -- clear all limbs (except for the most-significant limb)-      _ <- svoid (setByteArray# mba# 0# (li# `uncheckedIShiftL#` GMP_LIMB_SHIFT#) 0#)-      -- set single bit in most-significant limb-      _ <- svoid (writeBigNat# mbn li# (uncheckedShiftL# 1## bi#))-      unsafeFreezeBigNat# mbn-  where-    (# li#, bi# #) = quotRemInt# i# GMP_LIMB_BITS#--testBitBigNat :: BigNat -> Int# -> Bool-testBitBigNat bn i#-  | isTrue# (i#  <#  0#) = False-  | isTrue# (li# <# nx#) = isTrue# (testBitWord# (indexBigNat# bn li#) bi#)-  | True                 = False-  where-    (# li#, bi# #) = quotRemInt# i# GMP_LIMB_BITS#-    nx# = sizeofBigNat# bn--testBitNegBigNat :: BigNat -> Int# -> Bool-testBitNegBigNat bn i#-  | isTrue# (i#  <#  0#)  = False-  | isTrue# (li# >=# nx#) = True-  | allZ li# = isTrue# ((testBitWord#-                         (indexBigNat# bn li# `minusWord#` 1##) bi#) ==# 0#)-  | True     = isTrue# ((testBitWord# (indexBigNat# bn li#) bi#) ==# 0#)-  where-    (# li#, bi# #) = quotRemInt# i# GMP_LIMB_BITS#-    nx# = sizeofBigNat# bn--    allZ 0# = True-    allZ j | isTrue# (indexBigNat# bn (j -# 1#) `eqWord#` 0##) = allZ (j -# 1#)-           | True                 = False--popCountBigNat :: BigNat -> Int#-popCountBigNat bn@(BN# ba#) = word2Int# (c_mpn_popcount ba# (sizeofBigNat# bn))---shiftLBigNat :: BigNat -> Int# -> BigNat-shiftLBigNat x 0# = x-shiftLBigNat x _ | isZeroBigNat x = zeroBigNat-shiftLBigNat x@(BN# xba#) n# = runS $ do-    ymbn@(MBN# ymba#) <- newBigNat# yn#-    W# ymsl <- liftIO (c_mpn_lshift ymba# xba# xn# (int2Word# n#))-    case ymsl of-        0## -> unsafeShrinkFreezeBigNat# ymbn (yn# -# 1#)-        _   -> unsafeFreezeBigNat# ymbn-  where-    xn# = sizeofBigNat# x-    yn# = xn# +# nlimbs# +# (nbits# /=# 0#)-    (# nlimbs#, nbits# #) = quotRemInt# n# GMP_LIMB_BITS#----shiftRBigNat :: BigNat -> Int# -> BigNat-shiftRBigNat x 0# = x-shiftRBigNat x _ | isZeroBigNat x = zeroBigNat-shiftRBigNat x@(BN# xba#) n#-  | isTrue# (nlimbs# >=# xn#) = zeroBigNat-  | True = runS $ do-      ymbn@(MBN# ymba#) <- newBigNat# yn#-      W# ymsl <- liftIO (c_mpn_rshift ymba# xba# xn# (int2Word# n#))-      case ymsl of-          0## -> unsafeRenormFreezeBigNat# ymbn -- may shrink more than one-          _   -> unsafeFreezeBigNat# ymbn-  where-    xn# = sizeofBigNat# x-    yn# = xn# -# nlimbs#-    nlimbs# = quotInt# n# GMP_LIMB_BITS#--shiftRNegBigNat :: BigNat -> Int# -> BigNat-shiftRNegBigNat x 0# = x-shiftRNegBigNat x _ | isZeroBigNat x = zeroBigNat-shiftRNegBigNat x@(BN# xba#) n#-  | isTrue# (nlimbs# >=# xn#) = zeroBigNat-  | True = runS $ do-      ymbn@(MBN# ymba#) <- newBigNat# yn#-      W# ymsl <- liftIO (c_mpn_rshift_2c ymba# xba# xn# (int2Word# n#))-      case ymsl of-          0## -> unsafeRenormFreezeBigNat# ymbn -- may shrink more than one-          _   -> unsafeFreezeBigNat# ymbn-  where-    xn# = sizeofBigNat# x-    yn# = xn# -# nlimbs#-    nlimbs# = quotInt# n# GMP_LIMB_BITS#---orBigNat :: BigNat -> BigNat -> BigNat-orBigNat x@(BN# x#) y@(BN# y#)-  | isZeroBigNat x = y-  | isZeroBigNat y = x-  | isTrue# (nx# >=# ny#) = runS (ior' x# nx# y# ny#)-  | True                  = runS (ior' y# ny# x# nx#)-  where-    ior' a# na# b# nb# = do -- na >= nb-        mbn@(MBN# mba#) <- newBigNat# na#-        _ <- liftIO (c_mpn_ior_n mba# a# b# nb#)-        _ <- case isTrue# (na# ==# nb#) of-            False -> svoid (copyWordArray# a# nb# mba# nb# (na# -# nb#))-            True  -> return ()-        unsafeFreezeBigNat# mbn--    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y---xorBigNat :: BigNat -> BigNat -> BigNat-xorBigNat x@(BN# x#) y@(BN# y#)-  | isZeroBigNat x = y-  | isZeroBigNat y = x-  | isTrue# (nx# >=# ny#) = runS (xor' x# nx# y# ny#)-  | True                  = runS (xor' y# ny# x# nx#)-  where-    xor' a# na# b# nb# = do -- na >= nb-        mbn@(MBN# mba#) <- newBigNat# na#-        _ <- liftIO (c_mpn_xor_n mba# a# b# nb#)-        case isTrue# (na# ==# nb#) of-            False -> do _ <- svoid (copyWordArray# a# nb# mba# nb# (na# -# nb#))-                        unsafeFreezeBigNat# mbn-            True  -> unsafeRenormFreezeBigNat# mbn--    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y---- | aka @\x y -> x .&. (complement y)@-andnBigNat :: BigNat -> BigNat -> BigNat-andnBigNat x@(BN# x#) y@(BN# y#)-  | isZeroBigNat x = zeroBigNat-  | isZeroBigNat y = x-  | True = runS $ do-      mbn@(MBN# mba#) <- newBigNat# nx#-      _ <- liftIO (c_mpn_andn_n mba# x# y# n#)-      _ <- case isTrue# (nx# ==# n#) of-            False -> svoid (copyWordArray# x# n# mba# n# (nx# -# n#))-            True  -> return ()-      unsafeRenormFreezeBigNat# mbn-  where-    n# | isTrue# (nx# <# ny#) = nx#-       | True                 = ny#-    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y---andBigNat :: BigNat -> BigNat -> BigNat-andBigNat x@(BN# x#) y@(BN# y#)-  | isZeroBigNat x = zeroBigNat-  | isZeroBigNat y = zeroBigNat-  | True = runS $ do-      mbn@(MBN# mba#) <- newBigNat# n#-      _ <- liftIO (c_mpn_and_n mba# x# y# n#)-      unsafeRenormFreezeBigNat# mbn-  where-    n# | isTrue# (nx# <# ny#) = nx#-       | True                 = ny#-    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y---- | If divisor is zero, @(\# 'nullBigNat', 'nullBigNat' \#)@ is returned-quotRemBigNat :: BigNat -> BigNat -> (# BigNat,BigNat #)-quotRemBigNat n@(BN# nba#) d@(BN# dba#)-  | isZeroBigNat d     = (# nullBigNat, nullBigNat #)-  | eqBigNatWord d 1## = (# n, zeroBigNat #)-  | n < d              = (# zeroBigNat, n #)-  | True = case runS go of (!q,!r) -> (# q, r #)-  where-    nn# = sizeofBigNat# n-    dn# = sizeofBigNat# d-    qn# = 1# +# nn# -# dn#-    rn# = dn#--    go = do-      qmbn@(MBN# qmba#) <- newBigNat# qn#-      rmbn@(MBN# rmba#) <- newBigNat# rn#--      _ <- liftIO (c_mpn_tdiv_qr qmba# rmba# 0# nba# nn# dba# dn#)--      q <- unsafeRenormFreezeBigNat# qmbn-      r <- unsafeRenormFreezeBigNat# rmbn-      return (q, r)--quotBigNat :: BigNat -> BigNat -> BigNat-quotBigNat n@(BN# nba#) d@(BN# dba#)-  | isZeroBigNat d     = nullBigNat-  | eqBigNatWord d 1## = n-  | n < d              = zeroBigNat-  | True = runS $ do-      let nn# = sizeofBigNat# n-      let dn# = sizeofBigNat# d-      let qn# = 1# +# nn# -# dn#-      qmbn@(MBN# qmba#) <- newBigNat# qn#-      _ <- liftIO (c_mpn_tdiv_q qmba# nba# nn# dba# dn#)-      unsafeRenormFreezeBigNat# qmbn--remBigNat :: BigNat -> BigNat -> BigNat-remBigNat n@(BN# nba#) d@(BN# dba#)-  | isZeroBigNat d     = nullBigNat-  | eqBigNatWord d 1## = zeroBigNat-  | n < d              = n-  | True = runS $ do-      let nn# = sizeofBigNat# n-      let dn# = sizeofBigNat# d-      rmbn@(MBN# rmba#) <- newBigNat# dn#-      _ <- liftIO (c_mpn_tdiv_r rmba# nba# nn# dba# dn#)-      unsafeRenormFreezeBigNat# rmbn---- | Note: Result of div/0 undefined-quotRemBigNatWord :: BigNat -> GmpLimb# -> (# BigNat, GmpLimb# #)-quotRemBigNatWord !_           0## = (# nullBigNat, 0## #)-quotRemBigNatWord n            1## = (# n,          0## #)-quotRemBigNatWord n@(BN# nba#) d# = case compareBigNatWord n d# of-    LT -> (# zeroBigNat, bigNatToWord n #)-    EQ -> (# oneBigNat, 0## #)-    GT -> case runS go of (!q,!(W# r#)) -> (# q, r# #) -- TODO: handle word/word-  where-    go = do-      let nn# = sizeofBigNat# n-      qmbn@(MBN# qmba#) <- newBigNat# nn#-      r <- liftIO (c_mpn_divrem_1 qmba# 0# nba# nn# d#)-      q <- unsafeRenormFreezeBigNat# qmbn-      return (q,r)--quotBigNatWord :: BigNat -> GmpLimb# -> BigNat-quotBigNatWord n d# = case inline quotRemBigNatWord n d# of (# q, _ #) -> q---- | div/0 not checked-remBigNatWord :: BigNat -> GmpLimb# -> Word#-remBigNatWord n@(BN# nba#) d# = c_mpn_mod_1 nba# (sizeofBigNat# n) d#--gcdBigNatWord :: BigNat -> Word# -> Word#-gcdBigNatWord bn@(BN# ba#) = c_mpn_gcd_1# ba# (sizeofBigNat# bn)--gcdBigNat :: BigNat -> BigNat -> BigNat-gcdBigNat x@(BN# x#) y@(BN# y#)-  | isZeroBigNat x = y-  | isZeroBigNat y = x-  | isTrue# (nx# >=# ny#) = runS (gcd' x# nx# y# ny#)-  | True                  = runS (gcd' y# ny# x# nx#)-  where-    gcd' a# na# b# nb# = do -- na >= nb-        mbn@(MBN# mba#) <- newBigNat# nb#-        I# rn'# <- liftIO (c_mpn_gcd# mba# a# na# b# nb#)-        let rn# = narrowGmpSize# rn'#-        case isTrue# (rn# ==# nb#) of-            False -> unsafeShrinkFreezeBigNat# mbn rn#-            True  -> unsafeFreezeBigNat# mbn--    nx# = sizeofBigNat# x-    ny# = sizeofBigNat# y---- | Extended euclidean algorithm.------ For @/a/@ and @/b/@, compute their greatest common divisor @/g/@--- and the coefficient @/s/@ satisfying @/a//s/ + /b//t/ = /g/@.------ @since 0.5.1.0-{-# NOINLINE gcdExtInteger #-}-gcdExtInteger :: Integer -> Integer -> (# Integer, Integer #)-gcdExtInteger a b = case gcdExtSBigNat a' b' of-    (# g, s #) -> let !g' = bigNatToInteger  g-                      !s' = sBigNatToInteger s-                  in (# g', s' #)-  where-    a' = integerToSBigNat a-    b' = integerToSBigNat b---- internal helper-gcdExtSBigNat :: SBigNat -> SBigNat -> (# BigNat, SBigNat #)-gcdExtSBigNat x y = case runS go of (g,s) -> (# g, s #)-  where-    go = do-        g@(MBN# g#) <- newBigNat# gn0#-        s@(MBN# s#) <- newBigNat# (absI# xn#)-        I# ssn_# <- liftIO (integer_gmp_gcdext# s# g# x# xn# y# yn#)-        let ssn# = narrowGmpSize# ssn_#-            sn#  = absI# ssn#-        s' <- unsafeShrinkFreezeBigNat# s sn#-        g' <- unsafeRenormFreezeBigNat# g-        case isTrue# (ssn# >=# 0#) of-            False -> return ( g', NegBN s' )-            True  -> return ( g', PosBN s' )--    !(BN# x#) = absSBigNat x-    !(BN# y#) = absSBigNat y-    xn# = ssizeofSBigNat# x-    yn# = ssizeofSBigNat# y--    gn0# = minI# (absI# xn#) (absI# yn#)--------------------------------------------------------------------------------- modular exponentiation---- | \"@'powModInteger' /b/ /e/ /m/@\" computes base @/b/@ raised to--- exponent @/e/@ modulo @abs(/m/)@.------ Negative exponents are supported if an inverse modulo @/m/@--- exists.------ __Warning__: It's advised to avoid calling this primitive with--- negative exponents unless it is guaranteed the inverse exists, as--- failure to do so will likely cause program abortion due to a--- divide-by-zero fault. See also 'recipModInteger'.------ Future versions of @integer_gmp@ may not support negative @/e/@--- values anymore.------ @since 0.5.1.0-{-# NOINLINE powModInteger #-}-powModInteger :: Integer -> Integer -> Integer -> Integer-powModInteger (S# b#) (S# e#) (S# m#)-  | isTrue# (b# >=# 0#), isTrue# (e# >=# 0#)-  = wordToInteger (powModWord (int2Word# b#) (int2Word# e#)-                              (int2Word# (absI# m#)))-powModInteger b e m = case m of-    (S# m#) -> wordToInteger (powModSBigNatWord b' e' (int2Word# (absI# m#)))-    (Jp# m') -> bigNatToInteger (powModSBigNat b' e' m')-    (Jn# m') -> bigNatToInteger (powModSBigNat b' e' m')-  where-    b' = integerToSBigNat b-    e' = integerToSBigNat e---- | Version of 'powModInteger' operating on 'BigNat's------ @since 1.0.0.0-powModBigNat :: BigNat -> BigNat -> BigNat -> BigNat-powModBigNat b e m = inline powModSBigNat (PosBN b) (PosBN e) m---- | Version of 'powModInteger' for 'Word#'-sized moduli------ @since 1.0.0.0-powModBigNatWord :: BigNat -> BigNat -> GmpLimb# -> GmpLimb#-powModBigNatWord b e m# = inline powModSBigNatWord (PosBN b) (PosBN e) m#---- | Version of 'powModInteger' operating on 'Word#'s------ @since 1.0.0.0-foreign import ccall unsafe "integer_gmp_powm_word"-  powModWord :: GmpLimb# -> GmpLimb# -> GmpLimb# -> GmpLimb#---- internal non-exported helper-powModSBigNat :: SBigNat -> SBigNat -> BigNat -> BigNat-powModSBigNat b e m@(BN# m#) = runS $ do-    r@(MBN# r#) <- newBigNat# mn#-    I# rn_# <- liftIO (integer_gmp_powm# r# b# bn# e# en# m# mn#)-    let rn# = narrowGmpSize# rn_#-    case isTrue# (rn# ==# mn#) of-        False -> unsafeShrinkFreezeBigNat# r rn#-        True  -> unsafeFreezeBigNat# r-  where-    !(BN# b#) = absSBigNat b-    !(BN# e#) = absSBigNat e-    bn# = ssizeofSBigNat# b-    en# = ssizeofSBigNat# e-    mn# = sizeofBigNat# m--foreign import ccall unsafe "integer_gmp_powm"-  integer_gmp_powm# :: MutableByteArray# RealWorld-                       -> ByteArray# -> GmpSize# -> ByteArray# -> GmpSize#-                       -> ByteArray# -> GmpSize# -> IO GmpSize---- internal non-exported helper-powModSBigNatWord :: SBigNat -> SBigNat -> GmpLimb# -> GmpLimb#-powModSBigNatWord b e m# = integer_gmp_powm1# b# bn# e# en# m#-  where-    !(BN# b#) = absSBigNat b-    !(BN# e#) = absSBigNat e-    bn# = ssizeofSBigNat# b-    en# = ssizeofSBigNat# e--foreign import ccall unsafe "integer_gmp_powm1"-  integer_gmp_powm1# :: ByteArray# -> GmpSize# -> ByteArray# -> GmpSize#-                        -> GmpLimb# -> GmpLimb#----- | \"@'recipModInteger' /x/ /m/@\" computes the inverse of @/x/@ modulo @/m/@. If--- the inverse exists, the return value @/y/@ will satisfy @0 < /y/ <--- abs(/m/)@, otherwise the result is @0@.------ @since 0.5.1.0-{-# NOINLINE recipModInteger #-}-recipModInteger :: Integer -> Integer -> Integer-recipModInteger (S# x#) (S# m#)-  | isTrue# (x# >=# 0#)-  = wordToInteger (recipModWord (int2Word# x#) (int2Word# (absI# m#)))-recipModInteger x m = bigNatToInteger (recipModSBigNat x' m')-  where-    x' = integerToSBigNat x-    m' = absSBigNat (integerToSBigNat m)---- | Version of 'recipModInteger' operating on 'BigNat's------ @since 1.0.0.0-recipModBigNat :: BigNat -> BigNat -> BigNat-recipModBigNat x m = inline recipModSBigNat (PosBN x) m---- | Version of 'recipModInteger' operating on 'Word#'s------ @since 1.0.0.0-foreign import ccall unsafe "integer_gmp_invert_word"-  recipModWord :: GmpLimb# -> GmpLimb# -> GmpLimb#---- internal non-exported helper-recipModSBigNat :: SBigNat -> BigNat -> BigNat-recipModSBigNat x m@(BN# m#) = runS $ do-    r@(MBN# r#) <- newBigNat# mn#-    I# rn_# <- liftIO (integer_gmp_invert# r# x# xn# m# mn#)-    let rn# = narrowGmpSize# rn_#-    case isTrue# (rn# ==# mn#) of-        False -> unsafeShrinkFreezeBigNat# r rn#-        True  -> unsafeFreezeBigNat# r-  where-    !(BN# x#) = absSBigNat x-    xn# = ssizeofSBigNat# x-    mn# = sizeofBigNat# m--foreign import ccall unsafe "integer_gmp_invert"-  integer_gmp_invert# :: MutableByteArray# RealWorld-                         -> ByteArray# -> GmpSize#-                         -> ByteArray# -> GmpSize# -> IO GmpSize--------------------------------------------------------------------------------- Conversions to/from floating point--decodeDoubleInteger :: Double# -> (# Integer, Int# #)--- decodeDoubleInteger 0.0## = (# S# 0#, 0# #)-#if WORD_SIZE_IN_BITS == 64-decodeDoubleInteger x = case decodeDouble_Int64# x of-                          (# m#, e# #) -> (# S# m#, e# #)-#elif WORD_SIZE_IN_BITS == 32-decodeDoubleInteger x = case decodeDouble_Int64# x of-                          (# m#, e# #) -> (# int64ToInteger m#, e# #)-#endif-{-# CONSTANT_FOLDED decodeDoubleInteger #-}---- provided by GHC's RTS-foreign import ccall unsafe "__int_encodeDouble"-  int_encodeDouble# :: Int# -> Int# -> Double#--encodeDoubleInteger :: Integer -> Int# -> Double#-encodeDoubleInteger (S# m#) 0# = int2Double# m#-encodeDoubleInteger (S# m#) e# = int_encodeDouble# m# e#-encodeDoubleInteger (Jp# bn@(BN# bn#)) e#-    = c_mpn_get_d bn# (sizeofBigNat# bn) e#-encodeDoubleInteger (Jn# bn@(BN# bn#)) e#-    = c_mpn_get_d bn# (negateInt# (sizeofBigNat# bn)) e#-{-# CONSTANT_FOLDED encodeDoubleInteger #-}---- double integer_gmp_mpn_get_d (const mp_limb_t sp[], const mp_size_t sn)-foreign import ccall unsafe "integer_gmp_mpn_get_d"-  c_mpn_get_d :: ByteArray# -> GmpSize# -> Int# -> Double#--doubleFromInteger :: Integer -> Double#-doubleFromInteger (S# m#) = int2Double# m#-doubleFromInteger (Jp# bn@(BN# bn#))-    = c_mpn_get_d bn# (sizeofBigNat# bn) 0#-doubleFromInteger (Jn# bn@(BN# bn#))-    = c_mpn_get_d bn# (negateInt# (sizeofBigNat# bn)) 0#-{-# CONSTANT_FOLDED doubleFromInteger #-}---- TODO: Not sure if it's worth to write 'Float' optimized versions here-floatFromInteger :: Integer -> Float#-floatFromInteger i = double2Float# (doubleFromInteger i)--encodeFloatInteger :: Integer -> Int# -> Float#-encodeFloatInteger m e = double2Float# (encodeDoubleInteger m e)--------------------------------------------------------------------------------- FFI ccall imports--foreign import ccall unsafe "integer_gmp_gcd_word"-  gcdWord# :: GmpLimb# -> GmpLimb# -> GmpLimb#--foreign import ccall unsafe "integer_gmp_mpn_gcd_1"-  c_mpn_gcd_1# :: ByteArray# -> GmpSize# -> GmpLimb# -> GmpLimb#--foreign import ccall unsafe "integer_gmp_mpn_gcd"-  c_mpn_gcd# :: MutableByteArray# s -> ByteArray# -> GmpSize#-                -> ByteArray# -> GmpSize# -> IO GmpSize--foreign import ccall unsafe "integer_gmp_gcdext"-  integer_gmp_gcdext# :: MutableByteArray# s -> MutableByteArray# s-                         -> ByteArray# -> GmpSize#-                         -> ByteArray# -> GmpSize# -> IO GmpSize---- mp_limb_t mpn_add_1 (mp_limb_t *rp, const mp_limb_t *s1p, mp_size_t n,---                      mp_limb_t s2limb)-foreign import ccall unsafe "gmp.h __gmpn_add_1"-  c_mpn_add_1 :: MutableByteArray# s -> ByteArray# -> GmpSize# -> GmpLimb#-                 -> IO GmpLimb---- mp_limb_t mpn_sub_1 (mp_limb_t *rp, const mp_limb_t *s1p, mp_size_t n,---                      mp_limb_t s2limb)-foreign import ccall unsafe "gmp.h __gmpn_sub_1"-  c_mpn_sub_1 :: MutableByteArray# s -> ByteArray# -> GmpSize# -> GmpLimb#-                 -> IO GmpLimb---- mp_limb_t mpn_mul_1 (mp_limb_t *rp, const mp_limb_t *s1p, mp_size_t n,---                      mp_limb_t s2limb)-foreign import ccall unsafe "gmp.h __gmpn_mul_1"-  c_mpn_mul_1 :: MutableByteArray# s -> ByteArray# -> GmpSize# -> GmpLimb#-                 -> IO GmpLimb---- mp_limb_t mpn_add (mp_limb_t *rp, const mp_limb_t *s1p, mp_size_t s1n,---                    const mp_limb_t *s2p, mp_size_t s2n)-foreign import ccall unsafe "gmp.h __gmpn_add"-  c_mpn_add :: MutableByteArray# s -> ByteArray# -> GmpSize#-               -> ByteArray# -> GmpSize# -> IO GmpLimb---- mp_limb_t mpn_sub (mp_limb_t *rp, const mp_limb_t *s1p, mp_size_t s1n,---                    const mp_limb_t *s2p, mp_size_t s2n)-foreign import ccall unsafe "gmp.h __gmpn_sub"-  c_mpn_sub :: MutableByteArray# s -> ByteArray# -> GmpSize# -> ByteArray#-               -> GmpSize# -> IO GmpLimb---- mp_limb_t mpn_mul (mp_limb_t *rp, const mp_limb_t *s1p, mp_size_t s1n,---                    const mp_limb_t *s2p, mp_size_t s2n)-foreign import ccall unsafe "gmp.h __gmpn_mul"-  c_mpn_mul :: MutableByteArray# s -> ByteArray# -> GmpSize# -> ByteArray#-               -> GmpSize# -> IO GmpLimb---- int mpn_cmp (const mp_limb_t *s1p, const mp_limb_t *s2p, mp_size_t n)-foreign import ccall unsafe "gmp.h __gmpn_cmp"-  c_mpn_cmp :: ByteArray# -> ByteArray# -> GmpSize# -> CInt#---- void mpn_tdiv_qr (mp_limb_t *qp, mp_limb_t *rp, mp_size_t qxn,---                   const mp_limb_t *np, mp_size_t nn,---                   const mp_limb_t *dp, mp_size_t dn)-foreign import ccall unsafe "gmp.h __gmpn_tdiv_qr"-  c_mpn_tdiv_qr :: MutableByteArray# s -> MutableByteArray# s -> GmpSize#-                   -> ByteArray# -> GmpSize# -> ByteArray# -> GmpSize# -> IO ()--foreign import ccall unsafe "integer_gmp_mpn_tdiv_q"-  c_mpn_tdiv_q :: MutableByteArray# s -> ByteArray# -> GmpSize# -> ByteArray#-                  -> GmpSize# -> IO ()--foreign import ccall unsafe "integer_gmp_mpn_tdiv_r"-  c_mpn_tdiv_r :: MutableByteArray# s -> ByteArray# -> GmpSize# -> ByteArray#-                  -> GmpSize# -> IO ()---- mp_limb_t mpn_divrem_1 (mp_limb_t *r1p, mp_size_t qxn, mp_limb_t *s2p,---                         mp_size_t s2n, mp_limb_t s3limb)-foreign import ccall unsafe "gmp.h __gmpn_divrem_1"-  c_mpn_divrem_1 :: MutableByteArray# s -> GmpSize# -> ByteArray# -> GmpSize#-                    -> GmpLimb# -> IO GmpLimb---- mp_limb_t mpn_mod_1 (const mp_limb_t *s1p, mp_size_t s1n, mp_limb_t s2limb)-foreign import ccall unsafe "gmp.h __gmpn_mod_1"-  c_mpn_mod_1 :: ByteArray# -> GmpSize# -> GmpLimb# -> GmpLimb#---- mp_limb_t integer_gmp_mpn_rshift (mp_limb_t rp[], const mp_limb_t sp[],---                                   mp_size_t sn, mp_bitcnt_t count)-foreign import ccall unsafe "integer_gmp_mpn_rshift"-  c_mpn_rshift :: MutableByteArray# s -> ByteArray# -> GmpSize# -> GmpBitCnt#-                  -> IO GmpLimb---- mp_limb_t integer_gmp_mpn_rshift (mp_limb_t rp[], const mp_limb_t sp[],---                                   mp_size_t sn, mp_bitcnt_t count)-foreign import ccall unsafe "integer_gmp_mpn_rshift_2c"-  c_mpn_rshift_2c :: MutableByteArray# s -> ByteArray# -> GmpSize# -> GmpBitCnt#-                     -> IO GmpLimb---- mp_limb_t integer_gmp_mpn_lshift (mp_limb_t rp[], const mp_limb_t sp[],---                                   mp_size_t sn, mp_bitcnt_t count)-foreign import ccall unsafe "integer_gmp_mpn_lshift"-  c_mpn_lshift :: MutableByteArray# s -> ByteArray# -> GmpSize# -> GmpBitCnt#-                  -> IO GmpLimb---- void mpn_and_n (mp_limb_t *rp, const mp_limb_t *s1p, const mp_limb_t *s2p,---                 mp_size_t n)-foreign import ccall unsafe "integer_gmp_mpn_and_n"-  c_mpn_and_n :: MutableByteArray# s -> ByteArray# -> ByteArray# -> GmpSize#-                 -> IO ()---- void mpn_andn_n (mp_limb_t *rp, const mp_limb_t *s1p, const mp_limb_t *s2p,---                  mp_size_t n)-foreign import ccall unsafe "integer_gmp_mpn_andn_n"-  c_mpn_andn_n :: MutableByteArray# s -> ByteArray# -> ByteArray# -> GmpSize#-                  -> IO ()---- void mpn_ior_n (mp_limb_t *rp, const mp_limb_t *s1p, const mp_limb_t *s2p,---                 mp_size_t n)-foreign import ccall unsafe "integer_gmp_mpn_ior_n"-  c_mpn_ior_n :: MutableByteArray# s -> ByteArray# -> ByteArray# -> GmpSize#-                 -> IO ()---- void mpn_xor_n (mp_limb_t *rp, const mp_limb_t *s1p, const mp_limb_t *s2p,---                 mp_size_t n)-foreign import ccall unsafe "integer_gmp_mpn_xor_n"-  c_mpn_xor_n :: MutableByteArray# s -> ByteArray# -> ByteArray# -> GmpSize#-                 -> IO ()---- mp_bitcnt_t mpn_popcount (const mp_limb_t *s1p, mp_size_t n)-foreign import ccall unsafe "gmp.h __gmpn_popcount"-  c_mpn_popcount :: ByteArray# -> GmpSize# -> GmpBitCnt#--------------------------------------------------------------------------------- BigNat-wrapped ByteArray#-primops---- | Return number of limbs contained in 'BigNat'.-sizeofBigNat# :: BigNat -> GmpSize#-sizeofBigNat# (BN# x#)-    = sizeofByteArray# x# `uncheckedIShiftRL#` GMP_LIMB_SHIFT#--data MutBigNat s = MBN# !(MutableByteArray# s)--getSizeofMutBigNat# :: MutBigNat s -> State# s -> (# State# s, GmpSize# #)---getSizeofMutBigNat# :: MutBigNat s -> S s GmpSize#-getSizeofMutBigNat# (MBN# x#) s =-    case getSizeofMutableByteArray# x# s of-        (# s', n# #) -> (# s', n# `uncheckedIShiftRL#` GMP_LIMB_SHIFT# #)--newBigNat# :: GmpSize# -> S s (MutBigNat s)-newBigNat# limbs# s =-    case newByteArray# (limbs# `uncheckedIShiftL#` GMP_LIMB_SHIFT#) s of-        (# s', mba# #) -> (# s', MBN# mba# #)--writeBigNat# :: MutBigNat s -> GmpSize# -> GmpLimb# -> State# s -> State# s-writeBigNat# (MBN# mba#) = writeWordArray# mba#---- | Extract /n/-th (0-based) limb in 'BigNat'.--- /n/ must be less than size as reported by 'sizeofBigNat#'.-indexBigNat# :: BigNat -> GmpSize# -> GmpLimb#-indexBigNat# (BN# ba#) = indexWordArray# ba#--unsafeFreezeBigNat# :: MutBigNat s -> S s BigNat-unsafeFreezeBigNat# (MBN# mba#) s = case unsafeFreezeByteArray# mba# s of-                                      (# s', ba# #) -> (# s', BN# ba# #)--resizeMutBigNat# :: MutBigNat s -> GmpSize# -> S s (MutBigNat s)-resizeMutBigNat# (MBN# mba0#) nsz# s-  | isTrue# (bsz# ==# n#) = (# s', MBN# mba0# #)-  | True =-    case resizeMutableByteArray# mba0# bsz# s' of-        (# s'', mba# #) -> (# s'', MBN# mba# #)-  where-    bsz# = nsz# `uncheckedIShiftL#` GMP_LIMB_SHIFT#-    (# s', n# #) = getSizeofMutableByteArray# mba0# s--shrinkMutBigNat# :: MutBigNat s -> GmpSize# -> State# s -> State# s-shrinkMutBigNat# (MBN# mba0#) nsz# s-  | isTrue# (bsz# ==# n#) = s' -- no-op-  | True                  = shrinkMutableByteArray# mba0# bsz# s'-  where-    bsz# = nsz# `uncheckedIShiftL#` GMP_LIMB_SHIFT#-    (# s', n# #) = getSizeofMutableByteArray# mba0# s--unsafeSnocFreezeBigNat# :: MutBigNat s -> GmpLimb# -> S s BigNat-unsafeSnocFreezeBigNat# mbn0@(MBN# mba0#) limb# s = go s'-  where-    n#   = nb0# `uncheckedIShiftRL#` GMP_LIMB_SHIFT#-    (# s', nb0# #) = getSizeofMutableByteArray# mba0# s-    go = do-        (MBN# mba#) <- resizeMutBigNat# mbn0 (n# +# 1#)-        _ <- svoid (writeWordArray# mba# n# limb#)-        unsafeFreezeBigNat# (MBN# mba#)---- | May shrink underlyng 'ByteArray#' if needed to satisfy BigNat invariant-unsafeRenormFreezeBigNat# :: MutBigNat s -> S s BigNat-unsafeRenormFreezeBigNat# mbn s-  | isTrue# (n0# ==# 0#)  = (# s'', nullBigNat #)-  | isTrue# (n#  ==# 0#)  = (# s'', zeroBigNat #)-  | isTrue# (n#  ==# n0#) = (unsafeFreezeBigNat# mbn) s''-  | True                  = (unsafeShrinkFreezeBigNat# mbn n#) s''-  where-    (# s', n0# #) = getSizeofMutBigNat# mbn s-    (# s'', n# #) = normSizeofMutBigNat'# mbn n0# s'---- | Shrink MBN-unsafeShrinkFreezeBigNat# :: MutBigNat s -> GmpSize# -> S s BigNat-unsafeShrinkFreezeBigNat# x@(MBN# xmba) 1#-    = \s -> case readWordArray# xmba 0# s of-        (# s', w#   #) -> freezeOneLimb w# s'-  where-    freezeOneLimb 0## = return zeroBigNat-    freezeOneLimb 1## = return oneBigNat-    freezeOneLimb w# | isTrue# (not# w# `eqWord#` 0##) = return czeroBigNat-    freezeOneLimb _   = do-        _ <- svoid (shrinkMutBigNat# x 1#)-        unsafeFreezeBigNat# x-unsafeShrinkFreezeBigNat# x y# = do-    _ <- svoid (shrinkMutBigNat# x y#)-    unsafeFreezeBigNat# x---copyWordArray# :: ByteArray# -> Int# -> MutableByteArray# s -> Int# -> Int#-                  -> State# s -> State# s-copyWordArray# src src_ofs dst dst_ofs len-  = copyByteArray# src (src_ofs `uncheckedIShiftL#` GMP_LIMB_SHIFT#)-                   dst (dst_ofs `uncheckedIShiftL#` GMP_LIMB_SHIFT#)-                   (len `uncheckedIShiftL#` GMP_LIMB_SHIFT#)---- | Version of 'normSizeofMutBigNat'#' which scans all allocated 'MutBigNat#'-normSizeofMutBigNat# :: MutBigNat s -> State# s -> (# State# s, Int# #)-normSizeofMutBigNat# mbn@(MBN# mba) s = normSizeofMutBigNat'# mbn sz# s'-  where-    (# s', n# #) = getSizeofMutableByteArray# mba s-    sz# = n# `uncheckedIShiftRA#` GMP_LIMB_SHIFT#---- | Find most-significant non-zero limb and return its index-position--- plus one. Start scanning downward from the initial limb-size--- (i.e. start-index plus one) given as second argument.------ NB: The 'normSizeofMutBigNat' of 'zeroBigNat' would be @0#@-normSizeofMutBigNat'# :: MutBigNat s -> GmpSize#-                         -> State# s -> (# State# s, GmpSize# #)-normSizeofMutBigNat'# (MBN# mba) = go-  where-    go  0# s = (# s, 0# #)-    go i0# s = case readWordArray# mba (i0# -# 1#) s of-        (# s', 0## #) -> go (i0# -# 1#) s'-        (# s', _  #) -> (# s', i0# #)---- | Construct 'BigNat' from existing 'ByteArray#' containing /n/--- 'GmpLimb's in least-significant-first order.------ If possible 'ByteArray#', will be used directly (i.e. shared--- /without/ cloning the 'ByteArray#' into a newly allocated one)------ Note: size parameter (times @sizeof(GmpLimb)@) must be less or--- equal to its 'sizeofByteArray#'.-byteArrayToBigNat# :: ByteArray# -> GmpSize# -> BigNat-byteArrayToBigNat# ba# n0#-  | isTrue# (n#  ==# 0#)    = zeroBigNat-  | isTrue# (baszr# ==# 0#) -- i.e. ba# is multiple of limb-size-  , isTrue# (baszq# ==# n#) = (BN# ba#)-  | True = runS $ \s ->-      let (# s', mbn@(MBN# mba#) #) = newBigNat# n# s-          (# s'', ba_sz# #) = getSizeofMutableByteArray# mba# s'-          go = do _ <- svoid (copyByteArray# ba# 0# mba# 0# ba_sz# )-                  unsafeFreezeBigNat# mbn-      in go s''-  where-    (# baszq#, baszr# #) = quotRemInt# (sizeofByteArray# ba#) GMP_LIMB_BYTES#--    n#  = fmssl (n0# -# 1#)--    -- find most signifcant set limb, return normalized size-    fmssl i#-      | isTrue# (i# <# 0#)                             = 0#-      | isTrue# (neWord# (indexWordArray# ba# i#) 0##) = i# +# 1#-      | True                                           = fmssl (i# -# 1#)---- | Read 'Integer' (without sign) from memory location at @/addr/@ in--- base-256 representation.------ @'importIntegerFromAddr' /addr/ /size/ /msbf/@------ See description of 'importIntegerFromByteArray' for more details.------ @since 1.0.0.0-importIntegerFromAddr :: Addr# -> Word# -> Int# -> IO Integer-importIntegerFromAddr addr len msbf = IO $ do-    bn <- liftIO (importBigNatFromAddr addr len msbf)-    return (bigNatToInteger bn)---- | Version of 'importIntegerFromAddr' constructing a 'BigNat'-importBigNatFromAddr :: Addr# -> Word# -> Int# -> IO BigNat-importBigNatFromAddr _ 0## _ = IO (\s -> (# s, zeroBigNat #))-importBigNatFromAddr addr len0 1# = IO $ do -- MSBF-    W# ofs <- liftIO (c_scan_nzbyte_addr addr 0## len0)-    let len = len0 `minusWord#` ofs-        addr' = addr `plusAddr#` (word2Int# ofs)-    importBigNatFromAddr# addr' len 1#-importBigNatFromAddr addr len0 _ = IO $ do -- LSBF-    W# len <- liftIO (c_rscan_nzbyte_addr addr 0## len0)-    importBigNatFromAddr# addr len 0#--foreign import ccall unsafe "integer_gmp_scan_nzbyte"-    c_scan_nzbyte_addr :: Addr# -> Word# -> Word# -> IO Word--foreign import ccall unsafe "integer_gmp_rscan_nzbyte"-    c_rscan_nzbyte_addr :: Addr# -> Word# -> Word# -> IO Word---- | Helper for 'importBigNatFromAddr'-importBigNatFromAddr# :: Addr# -> Word# -> Int# -> S RealWorld BigNat-importBigNatFromAddr# _ 0## _ = return zeroBigNat-importBigNatFromAddr# addr len msbf = do-    mbn@(MBN# mba#) <- newBigNat# n#-    () <- liftIO (c_mpn_import_addr mba# addr 0## len msbf)-    unsafeFreezeBigNat# mbn-  where-    -- n = ceiling(len / SIZEOF_HSWORD), i.e. number of limbs required-    n# = (word2Int# len +# (SIZEOF_HSWORD# -# 1#)) `quotInt#` SIZEOF_HSWORD#--foreign import ccall unsafe "integer_gmp_mpn_import"-    c_mpn_import_addr :: MutableByteArray# RealWorld -> Addr# -> Word# -> Word#-                      -> Int# -> IO ()---- | Read 'Integer' (without sign) from byte-array in base-256 representation.------ The call------ @'importIntegerFromByteArray' /ba/ /offset/ /size/ /msbf/@------ reads------ * @/size/@ bytes from the 'ByteArray#' @/ba/@ starting at @/offset/@------ * with most significant byte first if @/msbf/@ is @1#@ or least---   significant byte first if @/msbf/@ is @0#@, and------ * returns a new 'Integer'------ @since 1.0.0.0-importIntegerFromByteArray :: ByteArray# -> Word# -> Word# -> Int# -> Integer-importIntegerFromByteArray ba ofs len msbf-    = bigNatToInteger (importBigNatFromByteArray ba ofs len msbf)---- | Version of 'importIntegerFromByteArray' constructing a 'BigNat'-importBigNatFromByteArray :: ByteArray# -> Word# -> Word# -> Int# -> BigNat-importBigNatFromByteArray _  _    0##  _  = zeroBigNat-importBigNatFromByteArray ba ofs0 len0 1# = runS $ do -- MSBF-    W# ofs <- liftIO (c_scan_nzbyte_bytearray ba ofs0 len0)-    let len = (len0 `plusWord#` ofs0) `minusWord#` ofs-    importBigNatFromByteArray# ba ofs len 1#-importBigNatFromByteArray ba ofs  len0 _  = runS $ do -- LSBF-    W# len <- liftIO (c_rscan_nzbyte_bytearray ba ofs len0)-    importBigNatFromByteArray# ba ofs len 0#--foreign import ccall unsafe "integer_gmp_scan_nzbyte"-    c_scan_nzbyte_bytearray :: ByteArray# -> Word# -> Word# -> IO Word--foreign import ccall unsafe "integer_gmp_rscan_nzbyte"-    c_rscan_nzbyte_bytearray :: ByteArray# -> Word# -> Word# -> IO Word---- | Helper for 'importBigNatFromByteArray'-importBigNatFromByteArray# :: ByteArray# -> Word# -> Word# -> Int#-                           -> S RealWorld BigNat-importBigNatFromByteArray# _ _ 0## _ = return zeroBigNat-importBigNatFromByteArray# ba ofs len msbf = do-    mbn@(MBN# mba#) <- newBigNat# n#-    () <- liftIO (c_mpn_import_bytearray mba# ba ofs len msbf)-    unsafeFreezeBigNat# mbn-  where-    -- n = ceiling(len / SIZEOF_HSWORD), i.e. number of limbs required-    n# = (word2Int# len +# (SIZEOF_HSWORD# -# 1#)) `quotInt#` SIZEOF_HSWORD#--foreign import ccall unsafe "integer_gmp_mpn_import"-    c_mpn_import_bytearray :: MutableByteArray# RealWorld -> ByteArray# -> Word#-                           -> Word# -> Int# -> IO ()---- | Test whether all internal invariants are satisfied by 'BigNat' value------ Returns @1#@ if valid, @0#@ otherwise.------ This operation is mostly useful for test-suites and/or code which--- constructs 'Integer' values directly.-isValidBigNat# :: BigNat -> Int#-isValidBigNat# (BN# ba#)-  = (szq# ># 0#) `andI#` (szr# ==# 0#) `andI#` isNorm#-  where-    isNorm#-      | isTrue# (szq# ># 1#) = (indexWordArray# ba# (szq# -# 1#)) `neWord#` 0##-      | True                 = 1#--    sz# = sizeofByteArray# ba#--    (# szq#, szr# #) = quotRemInt# sz# GMP_LIMB_BYTES#---- | Version of 'nextPrimeInteger' operating on 'BigNat's------ @since 1.0.0.0-nextPrimeBigNat :: BigNat -> BigNat-nextPrimeBigNat bn@(BN# ba#) = runS $ do-    mbn@(MBN# mba#) <- newBigNat# n#-    (W# c#) <- liftIO (nextPrime# mba# ba# n#)-    case c# of-        0## -> unsafeFreezeBigNat# mbn-        _   -> unsafeSnocFreezeBigNat# mbn c#-  where-    n# = sizeofBigNat# bn--foreign import ccall unsafe "integer_gmp_next_prime"-  nextPrime# :: MutableByteArray# RealWorld -> ByteArray# -> GmpSize#-                -> IO GmpLimb--------------------------------------------------------------------------------- monadic combinators for low-level state threading--type S s a = State# s -> (# State# s, a #)--infixl 1 >>=-infixl 1 >>-infixr 0 $--{-# INLINE ($) #-}-($)                     :: (a -> b) -> a -> b-f $ x                   =  f x--{-# INLINE (>>=) #-}-(>>=) :: S s a -> (a -> S s b) -> S s b-(>>=) m k = \s -> case m s of (# s', a #) -> k a s'--{-# INLINE (>>) #-}-(>>) :: S s a -> S s b -> S s b-(>>) m k = \s -> case m s of (# s', _ #) -> k s'--{-# INLINE svoid #-}-svoid :: (State# s -> State# s) -> S s ()-svoid m0 = \s -> case m0 s of s' -> (# s', () #)--{-# INLINE return #-}-return :: a -> S s a-return a = \s -> (# s, a #)--{-# INLINE liftIO #-}-liftIO :: IO a -> S RealWorld a-liftIO (IO m) = m---- NB: equivalent of GHC.IO.unsafeDupablePerformIO, see notes there-runS :: S RealWorld a -> a-runS m = case runRW# m of (# _, a #) -> a---- stupid hack-fail :: [Char] -> S s a-fail s = return (raise# s)---------------------------------------------------------------------------------- | Internal helper type for "signed" 'BigNat's------ This is a useful abstraction for operations which support negative--- mp_size_t arguments.-data SBigNat = NegBN !BigNat | PosBN !BigNat---- | Absolute value of 'SBigNat'-absSBigNat :: SBigNat -> BigNat-absSBigNat (NegBN bn) = bn-absSBigNat (PosBN bn) = bn---- | /Signed/ limb count. Negative sizes denote negative integers-ssizeofSBigNat# :: SBigNat -> GmpSize#-ssizeofSBigNat# (NegBN bn) = negateInt# (sizeofBigNat# bn)-ssizeofSBigNat# (PosBN bn) = sizeofBigNat# bn---- | Construct 'SBigNat' from 'Int#' value-intToSBigNat# :: Int# -> SBigNat-intToSBigNat# 0#     = PosBN zeroBigNat-intToSBigNat# 1#     = PosBN oneBigNat-intToSBigNat# (-1#)  = NegBN oneBigNat-intToSBigNat# i# | isTrue# (i# ># 0#) = PosBN (wordToBigNat (int2Word# i#))-                 | True   = PosBN (wordToBigNat (int2Word# (negateInt# i#)))---- | Convert 'Integer' into 'SBigNat'-integerToSBigNat :: Integer -> SBigNat-integerToSBigNat (S#  i#) = intToSBigNat# i#-integerToSBigNat (Jp# bn) = PosBN bn-integerToSBigNat (Jn# bn) = NegBN bn---- | Convert 'SBigNat' into 'Integer'-sBigNatToInteger :: SBigNat -> Integer-sBigNatToInteger (NegBN bn) = bigNatToNegInteger bn-sBigNatToInteger (PosBN bn) = bigNatToInteger bn--------------------------------------------------------------------------------- misc helpers, some of these should rather be primitives exported by ghc-prim--cmpW# :: Word# -> Word# -> Ordering-cmpW# x# y#-  | isTrue# (x# `ltWord#` y#) = LT-  | isTrue# (x# `eqWord#` y#) = EQ-  | True                      = GT-{-# INLINE cmpW# #-}--bitWord# :: Int# -> Word#-bitWord# = uncheckedShiftL# 1##-{-# INLINE bitWord# #-}--testBitWord# :: Word# -> Int# -> Int#-testBitWord# w# i# = (bitWord# i# `and#` w#) `neWord#` 0##-{-# INLINE testBitWord# #-}--popCntI# :: Int# -> Int#-popCntI# i# = word2Int# (popCnt# (int2Word# i#))-{-# INLINE popCntI# #-}---- branchless version-absI# :: Int# -> Int#-absI# i# = (i# `xorI#` nsign) -# nsign-  where-    -- nsign = negateInt# (i# <# 0#)-    nsign = uncheckedIShiftRA# i# (WORD_SIZE_IN_BITS# -# 1#)---- branchless version-sgnI# :: Int# -> Int#-sgnI# x# = (x# ># 0#) -# (x# <# 0#)--cmpI# :: Int# -> Int# -> Int#-cmpI# x# y# = (x# ># y#) -# (x# <# y#)--minI# :: Int# -> Int# -> Int#-minI# x# y# | isTrue# (x# <=# y#) = x#-            | True                = y#