packages feed

integer-gmp 0.5.1.0 → 1.1

raw patch · 25 files changed

Files

− GHC/Integer.lhs
@@ -1,66 +0,0 @@-\begin{code}-{-# LANGUAGE CPP, MagicHash, NoImplicitPrelude #-}---------------------------------------------------------------------------------- |--- Module      :  GHC.Integer--- Copyright   :  (c) The University of Glasgow 1994-2008--- License     :  see libraries/integer-gmp/LICENSE------ Maintainer  :  cvs-ghc@haskell.org--- Stability   :  internal--- Portability :  non-portable (GHC Extensions)------ The 'Integer' type.------ This module exposes the /portable/ 'Integer' API.  See--- "GHC.Integer.GMP.Internals" for the GMP-specific internal--- representation of 'Integer' as well as optimized GMP-specific--- operations.--------------------------------------------------------------------------------#include "MachDeps.h"--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,-    eqInteger#, neqInteger#,-    leInteger#, gtInteger#, ltInteger#, geInteger#,--    -- * Bit-operations-    andInteger, orInteger, xorInteger, complementInteger,-    shiftLInteger, shiftRInteger, testBitInteger,--    -- * Hashing-    hashInteger,- ) where--import GHC.Integer.Type--default ()-\end{code}-
− GHC/Integer/GMP/Internals.hs
@@ -1,40 +0,0 @@-{-# LANGUAGE NoImplicitPrelude #-}---- | 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(..)--      -- * Number theoretic functions-    , gcdInt-    , gcdInteger-    , gcdExtInteger-    , lcmInteger-    , nextPrimeInteger-    , testPrimeInteger--      -- * Exponentiation functions-    , powInteger-    , powModInteger-    , powModSecInteger-    , recipModInteger--    -- * Import/export functions-    , sizeInBaseInteger-    , importIntegerFromByteArray-    , importIntegerFromAddr-    , exportIntegerToMutableByteArray-    , exportIntegerToAddr-    ) where--import GHC.Integer.Type
− GHC/Integer/GMP/Prim.hs
@@ -1,372 +0,0 @@-{-# LANGUAGE BangPatterns, CPP, MagicHash, NoImplicitPrelude, UnboxedTuples-           , UnliftedFFITypes, GHCForeignImportPrim #-}-{-# OPTIONS_HADDOCK hide #-}--#include "MachDeps.h"-module GHC.Integer.GMP.Prim (-    MPZ#,--    cmpInteger#,-    cmpIntegerInt#,--    plusInteger#,-    plusIntegerInt#,-    minusInteger#,-    minusIntegerInt#,-    timesInteger#,-    timesIntegerInt#,--    quotRemInteger#,-    quotRemIntegerWord#,-    quotInteger#,-    quotIntegerWord#,-    remInteger#,-    remIntegerWord#,--    divModInteger#,-    divModIntegerWord#,-    divInteger#,-    divIntegerWord#,-    modInteger#,-    modIntegerWord#,-    divExactInteger#,-    divExactIntegerWord#,--    gcdInteger#,-    gcdExtInteger#,-    gcdIntegerInt#,-    gcdInt#,--    decodeDouble#,--    int2Integer#,-    integer2Int#,--    word2Integer#,-    integer2Word#,--    andInteger#,-    orInteger#,-    xorInteger#,-    complementInteger#,--    testBitInteger#,-    mul2ExpInteger#,-    fdivQ2ExpInteger#,--    powInteger#,-    powModInteger#,-    powModSecInteger#,-    recipModInteger#,--    nextPrimeInteger#,-    testPrimeInteger#,--    sizeInBaseInteger#,-    importIntegerFromByteArray#,-    importIntegerFromAddr#,-    exportIntegerToMutableByteArray#,-    exportIntegerToAddr#,--#if WORD_SIZE_IN_BITS < 64-    int64ToInteger#,  integerToInt64#,-    word64ToInteger#, integerToWord64#,-#endif--#ifndef WORD_SIZE_IN_BITS-#error WORD_SIZE_IN_BITS not defined!!!-#endif--  ) where--import GHC.Prim-import GHC.Types---- Double isn't available yet, and we shouldn't be using defaults anyway:-default ()---- | This is represents a @mpz_t@ value in a heap-saving way.------ The first tuple element, @/s/@, encodes the sign of the integer--- @/i/@ (i.e. @signum /s/ == signum /i/@), and the number of /limbs/--- used to represent the magnitude. If @abs /s/ > 1@, the 'ByteArray#'--- contains @abs /s/@ limbs encoding the integer. Otherwise, if @abs--- /s/ < 2@, the single limb is stored in the 'Word#' element instead--- (and the 'ByteArray#' element is undefined and MUST NOT be accessed--- as it doesn't point to a proper 'ByteArray#' but rather to an--- unsafe-coerced 'Int' in order be polite to the GC -- see--- @DUMMY_BYTE_ARR@ in gmp-wrappers.cmm)------ More specifically, the following encoding is used (where `⊥` means--- undefined/unused):------ * (#  0#, ⊥, 0## #) -> value = 0--- * (#  1#, ⊥, w   #) -> value = w--- * (# -1#, ⊥, w   #) -> value = -w--- * (#  s#, d, 0## #) -> value = J# s d------ This representation allows to avoid temporary heap allocations--- (-> Trac #8647) of 1-limb 'ByteArray#'s which fit into the--- 'S#'-constructor. Moreover, this allows to delays 1-limb--- 'ByteArray#' heap allocations, as such 1-limb `mpz_t`s can be--- optimistically allocated on the Cmm stack and returned as a @#word@--- in case the `mpz_t` wasn't grown beyond 1 limb by the GMP--- operation.------ See also the 'GHC.Integer.Type.mpzToInteger' function which ought--- to be used for converting 'MPZ#'s to 'Integer's and the--- @MP_INT_1LIMB_RETURN()@ macro in @gmp-wrappers.cmm@ which--- constructs 'MPZ#' values in the first place for implementation--- details.-type MPZ# = (# Int#, ByteArray#, Word# #)---- | Returns -1,0,1 according as first argument is less than, equal to, or greater than second argument.----foreign import prim "integer_cmm_cmpIntegerzh" cmpInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> Int#---- | Returns -1,0,1 according as first argument is less than, equal to, or greater than second argument, which---   is an ordinary Int\#.-foreign import prim "integer_cmm_cmpIntegerIntzh" cmpIntegerInt#-  :: Int# -> ByteArray# -> Int# -> Int#---- |----foreign import prim "integer_cmm_plusIntegerzh" plusInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- | Optimized version of 'plusInteger#' for summing big-ints with small-ints----foreign import prim "integer_cmm_plusIntegerIntzh" plusIntegerInt#-  :: Int# -> ByteArray# -> Int# -> MPZ#---- |----foreign import prim "integer_cmm_minusIntegerzh" minusInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- | Optimized version of 'minusInteger#' for substracting small-ints from big-ints----foreign import prim "integer_cmm_minusIntegerIntzh" minusIntegerInt#-  :: Int# -> ByteArray# -> Int# -> MPZ#---- |----foreign import prim "integer_cmm_timesIntegerzh" timesInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- | Optimized version of 'timesInteger#' for multiplying big-ints with small-ints----foreign import prim "integer_cmm_timesIntegerIntzh" timesIntegerInt#-  :: Int# -> ByteArray# -> Int# -> MPZ#---- | Compute div and mod simultaneously, where div rounds towards negative--- infinity and\ @(q,r) = divModInteger#(x,y)@ implies--- @plusInteger# (timesInteger# q y) r = x@.----foreign import prim "integer_cmm_quotRemIntegerzh" quotRemInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> (# MPZ#, MPZ# #)---- | Variant of 'quotRemInteger#'----foreign import prim "integer_cmm_quotRemIntegerWordzh" quotRemIntegerWord#-  :: Int# -> ByteArray# -> Word# -> (# MPZ#, MPZ# #)---- | Rounds towards zero.----foreign import prim "integer_cmm_quotIntegerzh" quotInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- | Rounds towards zero.-foreign import prim "integer_cmm_quotIntegerWordzh" quotIntegerWord#-  :: Int# -> ByteArray# -> Word# -> MPZ#---- | Satisfies \texttt{plusInteger\# (timesInteger\# (quotInteger\# x y) y) (remInteger\# x y) == x}.----foreign import prim "integer_cmm_remIntegerzh" remInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- | Variant of 'remInteger#'-foreign import prim "integer_cmm_remIntegerWordzh" remIntegerWord#-  :: Int# -> ByteArray# -> Word# -> MPZ#---- | Compute div and mod simultaneously, where div rounds towards negative infinity--- and\texttt{(q,r) = divModInteger\#(x,y)} implies \texttt{plusInteger\# (timesInteger\# q y) r = x}.----foreign import prim "integer_cmm_divModIntegerzh" divModInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> (# MPZ#, MPZ# #)-foreign import prim "integer_cmm_divModIntegerWordzh" divModIntegerWord#-  :: Int# -> ByteArray# -> Word# -> (# MPZ#, MPZ# #)-foreign import prim "integer_cmm_divIntegerzh" divInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#-foreign import prim "integer_cmm_divIntegerWordzh" divIntegerWord#-  :: Int# -> ByteArray# -> Word# -> MPZ#-foreign import prim "integer_cmm_modIntegerzh" modInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#-foreign import prim "integer_cmm_modIntegerWordzh" modIntegerWord#-  :: Int# -> ByteArray# -> Word# -> MPZ#---- | Divisor is guaranteed to be a factor of dividend.----foreign import prim "integer_cmm_divExactIntegerzh" divExactInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#--foreign import prim "integer_cmm_divExactIntegerWordzh" divExactIntegerWord#-  :: Int# -> ByteArray# -> Word# -> MPZ#---- | Greatest common divisor.----foreign import prim "integer_cmm_gcdIntegerzh" gcdInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- | Extended greatest common divisor.----foreign import prim "integer_cmm_gcdExtIntegerzh" gcdExtInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> (# MPZ#, MPZ# #)---- | Greatest common divisor, where second argument is an ordinary {\tt Int\#}.----foreign import prim "integer_cmm_gcdIntegerIntzh" gcdIntegerInt#-  :: Int# -> ByteArray# -> Int# -> Int#---- |----foreign import prim "integer_cmm_gcdIntzh" gcdInt#-  :: Int# -> Int# -> Int#---- | Convert to arbitrary-precision integer.---    First {\tt Int\#} in result is the exponent; second {\tt Int\#} and {\tt ByteArray\#}---  represent an {\tt Integer\#} holding the mantissa.----foreign import prim "integer_cmm_decodeDoublezh" decodeDouble#-  :: Double# -> (# Int#, MPZ# #)---- |------ Note: This primitive doesn't use 'MPZ#' because its purpose is to instantiate a 'J#'-value.-foreign import prim "integer_cmm_int2Integerzh" int2Integer#-  :: Int# -> (# Int#, ByteArray# #)---- |------ Note: This primitive doesn't use 'MPZ#' because its purpose is to instantiate a 'J#'-value.-foreign import prim "integer_cmm_word2Integerzh" word2Integer#-  :: Word# -> (# Int#, ByteArray# #)---- |----foreign import prim "integer_cmm_andIntegerzh" andInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- |----foreign import prim "integer_cmm_orIntegerzh" orInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- |----foreign import prim "integer_cmm_xorIntegerzh" xorInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- |----foreign import prim "integer_cmm_testBitIntegerzh" testBitInteger#-  :: Int# -> ByteArray# -> Int# -> Int#---- |----foreign import prim "integer_cmm_mul2ExpIntegerzh" mul2ExpInteger#-  :: Int# -> ByteArray# -> Int# -> MPZ#---- |----foreign import prim "integer_cmm_fdivQ2ExpIntegerzh" fdivQ2ExpInteger#-  :: Int# -> ByteArray# -> Int# -> MPZ#---- |----foreign import prim "integer_cmm_powIntegerzh" powInteger#-  :: Int# -> ByteArray# -> Word# -> MPZ#---- |----foreign import prim "integer_cmm_powModIntegerzh" powModInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- |----foreign import prim "integer_cmm_powModSecIntegerzh" powModSecInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- |----foreign import prim "integer_cmm_recipModIntegerzh" recipModInteger#-  :: Int# -> ByteArray# -> Int# -> ByteArray# -> MPZ#---- |----foreign import prim "integer_cmm_nextPrimeIntegerzh" nextPrimeInteger#-  :: Int# -> ByteArray# -> MPZ#---- |----foreign import prim "integer_cmm_testPrimeIntegerzh" testPrimeInteger#-  :: Int# -> ByteArray# -> Int# -> Int#---- |----foreign import prim "integer_cmm_sizeInBasezh" sizeInBaseInteger#-  :: Int# -> ByteArray# -> Int# -> Word#---- |----foreign import prim "integer_cmm_importIntegerFromByteArrayzh" importIntegerFromByteArray#-  :: ByteArray# -> Word# -> Word# -> Int# -> MPZ#---- |----foreign import prim "integer_cmm_importIntegerFromAddrzh" importIntegerFromAddr#-  :: Addr# -> Word# -> Int# -> State# s -> (# State# s, MPZ# #)---- |----foreign import prim "integer_cmm_exportIntegerToMutableByteArrayzh" exportIntegerToMutableByteArray#-  :: Int# -> ByteArray# -> MutableByteArray# s -> Word# -> Int# -> State# s -> (# State# s, Word# #)---- |----foreign import prim "integer_cmm_exportIntegerToAddrzh" exportIntegerToAddr#-  :: Int# -> ByteArray# -> Addr# -> Int# -> State# s -> (# State# s, Word# #)---- |----foreign import prim "integer_cmm_complementIntegerzh" complementInteger#-  :: Int# -> ByteArray# -> MPZ#--#if WORD_SIZE_IN_BITS < 64--- Note: This primitive doesn't use 'MPZ#' because its purpose is to instantiate a 'J#'-value.-foreign import prim "integer_cmm_int64ToIntegerzh" int64ToInteger#-  :: Int64# -> (# Int#, ByteArray# #)---- Note: This primitive doesn't use 'MPZ#' because its purpose is to instantiate a 'J#'-value.-foreign import prim "integer_cmm_word64ToIntegerzh" word64ToInteger#-  :: Word64# -> (# Int#, ByteArray# #)--foreign import ccall unsafe "hs_integerToInt64"-    integerToInt64#  :: Int# -> ByteArray# -> Int64#--foreign import ccall unsafe "hs_integerToWord64"-    integerToWord64# :: Int# -> ByteArray# -> Word64#-#endif---- used to be primops:-integer2Int# :: Int# -> ByteArray# -> Int#-integer2Int# s d = if isTrue# (s ==# 0#)-                       then 0#-                       else let !v = indexIntArray# d 0# in-                            if isTrue# (s <# 0#)-                               then negateInt# v-                               else v--integer2Word# :: Int# -> ByteArray# -> Word#-integer2Word# s d = int2Word# (integer2Int# s d)
− GHC/Integer/Logarithms.hs
@@ -1,43 +0,0 @@-{-# LANGUAGE MagicHash, UnboxedTuples, NoImplicitPrelude #-}-module GHC.Integer.Logarithms-    ( integerLogBase#-    , integerLog2#-    , wordLog2#-    ) where--import GHC.Prim-import GHC.Integer-import qualified GHC.Integer.Logarithms.Internals as I---- | Calculate the integer logarithm for an arbitrary base.---   The base must be greater than 1, the second argument, the number---   whose logarithm is sought, should be positive, otherwise the---   result is meaningless.------ > base ^ integerLogBase# base m <= m < base ^ (integerLogBase# base m + 1)------ for @base > 1@ and @m > 0@.-integerLogBase# :: Integer -> Integer -> Int#-integerLogBase# b m = case step b of-                        (# _, e #) -> e-  where-    step pw =-      if m `ltInteger` pw-        then (# m, 0# #)-        else case step (pw `timesInteger` pw) of-               (# q, e #) ->-                 if q `ltInteger` pw-                   then (# q, 2# *# e #)-                   else (# 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# = I.integerLog2#---- | This function calculates the integer base 2 logarithm of a 'Word#'.-wordLog2# :: Word# -> Int#-wordLog2# = I.wordLog2#
− GHC/Integer/Logarithms/Internals.hs
@@ -1,260 +0,0 @@-{-# LANGUAGE CPP, MagicHash, UnboxedTuples, NoImplicitPrelude #-}-{-# OPTIONS_HADDOCK hide #-}--#include "MachDeps.h"---- 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.--module GHC.Integer.Logarithms.Internals-    ( integerLog2#-    , integerLog2IsPowerOf2#-    , wordLog2#-    , roundingMode#-    ) where--import GHC.Prim-import GHC.Types (isTrue#)-import GHC.Integer.Type---- When larger word sizes become common, add support for those,--- it is not hard, just tedious.-#if (WORD_SIZE_IN_BITS != 32) && (WORD_SIZE_IN_BITS != 64)---- Less than ideal implementations for strange word sizes--import GHC.Integer--default ()---- We do not know whether the word has 30 bits or 128 or even more,--- so we cannot start from the top, although that would be much more--- efficient.--- Count the bits until the highest set bit is found.-wordLog2# :: Word# -> Int#-wordLog2# w = go 8# w-  where-    go acc u = case u `uncheckedShiftRL#` 8# of-                0## -> case leadingZeros of-                        BA ba -> acc -# indexInt8Array# ba (word2Int# u)-                v   -> go (acc +# 8#) v---- Assumption: Integer is strictly positive-integerLog2# :: Integer -> Int#-integerLog2# (S# i) = wordLog2# (int2Word# i) -- that is easy-integerLog2# m = case step m (smallInteger 2#) 1# of-                    (# _, l #) -> l-  where-    -- Invariants:-    -- pw = 2 ^ lg-    -- case step n pw lg of-    --   (q, e) -> pw^(2*e) <= n < pw^(2*e+2)-    --              && q <= n/pw^(2*e) < (q+1)-    --              && q < pw^2-    step n pw lg =-      if n `ltInteger` pw-        then (# n, 0# #)-        else case step n (shiftLInteger pw lg) (2# *# lg) of-              (# q, e #) ->-                if q `ltInteger` pw-                  then (# q, 2# *# e #)-                  else (# q `shiftRInteger` lg, 2# *# e +# 1# #)---- Calculate the log2 of a positive integer and check--- whether it is a power of 2.--- By coincidence, the presence of a power of 2 is--- signalled by zero and not one.-integerLog2IsPowerOf2# :: Integer -> (# Int#, Int# #)-integerLog2IsPowerOf2# m =-    case integerLog2# m of-      lg -> if m `eqInteger` (smallInteger 1# `shiftLInteger` lg)-              then (# lg, 0# #)-              else (# lg, 1# #)---- Detect the rounding mode,--- 0# means round to zero,--- 1# means round to even,--- 2# means round away from zero-roundingMode# :: Integer -> Int# -> Int#-roundingMode# m h =-    case smallInteger 1# `shiftLInteger` h of-      c -> case m `andInteger`-                ((c `plusInteger` c) `minusInteger` smallInteger 1#) of-             r ->-               if c `ltInteger` r-                 then 2#-                 else if c `gtInteger` r-                        then 0#-                        else 1#--#else--default ()---- We have a nice word size, we can do much better now.--#if WORD_SIZE_IN_BITS == 32--#define WSHIFT 5-#define MMASK 31--#else--#define WSHIFT 6-#define MMASK 63--#endif---- Assumption: Integer is strictly positive--- For small integers, use wordLog#,--- in the general case, check words from the most--- significant down, once a nonzero word is found,--- calculate its log2 and add the number of following bits.-integerLog2# :: Integer -> Int#-integerLog2# (S# i) = wordLog2# (int2Word# i)-integerLog2# (J# s ba) = check (s -# 1#)-  where-    check i = case indexWordArray# ba i of-                0## -> check (i -# 1#)-                w   -> wordLog2# w +# (uncheckedIShiftL# i WSHIFT#)---- Assumption: Integer is strictly positive--- First component 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##)) #)--- Find the log2 as above, test whether that word is a power--- of 2, if so, check whether only zero bits follow.-integerLog2IsPowerOf2# (J# s ba) = check (s -# 1#)-  where-    check :: Int# -> (# Int#, Int# #)-    check i = case indexWordArray# ba 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 indexWordArray# ba 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# (J# _ ba) 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 indexWordArray# ba 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 indexWordArray# ba i of-                        0## -> test (i -# 1#)-                        _   -> 2#---- wordLog2# 0## = -1#-{-# INLINE wordLog2# #-}-wordLog2# :: Word# -> Int#-wordLog2# w =-  case leadingZeros of-   BA lz ->-    let zeros u = indexInt8Array# lz (word2Int# u) in-#if WORD_SIZE_IN_BITS == 64-    case uncheckedShiftRL# w 56# of-     a ->-      if isTrue# (a `neWord#` 0##)-       then 64# -# zeros a-       else-        case uncheckedShiftRL# w 48# of-         b ->-          if isTrue# (b `neWord#` 0##)-           then 56# -# zeros b-           else-            case uncheckedShiftRL# w 40# of-             c ->-              if isTrue# (c `neWord#` 0##)-               then 48# -# zeros c-               else-                case uncheckedShiftRL# w 32# of-                 d ->-                  if isTrue# (d `neWord#` 0##)-                   then 40# -# zeros d-                   else-#endif-                    case uncheckedShiftRL# w 24# of-                     e ->-                      if isTrue# (e `neWord#` 0##)-                       then 32# -# zeros e-                       else-                        case uncheckedShiftRL# w 16# of-                         f ->-                          if isTrue# (f `neWord#` 0##)-                           then 24# -# zeros f-                           else-                            case uncheckedShiftRL# w 8# of-                             g ->-                              if isTrue# (g `neWord#` 0##)-                               then 16# -# zeros g-                               else 8# -# zeros w--#endif---- Lookup table-data BA = BA ByteArray#--leadingZeros :: BA-leadingZeros =-    let mkArr s =-          case newByteArray# 256# s of-            (# s1, mba #) ->-              case writeInt8Array# mba 0# 9# s1 of-                s2 ->-                  let fillA lim val idx st =-                        if isTrue# (idx ==# 256#)-                          then st-                          else if isTrue# (idx <# lim)-                                then case writeInt8Array# mba idx val st of-                                        nx -> fillA lim val (idx +# 1#) nx-                                else fillA (2# *# lim) (val -# 1#) idx st-                  in case fillA 2# 8# 1# s2 of-                      s3 -> case unsafeFreezeByteArray# mba s3 of-                              (# _, ba #) -> ba-    in case mkArr realWorld# of-        b -> BA b
− GHC/Integer/Type.lhs
@@ -1,1021 +0,0 @@-\begin{code}-{-# LANGUAGE BangPatterns, CPP, UnboxedTuples, UnliftedFFITypes, MagicHash, NoImplicitPrelude #-}-{-# OPTIONS_HADDOCK hide #-}---- Commentary of Integer library is located on the wiki:--- http://ghc.haskell.org/trac/ghc/wiki/Commentary/Libraries/Integer------ It gives an in-depth description of implementation details and--- decisions.------ TODO: Try to use optimized big/small int primops on IL32P64 archs--- (mostly Windows/x86_64). Currently, we have to fall back to--- unoptimized code-paths for most big/small-int primops, due to--- @mpz_*()@ functions using @long@ types, which is smaller than--- @mp_limb_t@ on IL32P64. The @mpn_*()@ functions are often safe to--- use, as they use @mb_limb_t@ instead of @long@.--- (look out for @#if SIZEOF_HSWORD == SIZEOF_LONG@ occurences)-----#include "MachDeps.h"-#include "HsIntegerGmp.h"--#if SIZEOF_HSWORD == 4-#define INT_MINBOUND (-2147483648#)-#define NEG_INT_MINBOUND (S# 2147483647# `plusInteger` S# 1#)-#elif SIZEOF_HSWORD == 8-#define INT_MINBOUND (-9223372036854775808#)-#define NEG_INT_MINBOUND (S# 9223372036854775807# `plusInteger` S# 1#)-#else-#error Unknown SIZEOF_HSWORD; can't define INT_MINBOUND and NEG_INT_MINBOUND-#endif--module GHC.Integer.Type where--import GHC.Prim (-    -- Other types we use, convert from, or convert to-    Int#, Word#, Double#, Float#, ByteArray#, MutableByteArray#, Addr#, State#,-    indexIntArray#,-    -- Conversions between those types-    int2Word#, int2Double#, int2Float#, word2Int#,-    -- Operations on Int# that we use for operations on S#-    quotInt#, remInt#, quotRemInt#, negateInt#,-    (*#), (-#),-    (==#), (/=#), (<=#), (>=#), (<#), (>#),-    mulIntMayOflo#, addIntC#, subIntC#,-    and#, or#, xor#,- )--import GHC.Integer.GMP.Prim (-    -- GMP-related primitives-    MPZ#,-    cmpInteger#, cmpIntegerInt#,-    plusInteger#, minusInteger#,-    timesInteger#,-    quotRemInteger#, quotInteger#, remInteger#,-    divModInteger#, divInteger#, modInteger#,-    divExactInteger#,-    gcdInteger#, gcdExtInteger#, gcdIntegerInt#, gcdInt#,-    decodeDouble#,-    int2Integer#, integer2Int#, word2Integer#, integer2Word#,-    andInteger#, orInteger#, xorInteger#, complementInteger#,-    testBitInteger#, mul2ExpInteger#, fdivQ2ExpInteger#,-    powInteger#, powModInteger#, powModSecInteger#, recipModInteger#,-    nextPrimeInteger#, testPrimeInteger#,-    sizeInBaseInteger#,-    importIntegerFromByteArray#, importIntegerFromAddr#,-    exportIntegerToMutableByteArray#, exportIntegerToAddr#,--#if SIZEOF_HSWORD == SIZEOF_LONG-    plusIntegerInt#, minusIntegerInt#,-    timesIntegerInt#,-    divIntegerWord#, modIntegerWord#, divModIntegerWord#,-    divExactIntegerWord#,-    quotIntegerWord#, remIntegerWord#, quotRemIntegerWord#,-#endif--#if WORD_SIZE_IN_BITS < 64-    int64ToInteger#,  integerToInt64#,-    word64ToInteger#, integerToWord64#,-#endif- )--#if WORD_SIZE_IN_BITS < 64-import GHC.IntWord64 (-            Int64#, Word64#,-            int64ToWord64#, intToInt64#,-            int64ToInt#, word64ToInt64#,-            geInt64#, leInt64#, leWord64#,-       )-#endif--import GHC.Classes-import GHC.Types--default ()-\end{code}--%*********************************************************-%*                                                      *-\subsection{The @Integer@ type}-%*                                                      *-%*********************************************************--Convenient boxed Integer PrimOps.--\begin{code}--- | Arbitrary-precision integers.-data Integer-   = S# Int#            -- ^ \"small\" integers fitting into an 'Int#'-   | J# Int# ByteArray# -- ^ \"big\" integers represented as GMP's @mpz_t@ structure.-     ---     -- The 'Int#' field corresponds to @mpz_t@'s @_mp_size@ field,-     -- which encodes the sign and the number of /limbs/ stored in the-     -- 'ByteArray#' field (i.e. @mpz_t@'s @_mp_d@ field). Note: The-     -- 'ByteArray#' may have been over-allocated, and thus larger-     -- than the size denoted by the 'Int#' field.-     ---     -- This representation tries to avoid using the GMP number-     -- representation for small integers that fit into a native-     -- 'Int#'. This allows to reduce (or at least defer) calling into GMP-     -- for operations whose results remain in the 'Int#'-domain.-     ---     -- Note: It does __not__ constitute a violation of invariants to-     -- represent an integer which would fit into an 'Int#' with the-     -- 'J#'-constructor. For instance, the value @0@ has (only) two valid-     -- representations, either @'S#' 0#@ or @'J#' 0 _@.---- | 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 = let abs = f is-                           in if nonNegative then abs else negateInteger abs-    where f [] = S# 0#-          f (I# i : is') = S# i `orInteger` shiftLInteger (f is') 31#--{-# NOINLINE smallInteger #-}-smallInteger :: Int# -> Integer-smallInteger i = S# i--{-# NOINLINE wordToInteger #-}-wordToInteger :: Word# -> Integer-wordToInteger w = if isTrue# (i >=# 0#)-                  then S# i-                  else case word2Integer# w of (# s, d #) -> J# s d-    where-      !i = word2Int# w--{-# NOINLINE integerToWord #-}-integerToWord :: Integer -> Word#-integerToWord (S# i) = int2Word# i-integerToWord (J# s d) = integer2Word# s d--#if WORD_SIZE_IN_BITS < 64-{-# NOINLINE integerToWord64 #-}-integerToWord64 :: Integer -> Word64#-integerToWord64 (S# i) = int64ToWord64# (intToInt64# i)-integerToWord64 (J# s d) = integerToWord64# s d--{-# NOINLINE word64ToInteger #-}-word64ToInteger :: Word64# -> Integer-word64ToInteger w = if isTrue# (w `leWord64#` int64ToWord64# (intToInt64# 0x7FFFFFFF#))-                    then S# (int64ToInt# (word64ToInt64# w))-                    else case word64ToInteger# w of-                         (# s, d #) -> J# s d--{-# NOINLINE integerToInt64 #-}-integerToInt64 :: Integer -> Int64#-integerToInt64 (S# i) = intToInt64# i-integerToInt64 (J# s d) = integerToInt64# s d--{-# NOINLINE int64ToInteger #-}-int64ToInteger :: Int64# -> Integer-int64ToInteger i = if isTrue# (i `leInt64#` intToInt64# 0x7FFFFFFF#) &&-                      isTrue# (i `geInt64#` intToInt64# -0x80000000#)-                   then smallInteger (int64ToInt# i)-                   else case int64ToInteger# i of-                        (# s, d #) -> J# s d-#endif--integerToInt :: Integer -> Int#-{-# NOINLINE integerToInt #-}-integerToInt (S# i)   = i-integerToInt (J# s d) = integer2Int# s d---- This manually floated out constant is needed as GHC doesn't do it on its own-minIntAsBig :: Integer-minIntAsBig = case int2Integer# INT_MINBOUND of { (# s, d #) -> J# s d }---- | Promote 'S#' to 'J#'-toBig :: Integer -> Integer-toBig (S# i)     = case int2Integer# i of { (# s, d #) -> J# s d }-toBig i@(J# _ _) = i---- | Demote 'J#' to 'S#' if possible. See also 'smartJ#'.-toSmall :: Integer -> Integer-toSmall i@(S# _)    = i-toSmall (J# s# mb#) = smartJ# s# mb#----- | Smart 'J#' constructor which tries to construct 'S#' if possible-smartJ# :: Int# -> ByteArray# -> Integer-smartJ# 0# _ = S# 0#-smartJ# 1# mb#  | isTrue# (v ># 0#) = S# v-    where-      v = indexIntArray# mb# 0#-smartJ# (-1#) mb# | isTrue# (v <# 0#) = S# v-    where-      v = negateInt# (indexIntArray# mb# 0#)-smartJ# s# mb# = J# s# mb#---- |Construct 'Integer' out of a 'MPZ#' as returned by GMP wrapper primops------ IMPORTANT: The 'ByteArray#' element MUST NOT be accessed unless the--- size-element indicates more than one limb!------ See notes at definition site of 'MPZ#' in "GHC.Integer.GMP.Prim"--- for more details.-mpzToInteger :: MPZ# -> Integer-mpzToInteger (# 0#, _, _ #) = S# 0#-mpzToInteger (# 1#, _, w# #) | isTrue# (v# >=# 0#) = S# v#-                             | True = case word2Integer# w# of (# _, d #) -> J# 1# d-    where-      v# = word2Int# w#-mpzToInteger (# -1#, _, w# #) | isTrue# (v# <=# 0#) = S# v#-                              | True = case word2Integer# w# of (# _, d #) -> J# -1# d-    where-      v# = negateInt# (word2Int# w#)-mpzToInteger (# s#, mb#, _ #) = J# s# mb#---- | Variant of 'mpzToInteger' for pairs of 'Integer's-mpzToInteger2 :: (# MPZ#, MPZ# #) -> (# Integer, Integer #)-mpzToInteger2 (# mpz1, mpz2 #) = (# i1, i2 #)-    where-      !i1 = mpzToInteger mpz1 -- This use of `!` avoids creating thunks,-      !i2 = mpzToInteger mpz2 -- see also Note [Use S# if possible].---- |Negate MPZ#-mpzNeg :: MPZ# -> MPZ#-mpzNeg (# s#, mb#, w# #) = (# negateInt# s#, mb#, w# #)--\end{code}--Note [Use S# if possible]-~~~~~~~~~~~~~~~~~~~~~~~~~-It's a big win to use S#, rather than J#, whenever possible.  Not only-does it take less space, but (probably more important) subsequent-operations are more efficient. See Trac #8638.--'smartJ#' is the smart constructor for J# that performs the necessary-tests.  When returning a nested result, we always use smartJ# strictly,-thus-       let !r = smartJ# a b in (# r, somthing_else #)-to avoid creating a thunk that is subsequently evaluated to a J#.-smartJ# itself does a pretty small amount of work, so it's not worth-thunking it.--We call 'smartJ#' in places like quotRemInteger where a big input-might produce a small output.--Just using smartJ# in this way has good results:--        Program           Size    Allocs   Runtime   Elapsed  TotalMem----------------------------------------------------------------------------------         gamteb          +0.1%    -19.0%      0.03      0.03     +0.0%-          kahan          +0.2%     -1.2%      0.17      0.17     +0.0%-         mandel          +0.1%     -7.7%      0.05      0.05     +0.0%-          power          +0.1%    -40.8%    -32.5%    -32.5%     +0.0%-         symalg          +0.2%     -0.5%      0.01      0.01     +0.0%----------------------------------------------------------------------------------            Min          +0.0%    -40.8%    -32.5%    -32.5%     -5.1%-            Max          +0.2%     +0.1%     +2.0%     +2.0%     +0.0%- Geometric Mean          +0.1%     -1.0%     -2.5%     -2.5%     -0.1%--%*********************************************************-%*                                                      *-\subsection{Dividing @Integers@}-%*                                                      *-%*********************************************************--\begin{code}--- XXX There's no good reason for us using unboxed tuples for the--- results, but we don't have Data.Tuple available.---- Note that we don't check for divide-by-zero here. That needs--- to be done where it's used.--- (we don't have error)--{-# NOINLINE quotRemInteger #-}-quotRemInteger :: Integer -> Integer -> (# Integer, Integer #)-quotRemInteger (S# INT_MINBOUND) b = quotRemInteger minIntAsBig b-quotRemInteger (S# i) (S# j) = case quotRemInt# i j of-                                   (# q, r #) -> (# S# q, S# r #)-#if SIZEOF_HSWORD == SIZEOF_LONG-quotRemInteger (J# s1 d1) (S# b) | isTrue# (b <# 0#)-  = case quotRemIntegerWord# s1 d1 (int2Word# (negateInt# b)) of-          (# q, r #) -> let !q' = mpzToInteger (mpzNeg q)-                            !r' = mpzToInteger r-                        in (# q', r' #) -- see also Trac #8726-quotRemInteger (J# s1 d1) (S# b)-  = mpzToInteger2 (quotRemIntegerWord# s1 d1 (int2Word# b))-#else-quotRemInteger i1@(J# _ _) i2@(S# _) = quotRemInteger i1 (toBig i2)-#endif-quotRemInteger i1@(S# _) i2@(J# _ _) = quotRemInteger (toBig i1) i2-quotRemInteger (J# s1 d1) (J# s2 d2)-  = mpzToInteger2(quotRemInteger# s1 d1 s2 d2) -- See Note [Use S# if possible]--{-# NOINLINE divModInteger #-}-divModInteger :: Integer -> Integer -> (# Integer, Integer #)-divModInteger (S# INT_MINBOUND) b = divModInteger minIntAsBig b-divModInteger (S# i) (S# j) = (# S# d, S# m #)-    where-      -- NB. don't inline these.  (# S# (i `quotInt#` j), ... #) means-      -- (# let q = i `quotInt#` j in S# q, ... #) which builds a-      -- useless thunk.  Placing the bindings here means they'll be-      -- evaluated strictly.-      !d = i `divInt#` j-      !m = i `modInt#` j-#if SIZEOF_HSWORD == SIZEOF_LONG-divModInteger (J# s1 d1) (S# b) | isTrue# (b <# 0#)-  = case divModIntegerWord# (negateInt# s1) d1 (int2Word# (negateInt# b)) of-          (# q, r #) -> let !q' = mpzToInteger q-                            !r' = mpzToInteger (mpzNeg r)-                        in (# q', r' #) -- see also Trac #8726-divModInteger (J# s1 d1) (S# b)-  = mpzToInteger2(divModIntegerWord# s1 d1 (int2Word# b))-#else-divModInteger i1@(J# _ _) i2@(S# _) = divModInteger i1 (toBig i2)-#endif-divModInteger i1@(S# _) i2@(J# _ _) = divModInteger (toBig i1) i2-divModInteger (J# s1 d1) (J# s2 d2) = mpzToInteger2 (divModInteger# s1 d1 s2 d2)--{-# NOINLINE remInteger #-}-remInteger :: Integer -> Integer -> Integer-remInteger (S# INT_MINBOUND) b = remInteger minIntAsBig b-remInteger (S# a) (S# b) = S# (remInt# a b)-{- Special case doesn't work, because a 1-element J# has the range-   -(2^32-1) -- 2^32-1, whereas S# has the range -2^31 -- (2^31-1)-remInteger ia@(S# a) (J# sb b)-  | sb ==# 1#  = S# (remInt# a (word2Int# (integer2Word# sb b)))-  | sb ==# -1# = S# (remInt# a (0# -# (word2Int# (integer2Word# sb b))))-  | 0# <# sb   = ia-  | otherwise  = S# (0# -# a)--}-remInteger ia@(S# _) ib@(J# _ _) = remInteger (toBig ia) ib-#if SIZEOF_HSWORD == SIZEOF_LONG-remInteger (J# sa a) (S# b)-  = mpzToInteger (remIntegerWord# sa a w)-  where-    w = int2Word# (if isTrue# (b <# 0#) then negateInt# b else b)-#else-remInteger i1@(J# _ _) i2@(S# _) = remInteger i1 (toBig i2)-#endif-remInteger (J# sa a) (J# sb b)-  = mpzToInteger (remInteger# sa a sb b)--{-# NOINLINE quotInteger #-}-quotInteger :: Integer -> Integer -> Integer-quotInteger (S# INT_MINBOUND) b = quotInteger minIntAsBig b-quotInteger (S# a) (S# b) = S# (quotInt# a b)-{- Special case disabled, see remInteger above-quotInteger (S# a) (J# sb b)-  | sb ==# 1#  = S# (quotInt# a (word2Int# (integer2Word# sb b)))-  | sb ==# -1# = S# (quotInt# a (0# -# (word2Int# (integer2Word# sb b))))-  | otherwise  = S# 0--}-quotInteger ia@(S# _) ib@(J# _ _) = quotInteger (toBig ia) ib-#if SIZEOF_HSWORD == SIZEOF_LONG-quotInteger (J# sa a) (S# b) | isTrue# (b <# 0#)-  = mpzToInteger (mpzNeg (quotIntegerWord# sa a (int2Word# (negateInt# b))))-quotInteger (J# sa a) (S# b)-  = mpzToInteger (quotIntegerWord# sa a (int2Word# b))-#else-quotInteger i1@(J# _ _) i2@(S# _) = quotInteger i1 (toBig i2)-#endif-quotInteger (J# sa a) (J# sb b)-  = mpzToInteger (quotInteger# sa a sb b)--{-# NOINLINE modInteger #-}-modInteger :: Integer -> Integer -> Integer-modInteger (S# INT_MINBOUND) b = modInteger minIntAsBig b-modInteger (S# a) (S# b) = S# (modInt# a b)-modInteger ia@(S# _) ib@(J# _ _) = modInteger (toBig ia) ib-#if SIZEOF_HSWORD == SIZEOF_LONG-modInteger (J# sa a) (S# b) | isTrue# (b <# 0#)-  = mpzToInteger (mpzNeg (modIntegerWord# (negateInt# sa) a (int2Word# (negateInt# b))))-modInteger (J# sa a) (S# b)-  = mpzToInteger (modIntegerWord# sa a (int2Word# b))-#else-modInteger i1@(J# _ _) i2@(S# _) = modInteger i1 (toBig i2)-#endif-modInteger (J# sa a) (J# sb b)-  = mpzToInteger (modInteger# sa a sb b)--{-# NOINLINE divInteger #-}-divInteger :: Integer -> Integer -> Integer-divInteger (S# INT_MINBOUND) b = divInteger minIntAsBig b-divInteger (S# a) (S# b) = S# (divInt# a b)-divInteger ia@(S# _) ib@(J# _ _) = divInteger (toBig ia) ib-#if SIZEOF_HSWORD == SIZEOF_LONG-divInteger (J# sa a) (S# b) | isTrue# (b <# 0#)-  = mpzToInteger (divIntegerWord# (negateInt# sa) a (int2Word# (negateInt# b)))-divInteger (J# sa a) (S# b)-  = mpzToInteger (divIntegerWord# sa a (int2Word# b))-#else-divInteger i1@(J# _ _) i2@(S# _) = divInteger i1 (toBig i2)-#endif-divInteger (J# sa a) (J# sb b)-  = mpzToInteger (divInteger# sa a sb b)-\end{code}----\begin{code}--- | Compute greatest common divisor.-{-# NOINLINE gcdInteger #-}-gcdInteger :: Integer -> Integer -> Integer--- SUP: Do we really need the first two cases?-gcdInteger (S# INT_MINBOUND) b = gcdInteger minIntAsBig b-gcdInteger a (S# INT_MINBOUND) = gcdInteger a minIntAsBig-gcdInteger (S# a) (S# b) = S# (gcdInt a b)-gcdInteger ia@(S# a)  ib@(J# sb b)- =      if isTrue# (a  ==# 0#) then absInteger ib-   else if isTrue# (sb ==# 0#) then absInteger ia-   else                             S# (gcdIntegerInt# absSb b absA)-       where !absA  = if isTrue# (a  <# 0#) then negateInt# a  else a-             !absSb = if isTrue# (sb <# 0#) then negateInt# sb else sb-gcdInteger ia@(J# _ _) ib@(S# _) = gcdInteger ib ia-gcdInteger (J# sa a) (J# sb b)   = mpzToInteger (gcdInteger# sa a sb b)---- | 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@(S# _)   b@(S# _) = gcdExtInteger (toBig a) (toBig b)-gcdExtInteger a@(S# _) b@(J# _ _) = gcdExtInteger (toBig a) b-gcdExtInteger a@(J# _ _) b@(S# _) = gcdExtInteger a (toBig b)-gcdExtInteger (J# sa a) (J# sb b) = mpzToInteger2 (gcdExtInteger# sa a sb b)---- | Compute least common multiple.-{-# NOINLINE lcmInteger #-}-lcmInteger :: Integer -> Integer -> Integer-lcmInteger a b =      if a `eqInteger` S# 0# then S# 0#-                 else if b `eqInteger` S# 0# then S# 0#-                 else (divExact aa (gcdInteger aa ab)) `timesInteger` ab-  where aa = absInteger a-        ab = absInteger b---- | Compute greatest common divisor.-gcdInt :: Int# -> Int# -> Int#-gcdInt 0# y  = absInt y-gcdInt x  0# = absInt x-gcdInt x  y  = gcdInt# (absInt x) (absInt y)--absInt :: Int# -> Int#-absInt x = if isTrue# (x <# 0#) then negateInt# x else x--divExact :: Integer -> Integer -> Integer-divExact (S# INT_MINBOUND) b = divExact minIntAsBig b-divExact (S# a) (S# b) = S# (quotInt# a b)-divExact (S# a) (J# sb b)-  = S# (quotInt# a (integer2Int# sb b))-#if SIZEOF_HSWORD == SIZEOF_LONG-divExact (J# sa a) (S# b) | isTrue# (b <# 0#)-  = mpzToInteger (divExactIntegerWord# (negateInt# sa) a (int2Word# (negateInt# b)))-divExact (J# sa a) (S# b) = mpzToInteger (divExactIntegerWord# sa a (int2Word# b))-#else-divExact i1@(J# _ _) i2@(S# _) = divExact i1 (toBig i2)-#endif-divExact (J# sa a) (J# sb b) = mpzToInteger (divExactInteger# sa a sb b)-\end{code}---%*********************************************************-%*                                                      *-\subsection{The @Integer@ instances for @Eq@, @Ord@}-%*                                                      *-%*********************************************************--\begin{code}---- | /Since: 0.5.1.0/-{-# NOINLINE eqInteger# #-}-eqInteger# :: Integer -> Integer -> Int#-eqInteger# (S# i)     (S# j)     = i ==# j-eqInteger# (S# i)     (J# s d)   = cmpIntegerInt# s d i ==# 0#-eqInteger# (J# s d)   (S# i)     = cmpIntegerInt# s d i ==# 0#-eqInteger# (J# s1 d1) (J# s2 d2) = (cmpInteger# s1 d1 s2 d2) ==# 0#---- | /Since: 0.5.1.0/-{-# NOINLINE neqInteger# #-}-neqInteger# :: Integer -> Integer -> Int#-neqInteger# (S# i)     (S# j)     = i /=# j-neqInteger# (S# i)     (J# s d)   = cmpIntegerInt# s d i /=# 0#-neqInteger# (J# s d)   (S# i)     = cmpIntegerInt# s d i /=# 0#-neqInteger# (J# s1 d1) (J# s2 d2) = (cmpInteger# s1 d1 s2 d2) /=# 0#--{-# INLINE eqInteger  #-}-{-# INLINE neqInteger #-}-eqInteger, neqInteger :: Integer -> Integer -> Bool-eqInteger  a b = isTrue# (a `eqInteger#`  b)-neqInteger a b = isTrue# (a `neqInteger#` b)--instance  Eq Integer  where-    (==) = eqInteger-    (/=) = neqInteger------------------------------------------------------------------------------ | /Since: 0.5.1.0/-{-# NOINLINE leInteger# #-}-leInteger# :: Integer -> Integer -> Int#-leInteger# (S# i)     (S# j)     = i <=# j-leInteger# (J# s d)   (S# i)     = cmpIntegerInt# s d i <=# 0#-leInteger# (S# i)     (J# s d)   = cmpIntegerInt# s d i >=# 0#-leInteger# (J# s1 d1) (J# s2 d2) = (cmpInteger# s1 d1 s2 d2) <=# 0#---- | /Since: 0.5.1.0/-{-# NOINLINE gtInteger# #-}-gtInteger# :: Integer -> Integer -> Int#-gtInteger# (S# i)     (S# j)     = i ># j-gtInteger# (J# s d)   (S# i)     = cmpIntegerInt# s d i ># 0#-gtInteger# (S# i)     (J# s d)   = cmpIntegerInt# s d i <# 0#-gtInteger# (J# s1 d1) (J# s2 d2) = (cmpInteger# s1 d1 s2 d2) ># 0#---- | /Since: 0.5.1.0/-{-# NOINLINE ltInteger# #-}-ltInteger# :: Integer -> Integer -> Int#-ltInteger# (S# i)     (S# j)     = i <# j-ltInteger# (J# s d)   (S# i)     = cmpIntegerInt# s d i <# 0#-ltInteger# (S# i)     (J# s d)   = cmpIntegerInt# s d i ># 0#-ltInteger# (J# s1 d1) (J# s2 d2) = (cmpInteger# s1 d1 s2 d2) <# 0#---- | /Since: 0.5.1.0/-{-# NOINLINE geInteger# #-}-geInteger# :: Integer -> Integer -> Int#-geInteger# (S# i)     (S# j)     = i >=# j-geInteger# (J# s d)   (S# i)     = cmpIntegerInt# s d i >=# 0#-geInteger# (S# i)     (J# s d)   = cmpIntegerInt# s d i <=# 0#-geInteger# (J# s1 d1) (J# s2 d2) = (cmpInteger# s1 d1 s2 d2) >=# 0#--{-# INLINE leInteger #-}-{-# INLINE ltInteger #-}-{-# INLINE geInteger #-}-{-# INLINE gtInteger #-}-leInteger, gtInteger, ltInteger, geInteger :: Integer -> Integer -> Bool-leInteger a b = isTrue# (a `leInteger#` b)-gtInteger a b = isTrue# (a `gtInteger#` b)-ltInteger a b = isTrue# (a `ltInteger#` b)-geInteger a b = isTrue# (a `geInteger#` b)--{-# NOINLINE compareInteger #-}-compareInteger :: Integer -> Integer -> Ordering-compareInteger (S# i)  (S# j)-   =      if isTrue# (i ==# j) then EQ-     else if isTrue# (i <=# j) then LT-     else                           GT-compareInteger (J# s d) (S# i)-   = case cmpIntegerInt# s d i of { res# ->-     if isTrue# (res# <# 0#) then LT else-     if isTrue# (res# ># 0#) then GT else EQ-     }-compareInteger (S# i) (J# s d)-   = case cmpIntegerInt# s d i of { res# ->-     if isTrue# (res# ># 0#) then LT else-     if isTrue# (res# <# 0#) then GT else EQ-     }-compareInteger (J# s1 d1) (J# s2 d2)-   = case cmpInteger# s1 d1 s2 d2 of { res# ->-     if isTrue# (res# <# 0#) then LT else-     if isTrue# (res# ># 0#) then GT else EQ-     }--instance Ord Integer where-    (<=) = leInteger-    (<)  = ltInteger-    (>)  = gtInteger-    (>=) = geInteger-    compare = compareInteger-\end{code}---%*********************************************************-%*                                                      *-\subsection{The @Integer@ instances for @Num@}-%*                                                      *-%*********************************************************--\begin{code}-{-# NOINLINE absInteger #-}-absInteger :: Integer -> Integer-absInteger (S# INT_MINBOUND) = NEG_INT_MINBOUND-absInteger n@(S# i)   = if isTrue# (i >=# 0#) then n else S# (negateInt# i)-absInteger n@(J# s d) = if isTrue# (s >=# 0#) then n else J# (negateInt# s) d--{-# NOINLINE signumInteger #-}-signumInteger :: Integer -> Integer-signumInteger (S# i) = if isTrue# (i <# 0#) then S# -1#-                       else if isTrue# (i ==# 0#) then S# 0#-                       else S# 1#-signumInteger (J# s d)-  = let-        !cmp = cmpIntegerInt# s d 0#-    in-    if      isTrue# (cmp >#  0#) then S# 1#-    else if isTrue# (cmp ==# 0#) then S# 0#-    else                              S# (negateInt# 1#)--{-# NOINLINE plusInteger #-}-plusInteger :: Integer -> Integer -> Integer-plusInteger (S# i)      (S# j)   = case addIntC# i j of-                                   (# r, c #) ->-                                       if isTrue# (c ==# 0#)-                                       then S# r-#if SIZEOF_HSWORD == SIZEOF_LONG-                                       else case int2Integer# i of-                                            (# s, d #) -> mpzToInteger (plusIntegerInt# s d j)-#else-                                       else plusInteger (toBig (S# i)) (toBig (S# j))-#endif-plusInteger i1@(J# _ _) (S# 0#)   = i1-#if SIZEOF_HSWORD == SIZEOF_LONG-plusInteger (J# s1 d1)  (S# j)    = mpzToInteger (plusIntegerInt# s1 d1 j)-#else-plusInteger i1@(J# _ _) i2@(S# _) = plusInteger i1 (toBig i2)-#endif-plusInteger i1@(S# _) i2@(J# _ _) = plusInteger i2 i1-plusInteger (J# s1 d1) (J# s2 d2) = mpzToInteger (plusInteger# s1 d1 s2 d2)--{-# NOINLINE minusInteger #-}-minusInteger :: Integer -> Integer -> Integer-minusInteger (S# i)      (S# j)    = case subIntC# i j of-                                     (# r, c #) ->-                                         if isTrue# (c ==# 0#) then S# r-#if SIZEOF_HSWORD == SIZEOF_LONG-                                         else case int2Integer# i of-                                              (# s, d #) -> mpzToInteger (minusIntegerInt# s d j)-#else-                                         else minusInteger (toBig (S# i)) (toBig (S# j))-#endif-minusInteger i1@(J# _ _) (S# 0#)   = i1-minusInteger (S# 0#)    (J# s2 d2) = J# (negateInt# s2) d2-#if SIZEOF_HSWORD == SIZEOF_LONG-minusInteger (J# s1 d1)  (S# j)    = mpzToInteger (minusIntegerInt# s1 d1 j)-minusInteger (S# i)     (J# s2 d2) = mpzToInteger (plusIntegerInt# (negateInt# s2) d2 i)-#else-minusInteger i1@(J# _ _) i2@(S# _) = minusInteger i1 (toBig i2)-minusInteger i1@(S# _) i2@(J# _ _) = minusInteger (toBig i1) i2-#endif-minusInteger (J# s1 d1) (J# s2 d2) = mpzToInteger (minusInteger# s1 d1 s2 d2)--{-# NOINLINE timesInteger #-}-timesInteger :: Integer -> Integer -> Integer-timesInteger (S# i) (S# j)         = if isTrue# (mulIntMayOflo# i j ==# 0#)-                                     then S# (i *# j)-#if SIZEOF_HSWORD == SIZEOF_LONG-                                     else case int2Integer# i of-                                          (# s, d #) -> mpzToInteger (timesIntegerInt# s d j)-#else-                                     else timesInteger (toBig (S# i)) (toBig (S# j))-#endif-timesInteger (S# 0#)     _         = S# 0#-timesInteger (S# -1#)    i2        = negateInteger i2-timesInteger (S# 1#)     i2        = i2-#if SIZEOF_HSWORD == SIZEOF_LONG-timesInteger (S# i1)    (J# s2 d2) = mpzToInteger (timesIntegerInt# s2 d2 i1)-#else-timesInteger i1@(S# _) i2@(J# _ _) = timesInteger (toBig i1) i2-#endif-timesInteger i1@(J# _ _) i2@(S# _) = timesInteger i2 i1 -- swap args & retry-timesInteger (J# s1 d1) (J# s2 d2) = mpzToInteger (timesInteger# s1 d1 s2 d2)--{-# NOINLINE negateInteger #-}-negateInteger :: Integer -> Integer-negateInteger (S# INT_MINBOUND) = NEG_INT_MINBOUND-negateInteger (S# i)            = S# (negateInt# i)-negateInteger (J# s d)          = J# (negateInt# s) d-\end{code}---%*********************************************************-%*                                                      *-\subsection{The @Integer@ stuff for Double@}-%*                                                      *-%*********************************************************--\begin{code}-{-# NOINLINE encodeFloatInteger #-}-encodeFloatInteger :: Integer -> Int# -> Float#-encodeFloatInteger (S# i) j     = int_encodeFloat# i j-encodeFloatInteger (J# s# d#) e = encodeFloat# s# d# e--{-# NOINLINE encodeDoubleInteger #-}-encodeDoubleInteger :: Integer -> Int# -> Double#-encodeDoubleInteger (S# i) j     = int_encodeDouble# i j-encodeDoubleInteger (J# s# d#) e = encodeDouble# s# d# e--{-# NOINLINE decodeDoubleInteger #-}-decodeDoubleInteger :: Double# -> (# Integer, Int# #)-decodeDoubleInteger d = case decodeDouble# d of-                        (# exp#, man# #) -> let !man = mpzToInteger man#-                                            in (# man, exp# #)---- previous code: doubleFromInteger n = fromInteger n = encodeFloat n 0--- doesn't work too well, because encodeFloat is defined in--- terms of ccalls which can never be simplified away.  We--- want simple literals like (fromInteger 3 :: Float) to turn--- into (F# 3.0), hence the special case for S# here.--{-# NOINLINE doubleFromInteger #-}-doubleFromInteger :: Integer -> Double#-doubleFromInteger (S# i#) = int2Double# i#-doubleFromInteger (J# s# d#) = encodeDouble# s# d# 0#--{-# NOINLINE floatFromInteger #-}-floatFromInteger :: Integer -> Float#-floatFromInteger (S# i#) = int2Float# i#-floatFromInteger (J# s# d#) = encodeFloat# s# d# 0#--foreign import ccall unsafe "integer_cbits_encodeFloat"-        encodeFloat# :: Int# -> ByteArray# -> Int# -> Float#-foreign import ccall unsafe "__int_encodeFloat"-        int_encodeFloat# :: Int# -> Int# -> Float#--foreign import ccall unsafe "integer_cbits_encodeDouble"-        encodeDouble# :: Int# -> ByteArray# -> Int# -> Double#-foreign import ccall unsafe "__int_encodeDouble"-        int_encodeDouble# :: Int# -> Int# -> Double#-\end{code}--%*********************************************************-%*                                                      *-\subsection{The @Integer@ Bit definitions@}-%*                                                      *-%*********************************************************--We explicitly pattern match against J# and S# in order to produce-Core that doesn't have pattern matching errors, as that would-introduce a spurious dependency to base.--\begin{code}-{-# NOINLINE andInteger #-}-andInteger :: Integer -> Integer -> Integer-(S# x)     `andInteger`   (S# y)     = S# (word2Int# (int2Word# x `and#` int2Word# y))-x@(S# _)   `andInteger` y@(J# _ _)   = toBig x `andInteger` y-x@(J# _ _) `andInteger` y@(S# _)     = x `andInteger` toBig y-(J# s1 d1) `andInteger`   (J# s2 d2) =-     mpzToInteger (andInteger# s1 d1 s2 d2)--{-# NOINLINE orInteger #-}-orInteger :: Integer -> Integer -> Integer-(S# x)     `orInteger`   (S# y)     = S# (word2Int# (int2Word# x `or#` int2Word# y))-x@(S# _)   `orInteger` y@(J# _ _)   = toBig x `orInteger` y-x@(J# _ _) `orInteger` y@(S# _)     = x `orInteger` toBig y-(J# s1 d1) `orInteger`   (J# s2 d2) =-     mpzToInteger (orInteger# s1 d1 s2 d2)--{-# NOINLINE xorInteger #-}-xorInteger :: Integer -> Integer -> Integer-(S# x)     `xorInteger`   (S# y)     = S# (word2Int# (int2Word# x `xor#` int2Word# y))-x@(S# _)   `xorInteger` y@(J# _ _)   = toBig x `xorInteger` y-x@(J# _ _) `xorInteger` y@(S# _)     = x `xorInteger` toBig y-(J# s1 d1) `xorInteger`   (J# s2 d2) =-     mpzToInteger (xorInteger# s1 d1 s2 d2)--{-# NOINLINE complementInteger #-}-complementInteger :: Integer -> Integer-complementInteger (S# x)-    = S# (word2Int# (int2Word# x `xor#` int2Word# (0# -# 1#)))-complementInteger (J# s d)-    = mpzToInteger (complementInteger# s d)--{-# NOINLINE shiftLInteger #-}-shiftLInteger :: Integer -> Int# -> Integer-shiftLInteger j@(S# _) i = shiftLInteger (toBig j) i-shiftLInteger (J# s d) i = mpzToInteger (mul2ExpInteger# s d i)--{-# NOINLINE shiftRInteger #-}-shiftRInteger :: Integer -> Int# -> Integer-shiftRInteger j@(S# _) i = shiftRInteger (toBig j) i-shiftRInteger (J# s d) i = mpzToInteger (fdivQ2ExpInteger# s d i)---- | /Since: 0.5.1.0/-{-# NOINLINE testBitInteger #-}-testBitInteger :: Integer -> Int# -> Bool-testBitInteger j@(S# _) i = testBitInteger (toBig j) i-testBitInteger (J# s d) i = isTrue# (testBitInteger# s d i /=# 0#)---- | \"@'powInteger' /b/ /e/@\" computes base @/b/@ raised to exponent @/e/@.------ /Since: 0.5.1.0/-{-# NOINLINE powInteger #-}-powInteger :: Integer -> Word# -> Integer-powInteger j@(S# _) e = powInteger (toBig j) e-powInteger (J# s d) e = mpzToInteger (powInteger# s d e)---- | \"@'powModInteger' /b/ /e/ /m/@\" computes base @/b/@ raised to--- exponent @/e/@ modulo @/m/@.------ Negative exponents are supported if an inverse modulo @/m/@--- exists. 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'.------ /Since: 0.5.1.0/-{-# NOINLINE powModInteger #-}-powModInteger :: Integer -> Integer -> Integer -> Integer-powModInteger (J# s1 d1) (J# s2 d2) (J# s3 d3) =-    mpzToInteger (powModInteger# s1 d1 s2 d2 s3 d3)-powModInteger b e m = powModInteger (toBig b) (toBig e) (toBig m)---- | \"@'powModSecInteger' /b/ /e/ /m/@\" computes base @/b/@ raised to--- exponent @/e/@ modulo @/m/@. It is required that @/e/ > 0@ and--- @/m/@ is odd.------ This is a \"secure\" variant of 'powModInteger' using the--- @mpz_powm_sec()@ function which is designed to be resilient to side--- channel attacks and is therefore intended for cryptographic--- applications.------ This primitive is only available when the underlying GMP library--- supports it (GMP >= 5). Otherwise, it internally falls back to--- @'powModInteger'@, and a warning will be emitted when used.------ /Since: 0.5.1.0/-{-# NOINLINE powModSecInteger #-}-powModSecInteger :: Integer -> Integer -> Integer -> Integer-powModSecInteger (J# s1 d1) (J# s2 d2) (J# s3 d3) =-    mpzToInteger (powModSecInteger# s1 d1 s2 d2 s3 d3)-powModSecInteger b e m = powModSecInteger (toBig b) (toBig e) (toBig m)--#if HAVE_SECURE_POWM == 0-{-# WARNING powModSecInteger "The underlying GMP library does not support a secure version of powModInteger which is side-channel resistant - you need at least GMP version 5 to support this" #-}-#endif---- | \"@'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@.------ Note: The implementation exploits the undocumented property of--- @mpz_invert()@ to not mangle the result operand (which is initialized--- to 0) in case of non-existence of the inverse.------ /Since: 0.5.1.0/-{-# NOINLINE recipModInteger #-}-recipModInteger :: Integer -> Integer -> Integer-recipModInteger j@(S# _) m@(S# _)   = recipModInteger (toBig j) (toBig m)-recipModInteger j@(S# _) m@(J# _ _) = recipModInteger (toBig j) m-recipModInteger j@(J# _ _) m@(S# _) = recipModInteger j (toBig m)-recipModInteger (J# s d) (J# ms md) = mpzToInteger (recipModInteger# s d ms md)---- | 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 j@(S# _) reps = testPrimeInteger (toBig j) reps-testPrimeInteger (J# s d) reps = testPrimeInteger# s d reps---- | 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 j@(S# _) = nextPrimeInteger (toBig j)-nextPrimeInteger (J# s d) = mpzToInteger (nextPrimeInteger# s d)---- | Compute number of digits (without sign) in given @/base/@.------ It's recommended to avoid calling 'sizeInBaseInteger' for small--- integers as this function would currently convert those to big--- integers in order to call @mpz_sizeinbase()@.------ 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/-{-# NOINLINE sizeInBaseInteger #-}-sizeInBaseInteger :: Integer -> Int# -> Word#-sizeInBaseInteger (J# s d) b = sizeInBaseInteger# s d b-sizeInBaseInteger j@(S# _) b = sizeInBaseInteger (toBig j) b -- TODO---- | Dump 'Integer' (without sign) to mutable byte-array in base-256 representation.------ The call------ @'exportIntegerToMutableByteArray' /i/ /mba/ /offset/ /order/@------ writes------ * the 'Integer' @/i/@------ * into the 'MutableByteArray#' @/mba/@ starting at @/offset/@------ * with most significant byte first if @order@ is @1#@ or least---   significant byte first if @order@ is @-1#@, 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 order to call @mpz_export()@.------ /Since: 0.5.1.0/-{-# NOINLINE exportIntegerToMutableByteArray #-}-exportIntegerToMutableByteArray :: Integer -> MutableByteArray# s -> Word# -> Int# -> State# s -> (# State# s, Word# #)-exportIntegerToMutableByteArray (J# s d) mba o e = exportIntegerToMutableByteArray# s d mba o e-exportIntegerToMutableByteArray j@(S# _) mba o e = exportIntegerToMutableByteArray (toBig j) mba o e -- TODO---- | Dump 'Integer' (without sign) to @/addr/@ in base-256 representation.------ @'exportIntegerToAddr' /addr/ /o/ /e/@------ See description of 'exportIntegerToMutableByteArray' for more details.------ /Since: 0.5.1.0/-{-# NOINLINE exportIntegerToAddr #-}-exportIntegerToAddr :: Integer -> Addr# -> Int# -> State# s -> (# State# s, Word# #)-exportIntegerToAddr (J# s d) addr o e = exportIntegerToAddr# s d addr o e-exportIntegerToAddr j@(S# _) addr o e = exportIntegerToAddr (toBig j) addr o e -- TODO---- | Read 'Integer' (without sign) from byte-array in base-256 representation.------ The call------ @'importIntegerFromByteArray' /ba/ /offset/ /size/ /order/@------ reads------ * @/size/@ bytes from the 'ByteArray#' @/ba/@ starting at @/offset/@------ * with most significant byte first if @/order/@ is @1#@ or least---   significant byte first if @/order/@ is @-1#@, and------ * returns a new 'Integer'------ /Since: 0.5.1.0/-{-# NOINLINE importIntegerFromByteArray #-}-importIntegerFromByteArray :: ByteArray# -> Word# -> Word# -> Int# -> Integer-importIntegerFromByteArray ba o l e = mpzToInteger (importIntegerFromByteArray# ba o l e)---- | Read 'Integer' (without sign) from memory location at @/addr/@ in--- base-256 representation.------ @'importIntegerFromAddr' /addr/ /size/ /order/@------ See description of 'importIntegerFromByteArray' for more details.------ /Since: 0.5.1.0/-{-# NOINLINE importIntegerFromAddr #-}-importIntegerFromAddr :: Addr# -> Word# -> Int# -> State# s -> (# State# s, Integer #)-importIntegerFromAddr addr l e st = case importIntegerFromAddr# addr l e st of-                                      (# st', mpz #) -> let !j = mpzToInteger mpz in (# st', j #)--\end{code}--%*********************************************************-%*                                                      *-\subsection{The @Integer@ hashing@}-%*                                                      *-%*********************************************************--\begin{code}--- This is used by hashUnique---- | 'hashInteger' returns the same value as 'fromIntegral', although in--- unboxed form.  It might be a reasonable hash function for 'Integer',--- given a suitable distribution of 'Integer' values.------ Note: 'hashInteger' is currently just an alias for 'integerToInt'.--hashInteger :: Integer -> Int#-hashInteger = integerToInt-\end{code}-
LICENSE view
@@ -1,62 +1,30 @@-This library (libraries/integer(-gmp)) is derived from code from several-sources: --  * Code from the GHC project which is largely (c) The University of-    Glasgow, and distributable under a BSD-style license (see below),--  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones-    and freely redistributable (but see the full license for-    restrictions).--The full text of these licenses is reproduced below.  All of the-licenses are BSD-style or compatible.---------------------------------------------------------------------------------The Glasgow Haskell Compiler License+Copyright (c) 2014, Herbert Valerio Riedel -Copyright 2004, The University Court of the University of Glasgow.  All rights reserved.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -- Redistributions of source code must retain the above copyright notice,-this list of conditions and the following disclaimer.- -- Redistributions in binary form must reproduce the above copyright notice,-this list of conditions and the following disclaimer in the documentation-and/or other materials provided with the distribution.- -- Neither name of the University nor the names of its contributors may be-used to endorse or promote products derived from this software without-specific prior written permission. --THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF-GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE-UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH-DAMAGE.---------------------------------------------------------------------------------Code derived from the document "Report on the Programming Language-Haskell 98", is distributed under the following license:+    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer. -  Copyright (c) 2002 Simon Peyton Jones+    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution. -  The authors intend this Report to belong to the entire Haskell-  community, and so we grant permission to copy and distribute it for-  any purpose, provided that it is reproduced in its entirety,-  including this Notice.  Modified versions of this Report may also be-  copied and distributed for any purpose, provided that the modified-  version is clearly presented as such, and that it does not claim to-  be a definition of the Haskell 98 Language.+    * Neither the name of Herbert Valerio Riedel nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
− Setup.hs
@@ -1,6 +0,0 @@-module Main (main) where--import Distribution.Simple--main :: IO ()-main = defaultMain
− 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/alloc.c
@@ -1,97 +0,0 @@-/* ------------------------------------------------------------------------------ *- * (c) The GHC Team, 1998-2012- *- * ---------------------------------------------------------------------------*/--#include <string.h>--#include "Rts.h"--#include "gmp.h"--void * stgAllocForGMP   (size_t size_in_bytes);-void * stgReallocForGMP (void *ptr, size_t old_size, size_t new_size);-void   stgDeallocForGMP (void *ptr STG_UNUSED, size_t size STG_UNUSED);--static void initAllocForGMP( void ) __attribute__((constructor));--/* ------------------------------------------------------------------------------   Tell GMP to use our custom heap allocation functions.--   Our allocation strategy is to use GHC heap allocations rather than malloc-   and co. The heap objects we use are ByteArray#s which of course have their-   usual header word or two. But gmp doesn't know about ghc heap objects and-   header words. So our allocator has to make a ByteArray# and return a pointer-   to its interior! When the gmp function returns we receive that interior-   pointer. Then we look back a couple words to get the proper ByteArray#-   pointer (which then gets returned as a ByteArray# and thus get tracked-   properly by the GC).--   WARNING!! WARNING!! WARNING!!--     It is absolutely vital that this initialisation function be called before-     any of the gmp functions are called. We'd still be looking back a couple-     words for the ByteArray# header, but if we were accidentally using malloc-     then it'd all go wrong because of course there would be no ByteArray#-     header, just malloc's own internal book keeping info. To make things worse-     we would not notice immediately, it'd only be when the GC comes round to-     inspect things... BANG!--     > Program received signal SIGSEGV, Segmentation fault.-     > [Switching to Thread 0x7f5a9ebc76f0 (LWP 17838)]-     > evacuate1 (p=0x7f5a99acd2e0) at rts/sm/Evac.c:375-     > 375       switch (info->type) {--   -------------------------------------------------------------------------- */--static void initAllocForGMP( void )-{-  mp_set_memory_functions(stgAllocForGMP, stgReallocForGMP, stgDeallocForGMP);-}---/* ------------------------------------------------------------------------------   Allocation functions for GMP.--   These all use the allocate() interface - we can't have any garbage-   collection going on during a gmp operation, so we use allocate()-   which always succeeds.  The gmp operations which might need to-   allocate will ask the storage manager (via doYouWantToGC()) whether-   a garbage collection is required, in case we get into a loop doing-   only allocate() style allocation.-   -------------------------------------------------------------------------- */--void *-stgAllocForGMP (size_t size_in_bytes)-{-  StgArrWords* arr;-  nat data_size_in_words, total_size_in_words;-  Capability *cap;--  /* round up to a whole number of words */-  data_size_in_words  = ROUNDUP_BYTES_TO_WDS(size_in_bytes);-  total_size_in_words = sizeofW(StgArrWords) + data_size_in_words;--  /* allocate and fill it in. */-  cap = rts_unsafeGetMyCapability();-  arr = (StgArrWords *)allocate(cap, total_size_in_words);-  SET_ARR_HDR(arr, &stg_ARR_WORDS_info, ((CapabilityPublic*)cap)->r.rCCCS, size_in_bytes);--  /* and return a ptr to the goods inside the array */-  return arr->payload;-}--void *-stgReallocForGMP (void *ptr, size_t old_size, size_t new_size)-{-  size_t min_size = old_size < new_size ? old_size : new_size;--  return memcpy(stgAllocForGMP(new_size), ptr, min_size);-}--void-stgDeallocForGMP (void *ptr STG_UNUSED, size_t size STG_UNUSED)-{-    /* easy for us: the garbage collector does the dealloc'n */-}
− cbits/cbits.c
@@ -1,14 +0,0 @@--/* We combine the C files here.- *- * There is actually a good reason for this, really!- * The alloc file contains a __attribute__((constructor)) function. We must- * have this function in the same .o file as other stuff that actually gets- * used otherwise the static linker doesn't bother to pull in the .o file- * containing the constructor function. While we could just stick them in- * the same .c file that'd be a bit annoying. So we combine them here.- * */--#include "alloc.c"-#include "float.c"-#include "longlong.c"
− cbits/float.c
@@ -1,249 +0,0 @@-/* ------------------------------------------------------------------------------ *- * (c) Lennart Augustsson- * (c) The GHC Team, 1998-2000- *- * Support for floating-point <-> gmp integer primitives- *- * ---------------------------------------------------------------------------*/--/* TODO: do we need PosixSource.h ? it lives in rts/ not public includes/ */-/* #include "PosixSource.h" */-#include "Rts.h"-#include "gmp.h"-#include "GmpDerivedConstants.h"--#include <math.h>--#define IEEE_FLOATING_POINT 1--/*- * Encoding and decoding Doubles.  Code based on the HBC code- * (lib/fltcode.c).- */--#define SIZEOF_LIMB_T SIZEOF_MP_LIMB_T--#if SIZEOF_LIMB_T == 4-#define GMP_BASE 4294967296.0-#define LIMBBITS_LOG_2 5-#elif SIZEOF_LIMB_T == 8-#define GMP_BASE 18446744073709551616.0-#define LIMBBITS_LOG_2 6-#else-#error Cannot cope with SIZEOF_LIMB_T -- please add definition of GMP_BASE-#endif--#define DNBIGIT  ((SIZEOF_DOUBLE+SIZEOF_LIMB_T-1)/SIZEOF_LIMB_T)-#define FNBIGIT  ((SIZEOF_FLOAT +SIZEOF_LIMB_T-1)/SIZEOF_LIMB_T)--#if IEEE_FLOATING_POINT-#define MY_DMINEXP  ((DBL_MIN_EXP) - (DBL_MANT_DIG) - 1)-/* DMINEXP is defined in values.h on Linux (for example) */-#define DHIGHBIT 0x00100000-#define DMSBIT   0x80000000--#define MY_FMINEXP  ((FLT_MIN_EXP) - (FLT_MANT_DIG) - 1)-#define FHIGHBIT 0x00800000-#define FMSBIT   0x80000000-#endif--#if defined(WORDS_BIGENDIAN) || defined(FLOAT_WORDS_BIGENDIAN)-#define L 1-#define H 0-#else-#define L 0-#define H 1-#endif--#define __abs(a)                (( (a) >= 0 ) ? (a) : (-(a)))--StgDouble-integer_cbits_encodeDouble (I_ size, StgByteArray ba, I_ e) /* result = s * 2^e */-{-    StgDouble r;-    const mp_limb_t *const arr = (const mp_limb_t *)ba;-    I_ i;--    /* Convert MP_INT to a double; knows a lot about internal rep! */-    i = __abs(size)-1;-    if ((i < 15) || (e >= 0)) /* overflows only if the final result does */-    {-        /* This would cause overflow if a large MP_INT is passed, even if the-         * exponent would scale it back into range, so we do it only when it's safe. */-        for(r = 0.0; i >= 0; i--)-            r = (r * GMP_BASE) + arr[i];--    } else { /* possibly more than 1024 bits in the MP_INT, but gets scaled down */--        /* Find the first nonzero limb; normally it would be the first */-        r = 0.0;-        while((i >= 0) && (r == 0.0))-        {-            r = arr[i--];-        }-        if (i >= 0)-            r = (r * GMP_BASE) + arr[i];-#if SIZEOF_LIMB_T < 8-        if (i > 0)-            r = (r * GMP_BASE) + arr[--i];-#endif-        /* Now we have at least the 65 leading bits of the MP_INT or all of it.-         * Any further bits would be rounded down, so from now on everything is-         * multiplication by powers of 2.-         * If i is positive, arr contains i limbs we haven't looked at yet, so-         * adjust the exponent by i*8*SIZEOF_LIMB_T. Unfortunately, we must-         * beware of overflow, so we can't simply add this to e. */-        if (i > 0)-        {-            /* first add the number of whole limbs that would be cancelled */-            i = i + e / (8 * SIZEOF_LIMB_T);-            /* check for overflow */-            if ((i > 0) && ((i >> (8*sizeof(I_) - 1 - LIMBBITS_LOG_2)) > 0))-            {-                /* overflow, give e a large dummy value */-                e = 2147483647;-            } else {-                /* no overflow, get the exact value */-                e = i * (8 * SIZEOF_LIMB_T) + (e % (8 * SIZEOF_LIMB_T));-            }-        }-    }--    /* Now raise to the exponent */-    if ( r != 0.0 ) /* Lennart suggests this avoids a bug in MIPS's ldexp */-        r = ldexp(r, e);--    /* sign is encoded in the size */-    if (size < 0)-        r = -r;--    return r;-}--StgFloat-integer_cbits_encodeFloat (I_ size, StgByteArray ba, I_ e) /* result = s * 2^e */-{-    StgFloat r;-    const mp_limb_t *arr = (const mp_limb_t *)ba;-    I_ i;--    /* Convert MP_INT to a float; knows a lot about internal rep! */-    i = __abs(size)-1;-    /* just in case StgFloat is a double, check sizes */-#if SIZEOF_FLOAT == 4-    if ((i < 2) || (e >= 0))-#else-    if ((i < 15) || (e >= 0))-#endif-    {-        for(r = 0.0; i >= 0; i--)-            r = (r * GMP_BASE) + arr[i];-    } else {--        /* Find the first nonzero limb; normally it would be the first */-        r = 0.0;-        while((i >= 0) && (r == 0.0))-        {-            r = arr[i--];-        }-        if (i >= 0)-            r = (r * GMP_BASE) + arr[i];-#if (SIZEOF_LIMB_T < 8) && (SIZEOF_FLOAT > 4)-        if (i > 0)-            r = (r * GMP_BASE) + arr[--i];-#endif-        /* Now we have enough leading bits of the MP_INT.-         * Any further bits would be rounded down, so from now on everything is-         * multiplication by powers of 2.-         * If i is positive, arr contains i limbs we haven't looked at yet, so-         * adjust the exponent by i*8*SIZEOF_LIMB_T. Unfortunately, we must-         * beware of overflow, so we can't simply add this to e. */-        if (i > 0)-        {-            /* first add the number of whole limbs that would be cancelled */-            i = i + e / (8 * SIZEOF_LIMB_T);-            /* check for overflow */-            if ((i > 0) && ((i >> (8*sizeof(I_) - 1 - LIMBBITS_LOG_2)) > 0))-            {-                /* overflow, give e a large dummy value */-                e = 2147483647;-            } else {-                /* no overflow, get the exact value */-                e = i * (8 * SIZEOF_LIMB_T) + (e % (8 * SIZEOF_LIMB_T));-            }-        }-    }--    /* Now raise to the exponent */-    if ( r != 0.0 ) /* Lennart suggests this avoids a bug in MIPS's ldexp */-        r = ldexp(r, e);--    /* sign is encoded in the size */-    if (size < 0)-        r = -r;--    return r;-}--/* This only supports IEEE floating point */--void-integer_cbits_decodeDouble (MP_INT *man, I_ *exp, StgDouble dbl)-{-    /* Do some bit fiddling on IEEE */-    unsigned int low, high;                      /* assuming 32 bit ints */-    int sign, iexp;-    union { double d; unsigned int i[2]; } u;    /* assuming 32 bit ints, 64 bit double */--    ASSERT(sizeof(unsigned int ) == 4            );-    ASSERT(sizeof(dbl          ) == SIZEOF_DOUBLE);-    ASSERT(sizeof(man->_mp_d[0]) == SIZEOF_LIMB_T);-    ASSERT(DNBIGIT*SIZEOF_LIMB_T >= SIZEOF_DOUBLE);--    u.d = dbl;            /* grab chunks of the double */-    low = u.i[L];-    high = u.i[H];--    /* we know the MP_INT* passed in has size zero, so we realloc-            no matter what.-    */-    man->_mp_alloc = DNBIGIT;--    if (low == 0 && (high & ~DMSBIT) == 0) {-        man->_mp_size = 0;-        *exp = 0L;-    } else {-        man->_mp_size = DNBIGIT;-        iexp = ((high >> 20) & 0x7ff) + MY_DMINEXP;-        sign = high;--        high &= DHIGHBIT-1;-        if (iexp != MY_DMINEXP)        /* don't add hidden bit to denorms */-            high |= DHIGHBIT;-        else {-            iexp++;-            /* A denorm, normalize the mantissa */-            while (! (high & DHIGHBIT)) {-                high <<= 1;-                if (low & DMSBIT)-                    high++;-                low <<= 1;-                iexp--;-            }-        }-        *exp = (I_) iexp;-#if DNBIGIT == 2-        man->_mp_d[0] = (mp_limb_t)low;-        man->_mp_d[1] = (mp_limb_t)high;-#else-#if DNBIGIT == 1-        man->_mp_d[0] = ((mp_limb_t)high) << 32 | (mp_limb_t)low;-#else-#error Cannot cope with DNBIGIT-#endif-#endif-        if (sign < 0)-            man->_mp_size = -man->_mp_size;-    }-}
− cbits/gmp-wrappers.cmm
@@ -1,823 +0,0 @@-/* ------------------------------------------------------------------------------ *- * (c) The GHC Team, 1998-2012- *- * Out-of-line primitive operations- *- * This file contains the implementations of all the primitive- * operations ("primops") which are not expanded inline.  See- * ghc/compiler/prelude/primops.txt.pp for a list of all the primops;- * this file contains code for most of those with the attribute- * out_of_line=True.- *- * Entry convention: the entry convention for a primop is that all the- * args are in Stg registers (R1, R2, etc.).  This is to make writing- * the primops easier.  (see compiler/codeGen/CgCallConv.hs).- *- * Return convention: results from a primop are generally returned- * using the ordinary unboxed tuple return convention.  The C-- parser- * implements the RET_xxxx() macros to perform unboxed-tuple returns- * based on the prevailing return convention.- *- * This file is written in a subset of C--, extended with various- * features specific to GHC.  It is compiled by GHC directly.  For the- * syntax of .cmm files, see the parser in ghc/compiler/cmm/CmmParse.y.- *- * ---------------------------------------------------------------------------*/--#include "Cmm.h"-#include "GmpDerivedConstants.h"-#include "HsIntegerGmp.h"--import "integer-gmp" __gmpz_add;-import "integer-gmp" __gmpz_add_ui;-import "integer-gmp" __gmpz_sub;-import "integer-gmp" __gmpz_sub_ui;-import "integer-gmp" __gmpz_mul;-import "integer-gmp" __gmpz_mul_2exp;-import "integer-gmp" __gmpz_mul_si;-import "integer-gmp" __gmpz_tstbit;-import "integer-gmp" __gmpz_fdiv_q_2exp;-import "integer-gmp" __gmpz_gcd;-import "integer-gmp" __gmpz_gcdext;-import "integer-gmp" __gmpn_gcd_1;-import "integer-gmp" __gmpn_cmp;-import "integer-gmp" __gmpz_tdiv_q;-import "integer-gmp" __gmpz_tdiv_q_ui;-import "integer-gmp" __gmpz_tdiv_r;-import "integer-gmp" __gmpz_tdiv_r_ui;-import "integer-gmp" __gmpz_fdiv_q;-import "integer-gmp" __gmpz_fdiv_q_ui;-import "integer-gmp" __gmpz_fdiv_r;-import "integer-gmp" __gmpz_fdiv_r_ui;-import "integer-gmp" __gmpz_tdiv_qr;-import "integer-gmp" __gmpz_tdiv_qr_ui;-import "integer-gmp" __gmpz_fdiv_qr;-import "integer-gmp" __gmpz_fdiv_qr_ui;-import "integer-gmp" __gmpz_divexact;-import "integer-gmp" __gmpz_divexact_ui;-import "integer-gmp" __gmpz_and;-import "integer-gmp" __gmpz_xor;-import "integer-gmp" __gmpz_ior;-import "integer-gmp" __gmpz_com;-import "integer-gmp" __gmpz_pow_ui;-import "integer-gmp" __gmpz_powm;-#if HAVE_SECURE_POWM == 1-import "integer-gmp" __gmpz_powm_sec;-#endif-import "integer-gmp" __gmpz_invert;-import "integer-gmp" __gmpz_nextprime;-import "integer-gmp" __gmpz_probab_prime_p;-import "integer-gmp" __gmpz_sizeinbase;-import "integer-gmp" __gmpz_import;-import "integer-gmp" __gmpz_export;--import "integer-gmp" integer_cbits_decodeDouble;--import "rts" stg_INTLIKE_closure;--/* ------------------------------------------------------------------------------   Arbitrary-precision Integer operations.--   There are some assumptions in this code that mp_limb_t == W_.  This is-   the case for all the platforms that GHC supports, currently.-   -------------------------------------------------------------------------- */--#if SIZEOF_MP_LIMB_T != SIZEOF_W-#error "sizeof(mp_limb_t) != sizeof(W_)"-#endif--/* This is used when a dummy pointer is needed for a ByteArray# return value--   Ideally this would be a statically allocated 'ByteArray#'-   containing SIZEOF_W 0-bytes. However, since in those cases when a-   dummy value is needed, the 'ByteArray#' is not supposed to be-   accessed anyway, this is should be a tolerable hack.- */-#define DUMMY_BYTE_ARR (stg_INTLIKE_closure+1)--/* set mpz_t from Int#/ByteArray# */-#define MP_INT_SET_FROM_BA(mp_ptr,i,ba)                  \-  MP_INT__mp_alloc(mp_ptr) = W_TO_INT(BYTE_ARR_WDS(ba)); \-  MP_INT__mp_size(mp_ptr)  = W_TO_INT(i);                \-  MP_INT__mp_d(mp_ptr)     = BYTE_ARR_CTS(ba)--/* convert mpz_t to Int#/ByteArray# return pair */-#define MP_INT_AS_PAIR(mp_ptr) \-  TO_W_(MP_INT__mp_size(mp_ptr)),(MP_INT__mp_d(mp_ptr)-SIZEOF_StgArrWords)--#define MP_INT_TO_BA(mp_ptr) \-  (MP_INT__mp_d(mp_ptr)-SIZEOF_StgArrWords)--/* Size of mpz_t with single limb */-#define SIZEOF_MP_INT_1LIMB (SIZEOF_MP_INT+WDS(1))--/* Initialize 0-valued single-limb mpz_t at mp_ptr */-#define MP_INT_1LIMB_INIT0(mp_ptr)                       \-  MP_INT__mp_alloc(mp_ptr) = W_TO_INT(1);                \-  MP_INT__mp_size(mp_ptr)  = W_TO_INT(0);                \-  MP_INT__mp_d(mp_ptr)     = (mp_ptr+SIZEOF_MP_INT)---/* return mpz_t as (# s::Int#, d::ByteArray#, l1::Word# #) tuple- *- * semantics:- *- *  (#  0, _, 0 #) -> value = 0- *  (#  1, _, w #) -> value =  w- *  (# -1, _, w #) -> value = -w- *  (#  s, d, 0 #) -> value =  J# s d- *- */-#define MP_INT_1LIMB_RETURN(mp_ptr)                    \-  CInt __mp_s;                                         \-  __mp_s = MP_INT__mp_size(mp_ptr);                    \-                                                       \-  if (__mp_s == W_TO_INT(0))                           \-  {                                                    \-    return (0,DUMMY_BYTE_ARR,0);                       \-  }                                                    \-                                                       \-  if (__mp_s == W_TO_INT(-1) || __mp_s == W_TO_INT(1)) \-  {                                                    \-    return (TO_W_(__mp_s),DUMMY_BYTE_ARR,W_[MP_INT__mp_d(mp_ptr)]); \-  }                                                    \-                                                       \-  return (TO_W_(__mp_s),MP_INT_TO_BA(mp_ptr),0)--/* Helper macro used by MP_INT_1LIMB_RETURN2 */-#define MP_INT_1LIMB_AS_TUP3(s,d,w,mp_ptr) \-  CInt s; P_ d; W_ w;                            \-  s = MP_INT__mp_size(mp_ptr);                   \-                                                 \-  if (s == W_TO_INT(0))                          \-  {                                              \-    d = DUMMY_BYTE_ARR; w = 0;                            \-  } else {                                       \-    if (s == W_TO_INT(-1) || s == W_TO_INT(1))   \-    {                                            \-      d = DUMMY_BYTE_ARR; w = W_[MP_INT__mp_d(mp_ptr)];   \-    } else {                                     \-      d = MP_INT_TO_BA(mp_ptr); w = 0;           \-    }                                            \-  }--#define MP_INT_1LIMB_RETURN2(mp_ptr1,mp_ptr2)         \-  MP_INT_1LIMB_AS_TUP3(__r1s,__r1d,__r1w,mp_ptr1);    \-  MP_INT_1LIMB_AS_TUP3(__r2s,__r2d,__r2w,mp_ptr2);    \-  return (TO_W_(__r1s),__r1d,__r1w, TO_W_(__r2s),__r2d,__r2w)--/* :: ByteArray# -> Word# -> Word# -> Int# -> (# Int#, ByteArray#, Word# #) */-integer_cmm_importIntegerFromByteArrayzh (P_ ba, W_ of, W_ sz, W_ e)-{-  W_ src_ptr;-  W_ mp_result;--again:-  STK_CHK_GEN_N (SIZEOF_MP_INT_1LIMB);-  MAYBE_GC(again);--  mp_result = Sp - SIZEOF_MP_INT_1LIMB;-  MP_INT_1LIMB_INIT0(mp_result);--  src_ptr = BYTE_ARR_CTS(ba) + of;--  ccall __gmpz_import(mp_result "ptr", sz, W_TO_INT(e), W_TO_INT(1), W_TO_INT(0), 0, src_ptr "ptr");--  MP_INT_1LIMB_RETURN(mp_result);-}--/* :: Addr# -> Word# -> Int# -> State# s -> (# State# s, Int#, ByteArray#, Word# #) */-integer_cmm_importIntegerFromAddrzh (W_ src_ptr, W_ sz, W_ e)-{-  W_ mp_result;--again:-  STK_CHK_GEN_N (SIZEOF_MP_INT_1LIMB);-  MAYBE_GC(again);--  mp_result = Sp - SIZEOF_MP_INT_1LIMB;--  MP_INT_1LIMB_INIT0(mp_result);--  ccall __gmpz_import(mp_result "ptr", sz, W_TO_INT(e), W_TO_INT(1), W_TO_INT(0), 0, src_ptr "ptr");--  MP_INT_1LIMB_RETURN(mp_result);-}--/* :: Int# -> ByteArray# -> MutableByteArray# s -> Word# -> Int# -> State# s -> (# State# s, Word# #) */-integer_cmm_exportIntegerToMutableByteArrayzh (W_ ws1, P_ d1, P_ mba, W_ of, W_ e)-{-  W_ dst_ptr;-  W_ mp_tmp;-  W_ cnt_result;--again:-  STK_CHK_GEN_N (SIZEOF_MP_INT + SIZEOF_W);-  MAYBE_GC(again);--  mp_tmp = Sp - SIZEOF_MP_INT;-  MP_INT_SET_FROM_BA(mp_tmp, ws1, d1);--  cnt_result = Sp - (SIZEOF_MP_INT + SIZEOF_W);-  W_[cnt_result] = 0;--  dst_ptr = BYTE_ARR_CTS(mba) + of;--  ccall __gmpz_export(dst_ptr "ptr", cnt_result "ptr", W_TO_INT(e), W_TO_INT(1), W_TO_INT(0), 0, mp_tmp "ptr");--  return (W_[cnt_result]);-}--/* :: Int# -> ByteArray# -> Addr# -> Int# -> State# s -> (# State# s, Word# #) */-integer_cmm_exportIntegerToAddrzh (W_ ws1, P_ d1, W_ dst_ptr, W_ e)-{-  W_ mp_tmp;-  W_ cnt_result;--again:-  STK_CHK_GEN_N (SIZEOF_MP_INT + SIZEOF_W);-  MAYBE_GC(again);--  mp_tmp = Sp - SIZEOF_MP_INT;-  MP_INT_SET_FROM_BA(mp_tmp, ws1, d1);--  cnt_result = Sp - (SIZEOF_MP_INT + SIZEOF_W);-  W_[cnt_result] = 0;--  ccall __gmpz_export(dst_ptr "ptr", cnt_result "ptr", W_TO_INT(e), W_TO_INT(1), W_TO_INT(0), 0, mp_tmp "ptr");--  return (W_[cnt_result]);-}--integer_cmm_int2Integerzh (W_ val)-{-   W_ s, p; /* to avoid aliasing */--   ALLOC_PRIM_N (SIZEOF_StgArrWords + WDS(1), integer_cmm_int2Integerzh, val);--   p = Hp - SIZEOF_StgArrWords;-   SET_HDR(p, stg_ARR_WORDS_info, CCCS);-   StgArrWords_bytes(p) = SIZEOF_W;--   /* mpz_set_si is inlined here, makes things simpler */-   if (%lt(val,0)) {-        s  = -1;-        Hp(0) = -val;-   } else {-     if (%gt(val,0)) {-        s = 1;-        Hp(0) = val;-     } else {-        s = 0;-     }-  }--   /* returns (# size  :: Int#,-                 data  :: ByteArray#-               #)-   */-   return (s,p);-}--integer_cmm_word2Integerzh (W_ val)-{-   W_ s, p; /* to avoid aliasing */--   ALLOC_PRIM_N (SIZEOF_StgArrWords + WDS(1), integer_cmm_word2Integerzh, val);--   p = Hp - SIZEOF_StgArrWords;-   SET_HDR(p, stg_ARR_WORDS_info, CCCS);-   StgArrWords_bytes(p) = SIZEOF_W;--   if (val != 0) {-        s = 1;-        W_[Hp] = val;-   } else {-        s = 0;-   }--   /* returns (# size  :: Int#,-                 data  :: ByteArray# #)-   */-   return (s,p);-}---/*- * 'long long' primops for converting to/from Integers.- */--#if WORD_SIZE_IN_BITS < 64--integer_cmm_int64ToIntegerzh (L_ val)-{-   W_ hi, lo, s, neg, words_needed, p;--   neg = 0;--   hi = TO_W_(val >> 32);-   lo = TO_W_(val);--   if ( hi == 0 || (hi == 0xFFFFFFFF && lo != 0) )  {-       // minimum is one word-       words_needed = 1;-   } else {-       words_needed = 2;-   }--   ALLOC_PRIM (SIZEOF_StgArrWords + WDS(words_needed));--   p = Hp - SIZEOF_StgArrWords - WDS(words_needed) + WDS(1);-   SET_HDR(p, stg_ARR_WORDS_info, CCCS);-   StgArrWords_bytes(p) = WDS(words_needed);--   if ( %lt(hi,0) ) {-     neg = 1;-     lo = -lo;-     if(lo == 0) {-       hi = -hi;-     } else {-       hi = -hi - 1;-     }-   }--   if ( words_needed == 2 )  {-      s = 2;-      Hp(-1) = lo;-      Hp(0) = hi;-   } else {-       if ( lo != 0 ) {-           s = 1;-           Hp(0) = lo;-       } else /* val==0 */  {-           s = 0;-       }-   }-   if ( neg != 0 ) {-        s = -s;-   }--   /* returns (# size  :: Int#,-                 data  :: ByteArray# #)-   */-   return (s,p);-}-integer_cmm_word64ToIntegerzh (L_ val)-{-   W_ hi, lo, s, words_needed, p;--   hi = TO_W_(val >> 32);-   lo = TO_W_(val);--   if ( hi != 0 ) {-      words_needed = 2;-   } else {-      words_needed = 1;-   }--   ALLOC_PRIM (SIZEOF_StgArrWords + WDS(words_needed));--   p = Hp - SIZEOF_StgArrWords - WDS(words_needed) + WDS(1);-   SET_HDR(p, stg_ARR_WORDS_info, CCCS);-   StgArrWords_bytes(p) = WDS(words_needed);--   if ( hi != 0 ) {-     s = 2;-     Hp(-1) = lo;-     Hp(0)  = hi;-   } else {-      if ( lo != 0 ) {-        s = 1;-        Hp(0) = lo;-     } else /* val==0 */  {-      s = 0;-     }-  }--   /* returns (# size  :: Int#,-                 data  :: ByteArray# #)-   */-   return (s,p);-}--#endif /* WORD_SIZE_IN_BITS < 64 */--#define GMP_TAKE2_RET1(name,mp_fun)                             \-name (W_ ws1, P_ d1, W_ ws2, P_ d2)                             \-{                                                               \-  W_ mp_tmp1;                                                   \-  W_ mp_tmp2;                                                   \-  W_ mp_result1;                                                \-                                                                \-again:                                                          \-  STK_CHK_GEN_N (2*SIZEOF_MP_INT + SIZEOF_MP_INT_1LIMB);        \-  MAYBE_GC(again);                                              \-                                                                \-  mp_tmp1    = Sp - 1*SIZEOF_MP_INT;                            \-  mp_tmp2    = Sp - 2*SIZEOF_MP_INT;                            \-  mp_result1 = Sp - 2*SIZEOF_MP_INT - SIZEOF_MP_INT_1LIMB;      \-                                                                \-  MP_INT_SET_FROM_BA(mp_tmp1,ws1,d1);                           \-  MP_INT_SET_FROM_BA(mp_tmp2,ws2,d2);                           \-                                                                \-  MP_INT_1LIMB_INIT0(mp_result1);                               \-                                                                \-  /* Perform the operation */                                   \-  ccall mp_fun(mp_result1 "ptr",mp_tmp1  "ptr",mp_tmp2  "ptr"); \-                                                                \-  MP_INT_1LIMB_RETURN(mp_result1);                              \-}--#define GMP_TAKE3_RET1(name,mp_fun)                             \-name (W_ ws1, P_ d1, W_ ws2, P_ d2, W_ ws3, P_ d3)              \-{                                                               \-  W_ mp_tmp1;                                                   \-  W_ mp_tmp2;                                                   \-  W_ mp_tmp3;                                                   \-  W_ mp_result1;                                                \-                                                                \-again:                                                          \-  STK_CHK_GEN_N (3*SIZEOF_MP_INT + SIZEOF_MP_INT_1LIMB);        \-  MAYBE_GC(again);                                              \-                                                                \-  mp_tmp1    = Sp - 1*SIZEOF_MP_INT;                            \-  mp_tmp2    = Sp - 2*SIZEOF_MP_INT;                            \-  mp_tmp3    = Sp - 3*SIZEOF_MP_INT;                            \-  mp_result1 = Sp - 3*SIZEOF_MP_INT - SIZEOF_MP_INT_1LIMB;      \-                                                                \-  MP_INT_SET_FROM_BA(mp_tmp1,ws1,d1);                           \-  MP_INT_SET_FROM_BA(mp_tmp2,ws2,d2);                           \-  MP_INT_SET_FROM_BA(mp_tmp3,ws3,d3);                           \-                                                                \-  MP_INT_1LIMB_INIT0(mp_result1);                               \-                                                                \-  /* Perform the operation */                                   \-  ccall mp_fun(mp_result1 "ptr",                                \-               mp_tmp1 "ptr", mp_tmp2 "ptr", mp_tmp3 "ptr");    \-                                                                \-  MP_INT_1LIMB_RETURN(mp_result1);                              \-}--#define GMP_TAKE1_UL1_RET1(name,mp_fun)                         \-name (W_ ws1, P_ d1, W_ wul)                                    \-{                                                               \-  W_ mp_tmp;                                                    \-  W_ mp_result;                                                 \-                                                                \-  /* call doYouWantToGC() */                                    \-again:                                                          \-  STK_CHK_GEN_N (SIZEOF_MP_INT + SIZEOF_MP_INT_1LIMB);          \-  MAYBE_GC(again);                                              \-                                                                \-  mp_tmp     = Sp - SIZEOF_MP_INT;                              \-  mp_result  = Sp - SIZEOF_MP_INT - SIZEOF_MP_INT_1LIMB;        \-                                                                \-  MP_INT_SET_FROM_BA(mp_tmp,ws1,d1);                            \-                                                                \-  MP_INT_1LIMB_INIT0(mp_result);                                \-                                                                \-  /* Perform the operation */                                   \-  ccall mp_fun(mp_result "ptr", mp_tmp "ptr", W_TO_LONG(wul));  \-                                                                \-  MP_INT_1LIMB_RETURN(mp_result);                               \-}--#define GMP_TAKE1_I1_RETI1(name,mp_fun)                         \-name (W_ ws1, P_ d1, W_ wi)                                     \-{                                                               \-  CInt res;                                                     \-  W_ mp_tmp;                                                    \-                                                                \-again:                                                          \-  STK_CHK_GEN_N (SIZEOF_MP_INT);                                \-  MAYBE_GC(again);                                              \-                                                                \-  mp_tmp     = Sp - 1 * SIZEOF_MP_INT;                          \-  MP_INT_SET_FROM_BA(mp_tmp,ws1,d1);                            \-                                                                \-  /* Perform the operation */                                   \-  (res) = ccall mp_fun(mp_tmp "ptr", W_TO_INT(wi));             \-                                                                \-  return (TO_W_(res));                                          \-}--#define GMP_TAKE1_UL1_RETI1(name,mp_fun)                        \-name (W_ ws1, P_ d1, W_ wul)                                    \-{                                                               \-  CInt res;                                                     \-  W_ mp_tmp;                                                    \-                                                                \-again:                                                          \-  STK_CHK_GEN_N (SIZEOF_MP_INT);                                \-  MAYBE_GC(again);                                              \-                                                                \-  mp_tmp     = Sp - 1 * SIZEOF_MP_INT;                          \-  MP_INT_SET_FROM_BA(mp_tmp,ws1,d1);                            \-                                                                \-  /* Perform the operation */                                   \-  (res) = ccall mp_fun(mp_tmp "ptr", W_TO_LONG(wul));           \-                                                                \-  return (TO_W_(res));                                          \-}--#define GMP_TAKE1_RET1(name,mp_fun)                             \-name (W_ ws1, P_ d1)                                            \-{                                                               \-  W_ mp_tmp1;                                                   \-  W_ mp_result1;                                                \-                                                                \-again:                                                          \-  STK_CHK_GEN_N (SIZEOF_MP_INT + SIZEOF_MP_INT_1LIMB);          \-  MAYBE_GC(again);                                              \-                                                                \-  mp_tmp1    = Sp - SIZEOF_MP_INT;                              \-  mp_result1 = Sp - SIZEOF_MP_INT - SIZEOF_MP_INT_1LIMB;        \-                                                                \-  MP_INT_SET_FROM_BA(mp_tmp1,ws1,d1);                           \-                                                                \-  MP_INT_1LIMB_INIT0(mp_result1);                               \-                                                                \-  /* Perform the operation */                                   \-  ccall mp_fun(mp_result1 "ptr",mp_tmp1 "ptr");                 \-                                                                \-  MP_INT_1LIMB_RETURN(mp_result1);                              \-}--#define GMP_TAKE2_RET2(name,mp_fun)                                     \-name (W_ ws1, P_ d1, W_ ws2, P_ d2)                                     \-{                                                                       \-  W_ mp_tmp1;                                                           \-  W_ mp_tmp2;                                                           \-  W_ mp_result1;                                                        \-  W_ mp_result2;                                                        \-                                                                        \-again:                                                                  \-  STK_CHK_GEN_N (2*SIZEOF_MP_INT + 2*SIZEOF_MP_INT_1LIMB);              \-  MAYBE_GC(again);                                                      \-                                                                        \-  mp_tmp1    = Sp - 1*SIZEOF_MP_INT;                                    \-  mp_tmp2    = Sp - 2*SIZEOF_MP_INT;                                    \-  mp_result1 = Sp - 2*SIZEOF_MP_INT - 1*SIZEOF_MP_INT_1LIMB;            \-  mp_result2 = Sp - 2*SIZEOF_MP_INT - 2*SIZEOF_MP_INT_1LIMB;            \-                                                                        \-  MP_INT_SET_FROM_BA(mp_tmp1,ws1,d1);                                   \-  MP_INT_SET_FROM_BA(mp_tmp2,ws2,d2);                                   \-                                                                        \-  MP_INT_1LIMB_INIT0(mp_result1);                                       \-  MP_INT_1LIMB_INIT0(mp_result2);                                       \-                                                                        \-  /* Perform the operation */                                           \-  ccall mp_fun(mp_result1 "ptr", mp_result2 "ptr",                      \-               mp_tmp1 "ptr", mp_tmp2 "ptr");                           \-                                                                        \-  MP_INT_1LIMB_RETURN2(mp_result1, mp_result2);                         \-}--#define GMP_TAKE1_UL1_RET2(name,mp_fun)                                 \-name (W_ ws1, P_ d1, W_ wul2)                                           \-{                                                                       \-  W_ mp_tmp1;                                                           \-  W_ mp_result1;                                                        \-  W_ mp_result2;                                                        \-                                                                        \-again:                                                                  \-  STK_CHK_GEN_N (SIZEOF_MP_INT + 2*SIZEOF_MP_INT_1LIMB);                \-  MAYBE_GC(again);                                                      \-                                                                        \-  mp_tmp1    = Sp - SIZEOF_MP_INT;                                      \-  mp_result1 = Sp - SIZEOF_MP_INT - 1*SIZEOF_MP_INT_1LIMB;              \-  mp_result2 = Sp - SIZEOF_MP_INT - 2*SIZEOF_MP_INT_1LIMB;              \-                                                                        \-  MP_INT_SET_FROM_BA(mp_tmp1,ws1,d1);                                   \-                                                                        \-  MP_INT_1LIMB_INIT0(mp_result1);                                       \-  MP_INT_1LIMB_INIT0(mp_result2);                                       \-                                                                        \-  /* Perform the operation */                                           \-  ccall mp_fun(mp_result1 "ptr", mp_result2 "ptr",                      \-               mp_tmp1 "ptr", W_TO_LONG(wul2));                         \-                                                                        \-  MP_INT_1LIMB_RETURN2(mp_result1, mp_result2);                         \-}--GMP_TAKE2_RET1(integer_cmm_plusIntegerzh,           __gmpz_add)-GMP_TAKE2_RET1(integer_cmm_minusIntegerzh,          __gmpz_sub)-GMP_TAKE2_RET1(integer_cmm_timesIntegerzh,          __gmpz_mul)-GMP_TAKE1_UL1_RET1(integer_cmm_timesIntegerIntzh,   __gmpz_mul_si)-GMP_TAKE2_RET1(integer_cmm_gcdIntegerzh,            __gmpz_gcd)-#define CMM_GMPZ_GCDEXT(g,s,a,b) __gmpz_gcdext(g,s,NULL,a,b)-GMP_TAKE2_RET2(integer_cmm_gcdExtIntegerzh,         CMM_GMPZ_GCDEXT)-GMP_TAKE2_RET1(integer_cmm_quotIntegerzh,           __gmpz_tdiv_q)-GMP_TAKE1_UL1_RET1(integer_cmm_quotIntegerWordzh,   __gmpz_tdiv_q_ui)-GMP_TAKE2_RET1(integer_cmm_remIntegerzh,            __gmpz_tdiv_r)-GMP_TAKE1_UL1_RET1(integer_cmm_remIntegerWordzh,    __gmpz_tdiv_r_ui)-GMP_TAKE2_RET1(integer_cmm_divIntegerzh,            __gmpz_fdiv_q)-GMP_TAKE1_UL1_RET1(integer_cmm_divIntegerWordzh,    __gmpz_fdiv_q_ui)-GMP_TAKE2_RET1(integer_cmm_modIntegerzh,            __gmpz_fdiv_r)-GMP_TAKE1_UL1_RET1(integer_cmm_modIntegerWordzh,    __gmpz_fdiv_r_ui)-GMP_TAKE2_RET1(integer_cmm_divExactIntegerzh,       __gmpz_divexact)-GMP_TAKE1_UL1_RET1(integer_cmm_divExactIntegerWordzh, __gmpz_divexact_ui)-GMP_TAKE2_RET1(integer_cmm_andIntegerzh,            __gmpz_and)-GMP_TAKE2_RET1(integer_cmm_orIntegerzh,             __gmpz_ior)-GMP_TAKE2_RET1(integer_cmm_xorIntegerzh,            __gmpz_xor)-GMP_TAKE1_UL1_RETI1(integer_cmm_testBitIntegerzh,   __gmpz_tstbit)-GMP_TAKE1_UL1_RET1(integer_cmm_mul2ExpIntegerzh,    __gmpz_mul_2exp)-GMP_TAKE1_UL1_RET1(integer_cmm_fdivQ2ExpIntegerzh,  __gmpz_fdiv_q_2exp)-GMP_TAKE1_RET1(integer_cmm_complementIntegerzh,     __gmpz_com)--GMP_TAKE2_RET2(integer_cmm_quotRemIntegerzh,        __gmpz_tdiv_qr)-GMP_TAKE1_UL1_RET2(integer_cmm_quotRemIntegerWordzh,__gmpz_tdiv_qr_ui)-GMP_TAKE2_RET2(integer_cmm_divModIntegerzh,         __gmpz_fdiv_qr)-GMP_TAKE1_UL1_RET2(integer_cmm_divModIntegerWordzh, __gmpz_fdiv_qr_ui)--GMP_TAKE3_RET1(integer_cmm_powModIntegerzh,         __gmpz_powm)-#if HAVE_SECURE_POWM == 1-GMP_TAKE3_RET1(integer_cmm_powModSecIntegerzh,      __gmpz_powm_sec)-#else-GMP_TAKE3_RET1(integer_cmm_powModSecIntegerzh,      __gmpz_powm)-#endif--GMP_TAKE2_RET1(integer_cmm_recipModIntegerzh,       __gmpz_invert)-GMP_TAKE1_UL1_RET1(integer_cmm_powIntegerzh,        __gmpz_pow_ui)--GMP_TAKE1_RET1(integer_cmm_nextPrimeIntegerzh,      __gmpz_nextprime)-GMP_TAKE1_I1_RETI1(integer_cmm_testPrimeIntegerzh,  __gmpz_probab_prime_p)--GMP_TAKE1_I1_RETI1(integer_cmm_sizeInBasezh,        __gmpz_sizeinbase)--integer_cmm_gcdIntzh (W_ int1, W_ int2)-{-    W_ r;-    W_ mp_tmp_w;--    STK_CHK_GEN_N (1 * SIZEOF_W);--    mp_tmp_w = Sp - 1 * SIZEOF_W;--    W_[mp_tmp_w] = int1;-    (r) = ccall __gmpn_gcd_1(mp_tmp_w "ptr", 1, int2);--    return (r);-}---integer_cmm_gcdIntegerIntzh (W_ s1, P_ d1, W_ int)-{-    W_ r;-    (r) = ccall __gmpn_gcd_1 (BYTE_ARR_CTS(d1) "ptr", s1, int);-    return (r);-}---integer_cmm_cmpIntegerIntzh (W_ usize, P_ d1, W_ v_digit)-{-    W_ vsize, u_digit;--    vsize = 0;--    // paraphrased from __gmpz_cmp_si() in the GMP sources-    if (%gt(v_digit,0)) {-        vsize = 1;-    } else {-        if (%lt(v_digit,0)) {-            vsize = -1;-            v_digit = -v_digit;-        }-    }--    if (usize != vsize) {-        return (usize - vsize);-    }--    if (usize == 0) {-        return (0);-    }--    u_digit = W_[BYTE_ARR_CTS(d1)];--    if (u_digit == v_digit) {-        return (0);-    }--    if (%gtu(u_digit,v_digit)) { // NB. unsigned: these are mp_limb_t's-        return (usize);-    } else {-        return (-usize);-    }-}--integer_cmm_cmpIntegerzh (W_ usize, P_ d1, W_ vsize, P_ d2)-{-    W_ size, up, vp;-    CInt cmp;--    // paraphrased from __gmpz_cmp() in the GMP sources--    if (usize != vsize) {-        return (usize - vsize);-    }--    if (usize == 0) {-        return (0);-    }--    if (%lt(usize,0)) { // NB. not <, which is unsigned-        size = -usize;-    } else {-        size = usize;-    }--    up = BYTE_ARR_CTS(d1);-    vp = BYTE_ARR_CTS(d2);--    (cmp) = ccall __gmpn_cmp(up "ptr", vp "ptr", size);--    if (cmp == 0 :: CInt) {-        return (0);-    }--    if (%lt(cmp,0 :: CInt) == %lt(usize,0)) {-        return (1);-    } else {-        return (-1);-    }-}--#define DOUBLE_MANTISSA_SIZE SIZEOF_DOUBLE-#define ARR_SIZE (SIZEOF_StgArrWords + DOUBLE_MANTISSA_SIZE)--integer_cmm_decodeDoublezh (D_ arg)-{-    W_ mp_tmp1;-    W_ mp_tmp_w;--#if SIZEOF_DOUBLE != SIZEOF_W-    W_ p;--    STK_CHK_GEN_N (SIZEOF_MP_INT + SIZEOF_W);-    ALLOC_PRIM (ARR_SIZE);--    mp_tmp1  = Sp - SIZEOF_MP_INT;-    mp_tmp_w = Sp - SIZEOF_MP_INT - SIZEOF_W;--    /* Be prepared to tell Lennart-coded integer_cbits_decodeDouble-       where mantissa.d can be put (it does not care about the rest) */-    p = Hp - ARR_SIZE + WDS(1);-    SET_HDR(p, stg_ARR_WORDS_info, CCCS);-    StgArrWords_bytes(p) = DOUBLE_MANTISSA_SIZE;-    MP_INT__mp_d(mp_tmp1) = BYTE_ARR_CTS(p);--#else-    /* When SIZEOF_DOUBLE == SIZEOF_W == 8, the result will fit into a-       single 8-byte limb, and so we avoid allocating on the Heap and-       use only the Stack instead */--    STK_CHK_GEN_N (SIZEOF_MP_INT_1LIMB + SIZEOF_W);--    mp_tmp1  = Sp - SIZEOF_MP_INT_1LIMB;-    mp_tmp_w = Sp - SIZEOF_MP_INT_1LIMB - SIZEOF_W;--    MP_INT_1LIMB_INIT0(mp_tmp1);-#endif--    /* Perform the operation */-    ccall integer_cbits_decodeDouble(mp_tmp1 "ptr", mp_tmp_w "ptr", arg);--    /* returns: (Int# (expn), MPZ#) */-    MP_INT_1LIMB_AS_TUP3(r1s, r1d, r1w, mp_tmp1);--    return (W_[mp_tmp_w], TO_W_(r1s), r1d, r1w);-}--/* :: Int# -> ByteArray# -> Int# -> (# Int#, ByteArray#, Word# #) */-#define GMPX_TAKE1_UL1_RET1(name,pos_arg_fun,neg_arg_fun)               \-name(W_ ws1, P_ d1, W_ wl)                                              \-{                                                                       \-  W_ mp_tmp;                                                            \-  W_ mp_result;                                                         \-                                                                        \-again:                                                                  \-  STK_CHK_GEN_N (SIZEOF_MP_INT + SIZEOF_MP_INT_1LIMB);                  \-  MAYBE_GC(again);                                                      \-                                                                        \-  mp_tmp     = Sp - SIZEOF_MP_INT;                                      \-  mp_result  = Sp - SIZEOF_MP_INT - SIZEOF_MP_INT_1LIMB;                \-                                                                        \-  MP_INT_SET_FROM_BA(mp_tmp,ws1,d1);                                    \-                                                                        \-  MP_INT_1LIMB_INIT0(mp_result);                                        \-                                                                        \-  if(%lt(wl,0)) {                                                       \-      ccall neg_arg_fun(mp_result "ptr", mp_tmp "ptr", W_TO_LONG(-wl)); \-  } else {                                                              \-      ccall pos_arg_fun(mp_result "ptr", mp_tmp "ptr", W_TO_LONG(wl));  \-  }                                                                     \-                                                                        \-  MP_INT_1LIMB_RETURN(mp_result);                                       \-}--/* NB: We need both primitives as we can't express 'minusIntegerInt#'-   in terms of 'plusIntegerInt#' for @minBound :: Int@ */-GMPX_TAKE1_UL1_RET1(integer_cmm_plusIntegerIntzh,__gmpz_add_ui,__gmpz_sub_ui)-GMPX_TAKE1_UL1_RET1(integer_cmm_minusIntegerIntzh,__gmpz_sub_ui,__gmpz_add_ui)
− cbits/longlong.c
@@ -1,66 +0,0 @@-/* ------------------------------------------------------------------------------ * $Id: longlong.c,v 1.4 2002/12/13 14:23:42 simonmar Exp $- *- * (c) The GHC Team, 1998-1999- *- * Primitive operations over (64-bit) long longs- * (only used on 32-bit platforms.)- *- * ---------------------------------------------------------------------------*/---/*-Primitive Integer conversions to/from HsInt64 and HsWord64s.-N.B. These are not primops!--Instead of going the normal (boring) route of making the list-of primitive operations even longer to cope with operations-over 64-bit entities, we implement them instead 'out-of-line'.--The primitive ops get their own routine (in C) that implements-the operation, requiring the caller to _ccall_ out. This has-performance implications of course, but we currently don't-expect intensive use of either Int64 or Word64 types.-*/--#include "Rts.h"--#if WORD_SIZE_IN_BITS < 64--HsWord64 hs_integerToWord64 (HsInt sa, StgByteArray /* Really: mp_limb_t* */ da)-{-  mp_limb_t* d;-  HsInt s;-  HsWord64 res;-  d = (mp_limb_t *)da;-  s = sa;-  switch (s) {-    case  0: res = 0;     break;-    case  1: res = d[0];  break;-    case -1: res = -(HsWord64)d[0]; break;-    default:-      res = (HsWord64)d[0] + ((HsWord64)d[1] << (BITS_IN (mp_limb_t)));-      if (s < 0) res = -res;-  }-  return res;-}--HsInt64 hs_integerToInt64 (HsInt sa, StgByteArray /* Really: mp_limb_t* */ da)-{-  mp_limb_t* d;-  HsInt s;-  HsInt64 res;-  d = (mp_limb_t *)da;-  s = (sa);-  switch (s) {-    case  0: res = 0;     break;-    case  1: res = d[0];  break;-    case -1: res = -(HsInt64)d[0]; break;-    default:-      res = (HsInt64)d[0] + ((HsWord64)d[1] << (BITS_IN (mp_limb_t)));-      if (s < 0) res = -res;-  }-  return res;-}--#endif /* WORD_SIZE_IN_BITS < 64 */
− changelog.md
@@ -1,44 +0,0 @@-# Changelog for [`integer-gmp` package](http://hackage.haskell.org/package/integer-gmp)--## 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,1558 +0,0 @@-#! /bin/sh-# Attempt to guess a canonical system name.-#   Copyright 1992-2013 Free Software Foundation, Inc.--timestamp='2013-06-10'--# 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-2013 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'`-	;;-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 ;;-    i*: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; }-	;;-    or1k:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}-	exit ;;-    or32: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 [ "$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-	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--eval $set_cc_for_build-cat >$dummy.c <<EOF-#ifdef _SEQUENT_-# include <sys/types.h>-# include <sys/utsname.h>-#endif-main ()-{-#if defined (sony)-#if defined (MIPSEB)-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,-     I don't know....  */-  printf ("mips-sony-bsd\n"); exit (0);-#else-#include <sys/param.h>-  printf ("m68k-sony-newsos%s\n",-#ifdef NEWSOS4-	"4"-#else-	""-#endif-	); exit (0);-#endif-#endif--#if defined (__arm) && defined (__acorn) && defined (__unix)-  printf ("arm-acorn-riscix\n"); exit (0);-#endif--#if defined (hp300) && !defined (hpux)-  printf ("m68k-hp-bsd\n"); exit (0);-#endif--#if defined (NeXT)-#if !defined (__ARCHITECTURE__)-#define __ARCHITECTURE__ "m68k"-#endif-  int version;-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;-  if (version < 4)-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);-  else-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);-  exit (0);-#endif--#if defined (MULTIMAX) || defined (n16)-#if defined (UMAXV)-  printf ("ns32k-encore-sysv\n"); exit (0);-#else-#if defined (CMU)-  printf ("ns32k-encore-mach\n"); exit (0);-#else-  printf ("ns32k-encore-bsd\n"); exit (0);-#endif-#endif-#endif--#if defined (__386BSD__)-  printf ("i386-pc-bsd\n"); exit (0);-#endif--#if defined (sequent)-#if defined (i386)-  printf ("i386-sequent-dynix\n"); exit (0);-#endif-#if defined (ns32000)-  printf ("ns32k-sequent-dynix\n"); exit (0);-#endif-#endif--#if defined (_SEQUENT_)-    struct utsname un;--    uname(&un);--    if (strncmp(un.version, "V2", 2) == 0) {-	printf ("i386-sequent-ptx2\n"); exit (0);-    }-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */-	printf ("i386-sequent-ptx1\n"); exit (0);-    }-    printf ("i386-sequent-ptx\n"); exit (0);--#endif--#if defined (vax)-# if !defined (ultrix)-#  include <sys/param.h>-#  if defined (BSD)-#   if BSD == 43-      printf ("vax-dec-bsd4.3\n"); exit (0);-#   else-#    if BSD == 199006-      printf ("vax-dec-bsd4.3reno\n"); exit (0);-#    else-      printf ("vax-dec-bsd\n"); exit (0);-#    endif-#   endif-#  else-    printf ("vax-dec-bsd\n"); exit (0);-#  endif-# else-    printf ("vax-dec-ultrix\n"); exit (0);-# endif-#endif--#if defined (alliant) && defined (i860)-  printf ("i860-alliant-bsd\n"); exit (0);-#endif--  exit (1);-}-EOF--$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&-	{ echo "$SYSTEM_NAME"; exit; }--# Apollos put the system type in the environment.--test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }--# Convex versions that predate uname can use getsysinfo(1)--if [ -x /usr/convex/getsysinfo ]-then-    case `getsysinfo -f cpu_type` in-    c1*)-	echo c1-convex-bsd-	exit ;;-    c2*)-	if getsysinfo -f scalar_acc-	then echo c32-convex-bsd-	else echo c2-convex-bsd-	fi-	exit ;;-    c34*)-	echo c34-convex-bsd-	exit ;;-    c38*)-	echo c38-convex-bsd-	exit ;;-    c4*)-	echo c4-convex-bsd-	exit ;;-    esac-fi--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,1791 +0,0 @@-#! /bin/sh-# Configuration validation subroutine script.-#   Copyright 1992-2013 Free Software Foundation, Inc.--timestamp='2013-08-10'--# 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-2013 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 \-	| 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 \-	| mipsisa64 | mipsisa64el \-	| mipsisa64r2 | mipsisa64r2el \-	| mipsisa64sb1 | mipsisa64sb1el \-	| mipsisa64sr71k | mipsisa64sr71kel \-	| mipsr5900 | mipsr5900el \-	| mipstx39 | mipstx39el \-	| mn10200 | mn10300 \-	| moxie \-	| mt \-	| msp430 \-	| nds32 | nds32le | nds32be \-	| nios | nios2 | nios2eb | nios2el \-	| ns16k | ns32k \-	| open8 \-	| or1k | 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 | 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-* \-	| 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-* \-	| mipsisa64-* | mipsisa64el-* \-	| mipsisa64r2-* | mipsisa64r2el-* \-	| mipsisa64sb1-* | mipsisa64sb1el-* \-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \-	| mipsr5900-* | mipsr5900el-* \-	| mipstx39-* | mipstx39el-* \-	| mmix-* \-	| mt-* \-	| msp430-* \-	| nds32-* | nds32le-* | nds32be-* \-	| nios-* | nios2-* | nios2eb-* | nios2el-* \-	| none-* | np1-* | ns16k-* | ns32k-* \-	| open8-* \-	| 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*)-	# 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-		;;-	or1k-*)-		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,4973 +0,0 @@-#! /bin/sh-# Guess values for system-dependent variables and create Makefiles.-# Generated by GNU Autoconf 2.69 for Haskell integer (GMP) 0.1.-#-# 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='0.1'-PACKAGE_STRING='Haskell integer (GMP) 0.1'-PACKAGE_BUGREPORT='libraries@haskell.org'-PACKAGE_URL=''--ac_unique_file="cbits/gmp-wrappers.cmm"-# 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-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-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_cc-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'-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 ;;--  -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-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) 0.1 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]-  --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) 0.1:";;-   esac-  cat <<\_ACEOF--Optional Packages:-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)-C compiler-  --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 0.1-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_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_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-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 0.1, 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}----# Check whether --with-cc was given.-if test "${with_cc+set}" = set; then :-  withval=$with_cc; CC=$withval-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-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------# 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-if test "$HaveFrameworkGMP" = "YES" || test "$HaveLibGmp" = "YES"-then-    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" "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---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 0.1, 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 0.1-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,86 +0,0 @@-AC_INIT([Haskell integer (GMP)], [0.1], [libraries@haskell.org], [integer])--# Safety check: Ensure that we are in the correct source directory.-AC_CONFIG_SRCDIR([cbits/gmp-wrappers.cmm])--AC_CANONICAL_TARGET--AC_ARG_WITH([cc],-            [C compiler],-            [CC=$withval])-AC_PROG_CC()---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-if test "$HaveFrameworkGMP" = "YES" || test "$HaveLibGmp" = "YES"-then-    AC_CHECK_HEADER([gmp.h], , [AC_MSG_ERROR([Cannot find gmp.h])])-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_CONFIG_FILES([integer-gmp.buildinfo gmp/config.mk include/HsIntegerGmp.h])--dnl---------------------------------------------------------------------dnl * Generate the header cbits/GmpDerivedConstants.h-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,6 +0,0 @@-#ifndef _HS_INTEGER_GMP_H_-#define _HS_INTEGER_GMP_H_--#define HAVE_SECURE_POWM @HaveSecurePowm@--#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
integer-gmp.cabal view
@@ -1,84 +1,41 @@-name:           integer-gmp-version:        0.5.1.0--- GHC 7.6.1 released with 0.5.0.0-license:        BSD3-license-file:   LICENSE-category:       Numerical-maintainer:     libraries@haskell.org-bug-reports:    http://ghc.haskell.org/trac/ghc/newticket?component=libraries%20%28other%29&keywords=integer-gmp-synopsis:       Integer library based on GMP+cabal-version:       2.0+name:                integer-gmp+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:          Simple++homepage:            https://www.haskell.org/ghc/+bug-reports:         https://gitlab.haskell.org/ghc/ghc/issues/new+ description:-    This package provides the low-level implementation of the standard-    'Integer' type based on the+    This package used to provide an implementation of the standard 'Integer'+    type based on the     <http://gmplib.org/ GNU Multiple Precision Arithmetic Library (GMP)>.     .-    This package provides access to the internal representation of-    'Integer' as well as primitive operations with no proper error-    handling, and should only be used directly with the utmost care.+    It is now deprecated in favor of the 'ghc-bignum' package.     .-    For more details about the design of @integer-gmp@, see-    <https://ghc.haskell.org/trac/ghc/wiki/Commentary/Libraries/Integer GHC Commentary: Libraries/Integer>.-build-type:     Configure-cabal-version:  >=1.10--extra-source-files:-    aclocal.m4-    cbits/alloc.c-    cbits/float.c-    cbits/gmp-wrappers.cmm-    cbits/longlong.c-    changelog.md-    config.guess-    config.sub-    configure-    configure.ac-    gmp/config.mk.in-    install-sh-    integer-gmp.buildinfo.in-    include/HsIntegerGmp.h.in--extra-tmp-files:-    autom4te.cache-    config.log-    config.status-    gmp/config.mk-    integer-gmp.buildinfo-    include/HsIntegerGmp.h+    Its purpose is to provide backward compatibility for codes directly+    depending on the `integer-gmp` package.  source-repository head     type:     git-    location: http://git.haskell.org/packages/integer-gmp.git--source-repository this-    type:     git-    location: http://git.haskell.org/packages/integer-gmp.git-    tag:      integer-gmp-0.5.1.0-release--Library-    default-language: Haskell2010-    other-extensions:-        BangPatterns-        CPP-        GHCForeignImportPrim-        MagicHash-        NoImplicitPrelude-        UnboxedTuples-        UnliftedFFITypes--    exposed-modules:-        GHC.Integer-        GHC.Integer.GMP.Internals-        GHC.Integer.GMP.Prim-        GHC.Integer.Logarithms-        GHC.Integer.Logarithms.Internals-    other-modules:-        GHC.Integer.Type--    c-sources: cbits/cbits.c-    include-dirs: include+    location: https://gitlab.haskell.org/ghc/ghc.git+    subdir:   libraries/integer-gmp -    build-depends: ghc-prim >= 0.3.1 && < 0.4+library+  default-language:    Haskell2010+  hs-source-dirs:      src/+  ghc-options:         -Wall+  build-depends:+      base >= 4.11 && < 5+    , ghc-prim+    , ghc-bignum -    -- We need to set the package name to integer-gmp-    -- (without a version number) as it's magic.-    ghc-options: -Wall -package-name integer-gmp+  exposed-modules:+    GHC.Integer.GMP.Internals
+ src/GHC/Integer/GMP/Internals.hs view
@@ -0,0 +1,454 @@+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE UnboxedTuples #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE BlockArguments #-}++#include "MachDeps.h"++-- |+-- Module      :  GHC.Integer.GMP.Internals+-- Copyright   :  (c) Herbert Valerio Riedel 2014+-- License     :  BSD3+--+-- Maintainer  :  ghc-devs@haskell.org+-- Stability   :  provisional+-- Portability :  non-portable (GHC Extensions)+--+module GHC.Integer.GMP.Internals+    ( -- * The 'Integer' type+      Integer (S#,Jn#,Jp#)+    , isValidInteger#++      -- ** Basic 'Integer' operations++    , module GHC.Integer++      -- ** Additional 'Integer' operations+    , gcdInteger+    , gcdExtInteger+    , lcmInteger+    , sqrInteger+    , powModInteger+    , recipModInteger++      -- ** Additional conversion operations to 'Integer'+    , wordToNegInteger+    , bigNatToInteger+    , bigNatToNegInteger++      -- * The 'BigNat' type+    , BigNat(..)++    , GmpLimb, GmpLimb#+    , GmpSize, GmpSize#++      -- **++    , isValidBigNat#+    , sizeofBigNat#+    , zeroBigNat+    , oneBigNat++      -- ** Conversions to/from 'BigNat'++    , byteArrayToBigNat#+    , wordToBigNat+    , wordToBigNat2+    , bigNatToInt+    , bigNatToWord+    , indexBigNat#++      -- ** 'BigNat' arithmetic operations+    , plusBigNat+    , plusBigNatWord+    , minusBigNat+    , minusBigNatWord+    , timesBigNat+    , timesBigNatWord+    , sqrBigNat++    , quotRemBigNat+    , quotRemBigNatWord+    , quotBigNatWord+    , quotBigNat+    , remBigNat+    , remBigNatWord++    , gcdBigNat+    , gcdBigNatWord++      -- ** 'BigNat' logic operations+    , shiftRBigNat+    , shiftLBigNat+    , testBitBigNat+    , clearBitBigNat+    , complementBitBigNat+    , setBitBigNat+    , andBigNat+    , xorBigNat+    , popCountBigNat+    , orBigNat+    , bitBigNat++      -- ** 'BigNat' comparison predicates+    , isZeroBigNat++    , compareBigNatWord+    , compareBigNat+    , eqBigNatWord+    , eqBigNatWord#+    , eqBigNat+    , eqBigNat#+    , gtBigNatWord#++      -- * Import/export functions+      -- ** Compute size of serialisation+    , sizeInBaseBigNat+    , sizeInBaseInteger+    , sizeInBaseWord#++      -- ** Export+    , exportBigNatToAddr+    , exportIntegerToAddr++    , exportBigNatToMutableByteArray+    , exportIntegerToMutableByteArray++      -- ** Import+    , importBigNatFromAddr+    , importIntegerFromAddr++    , importBigNatFromByteArray+    , importIntegerFromByteArray+    ) where++import GHC.Integer+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++{-# COMPLETE S#, Jp#, Jn# #-}++{-# DEPRECATED S# "Use IS constructor instead" #-}+pattern S# :: Int# -> Integer+pattern S# i = IS i++fromBN# :: BigNat -> ByteArray#+fromBN# (BN# x) = x++fromIP :: Integer -> (# () | BigNat #)+fromIP (IP x) = (# | BN# x #)+fromIP _      = (# () | #)++fromIN :: Integer -> (# () | BigNat #)+fromIN (IN x) = (# | BN# x #)+fromIN _      = (# () | #)++{-# DEPRECATED Jp# "Use IP constructor instead" #-}+pattern Jp# :: BigNat -> Integer+pattern Jp# i <- (fromIP -> (# | i #))+   where+      Jp# i = IP (fromBN# i)++{-# DEPRECATED Jn# "Use IN constructor instead" #-}+pattern Jn# :: BigNat -> Integer+pattern Jn# i <- (fromIN -> (# | i #))+   where+      Jn# i = IN (fromBN# i)++{-# DEPRECATED isValidInteger# "Use integerCheck# instead" #-}+isValidInteger# :: Integer -> Int#+isValidInteger# = I.integerCheck#++{-# DEPRECATED gcdInteger "Use integerGcd instead" #-}+gcdInteger :: Integer -> Integer -> Integer+gcdInteger = I.integerGcd++{-# DEPRECATED gcdExtInteger "Use integerGcde instead" #-}+gcdExtInteger :: Integer -> Integer -> (# Integer, Integer #)+gcdExtInteger a b = case I.integerGcde# a b of+   (# g, s, _t #) -> (# g, s #)+++{-# DEPRECATED lcmInteger "Use integerLcm instead" #-}+lcmInteger :: Integer -> Integer -> Integer+lcmInteger = I.integerLcm++{-# DEPRECATED sqrInteger "Use integerSqr instead" #-}+sqrInteger :: Integer -> Integer+sqrInteger = I.integerSqr++{-# 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++{-# 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++{-# 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++{-# DEPRECATED bigNatToNegInteger "Use integerFromBigNatNeg# instead" #-}+bigNatToNegInteger :: BigNat -> Integer+bigNatToNegInteger (BN# i) = I.integerFromBigNatNeg# i++type GmpLimb = Word+type GmpLimb# = Word#+type GmpSize = Int+type GmpSize# = Int#++{-# DEPRECATED sizeofBigNat# "Use bigNatSize# instead" #-}+sizeofBigNat# :: BigNat -> GmpSize#+sizeofBigNat# (BN# i) = B.bigNatSize# i++{-# DEPRECATED isValidBigNat# "Use bigNatCheck# instead" #-}+isValidBigNat# :: BigNat -> Int#+isValidBigNat# (BN# i) = B.bigNatCheck# i++{-# DEPRECATED zeroBigNat "Use bigNatZero instead" #-}+zeroBigNat :: BigNat+zeroBigNat = B.bigNatZero++{-# DEPRECATED oneBigNat "Use bigNatOne instead" #-}+oneBigNat :: BigNat+oneBigNat = B.bigNatOne++{-# 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)