packages feed

secp256k1 0.5.1 → 0.5.2

raw patch · 4 files changed

+338/−1 lines, 4 files

Files

secp256k1.cabal view
@@ -1,5 +1,5 @@ name:                secp256k1-version:             0.5.1+version:             0.5.2 synopsis:            Bindings for secp256k1 library from Bitcoin Core description:         Please see README.md homepage:            http://github.com/haskoin/secp256k1-haskell#readme@@ -92,6 +92,9 @@     secp256k1/sage/group_prover.sage     secp256k1/sage/weierstrass_prover.sage     secp256k1/sage/secp256k1.sage+    secp256k1/build-aux/m4/ax_jni_include_dir.m4+    secp256k1/build-aux/m4/ax_prog_cc_for_build.m4+    secp256k1/build-aux/m4/bitcoin_secp.m4     README.md cabal-version:       >=1.10 
+ secp256k1/build-aux/m4/ax_jni_include_dir.m4 view
@@ -0,0 +1,140 @@+# ===========================================================================+#    http://www.gnu.org/software/autoconf-archive/ax_jni_include_dir.html+# ===========================================================================+#+# SYNOPSIS+#+#   AX_JNI_INCLUDE_DIR+#+# DESCRIPTION+#+#   AX_JNI_INCLUDE_DIR finds include directories needed for compiling+#   programs using the JNI interface.+#+#   JNI include directories are usually in the Java distribution. This is+#   deduced from the value of $JAVA_HOME, $JAVAC, or the path to "javac", in+#   that order. When this macro completes, a list of directories is left in+#   the variable JNI_INCLUDE_DIRS.+#+#   Example usage follows:+#+#     AX_JNI_INCLUDE_DIR+#+#     for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS+#     do+#             CPPFLAGS="$CPPFLAGS -I$JNI_INCLUDE_DIR"+#     done+#+#   If you want to force a specific compiler:+#+#   - at the configure.in level, set JAVAC=yourcompiler before calling+#   AX_JNI_INCLUDE_DIR+#+#   - at the configure level, setenv JAVAC+#+#   Note: This macro can work with the autoconf M4 macros for Java programs.+#   This particular macro is not part of the original set of macros.+#+# LICENSE+#+#   Copyright (c) 2008 Don Anderson <dda@sleepycat.com>+#+#   Copying and distribution of this file, with or without modification, are+#   permitted in any medium without royalty provided the copyright notice+#   and this notice are preserved. This file is offered as-is, without any+#   warranty.++#serial 10++AU_ALIAS([AC_JNI_INCLUDE_DIR], [AX_JNI_INCLUDE_DIR])+AC_DEFUN([AX_JNI_INCLUDE_DIR],[++JNI_INCLUDE_DIRS=""++if test "x$JAVA_HOME" != x; then+	_JTOPDIR="$JAVA_HOME"+else+	if test "x$JAVAC" = x; then+		JAVAC=javac+	fi+	AC_PATH_PROG([_ACJNI_JAVAC], [$JAVAC], [no])+	if test "x$_ACJNI_JAVAC" = xno; then+		AC_MSG_WARN([cannot find JDK; try setting \$JAVAC or \$JAVA_HOME])+	fi+	_ACJNI_FOLLOW_SYMLINKS("$_ACJNI_JAVAC")+	_JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'`+fi++case "$host_os" in+        darwin*)        _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`+                        _JINC="$_JTOPDIR/Headers";;+        *)              _JINC="$_JTOPDIR/include";;+esac+_AS_ECHO_LOG([_JTOPDIR=$_JTOPDIR])+_AS_ECHO_LOG([_JINC=$_JINC])++# On Mac OS X 10.6.4, jni.h is a symlink:+# /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/jni.h+# -> ../../CurrentJDK/Headers/jni.h.++AC_CACHE_CHECK(jni headers, ac_cv_jni_header_path,+[+if test -f "$_JINC/jni.h"; then+  ac_cv_jni_header_path="$_JINC"+  JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $ac_cv_jni_header_path"+else+  _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`+  if test -f "$_JTOPDIR/include/jni.h"; then+    ac_cv_jni_header_path="$_JTOPDIR/include"+    JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $ac_cv_jni_header_path"+  else+    ac_cv_jni_header_path=none+  fi+fi+])++++# get the likely subdirectories for system specific java includes+case "$host_os" in+bsdi*)          _JNI_INC_SUBDIRS="bsdos";;+darwin*)        _JNI_INC_SUBDIRS="darwin";;+freebsd*)       _JNI_INC_SUBDIRS="freebsd";;+linux*)         _JNI_INC_SUBDIRS="linux genunix";;+osf*)           _JNI_INC_SUBDIRS="alpha";;+solaris*)       _JNI_INC_SUBDIRS="solaris";;+mingw*)		_JNI_INC_SUBDIRS="win32";;+cygwin*)	_JNI_INC_SUBDIRS="win32";;+*)              _JNI_INC_SUBDIRS="genunix";;+esac++if test "x$ac_cv_jni_header_path" != "xnone"; then+  # add any subdirectories that are present+  for JINCSUBDIR in $_JNI_INC_SUBDIRS+  do+      if test -d "$_JTOPDIR/include/$JINCSUBDIR"; then+           JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include/$JINCSUBDIR"+      fi+  done+fi+])++# _ACJNI_FOLLOW_SYMLINKS <path>+# Follows symbolic links on <path>,+# finally setting variable _ACJNI_FOLLOWED+# ----------------------------------------+AC_DEFUN([_ACJNI_FOLLOW_SYMLINKS],[+# find the include directory relative to the javac executable+_cur="$1"+while ls -ld "$_cur" 2>/dev/null | grep " -> " >/dev/null; do+        AC_MSG_CHECKING([symlink for $_cur])+        _slink=`ls -ld "$_cur" | sed 's/.* -> //'`+        case "$_slink" in+        /*) _cur="$_slink";;+        # 'X' avoids triggering unwanted echo options.+        *) _cur=`echo "X$_cur" | sed -e 's/^X//' -e 's:[[^/]]*$::'`"$_slink";;+        esac+        AC_MSG_RESULT([$_cur])+done+_ACJNI_FOLLOWED="$_cur"+])# _ACJNI
+ secp256k1/build-aux/m4/ax_prog_cc_for_build.m4 view
@@ -0,0 +1,125 @@+# ===========================================================================+#   http://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html+# ===========================================================================+#+# SYNOPSIS+#+#   AX_PROG_CC_FOR_BUILD+#+# DESCRIPTION+#+#   This macro searches for a C compiler that generates native executables,+#   that is a C compiler that surely is not a cross-compiler. This can be+#   useful if you have to generate source code at compile-time like for+#   example GCC does.+#+#   The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything+#   needed to compile or link (CC_FOR_BUILD) and preprocess (CPP_FOR_BUILD).+#   The value of these variables can be overridden by the user by specifying+#   a compiler with an environment variable (like you do for standard CC).+#+#   It also sets BUILD_EXEEXT and BUILD_OBJEXT to the executable and object+#   file extensions for the build platform, and GCC_FOR_BUILD to `yes' if+#   the compiler we found is GCC. All these variables but GCC_FOR_BUILD are+#   substituted in the Makefile.+#+# LICENSE+#+#   Copyright (c) 2008 Paolo Bonzini <bonzini@gnu.org>+#+#   Copying and distribution of this file, with or without modification, are+#   permitted in any medium without royalty provided the copyright notice+#   and this notice are preserved. This file is offered as-is, without any+#   warranty.++#serial 8++AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])+AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl+AC_REQUIRE([AC_PROG_CC])dnl+AC_REQUIRE([AC_PROG_CPP])dnl+AC_REQUIRE([AC_EXEEXT])dnl+AC_REQUIRE([AC_CANONICAL_HOST])dnl++dnl Use the standard macros, but make them use other variable names+dnl+pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl+pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl+pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl+pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl+pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl+pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl+pushdef([ac_cv_objext], ac_cv_build_objext)dnl+pushdef([ac_exeext], ac_build_exeext)dnl+pushdef([ac_objext], ac_build_objext)dnl+pushdef([CC], CC_FOR_BUILD)dnl+pushdef([CPP], CPP_FOR_BUILD)dnl+pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl+pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl+pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl+pushdef([host], build)dnl+pushdef([host_alias], build_alias)dnl+pushdef([host_cpu], build_cpu)dnl+pushdef([host_vendor], build_vendor)dnl+pushdef([host_os], build_os)dnl+pushdef([ac_cv_host], ac_cv_build)dnl+pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl+pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl+pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl+pushdef([ac_cv_host_os], ac_cv_build_os)dnl+pushdef([ac_cpp], ac_build_cpp)dnl+pushdef([ac_compile], ac_build_compile)dnl+pushdef([ac_link], ac_build_link)dnl++save_cross_compiling=$cross_compiling+save_ac_tool_prefix=$ac_tool_prefix+cross_compiling=no+ac_tool_prefix=++AC_PROG_CC+AC_PROG_CPP+AC_EXEEXT++ac_tool_prefix=$save_ac_tool_prefix+cross_compiling=$save_cross_compiling++dnl Restore the old definitions+dnl+popdef([ac_link])dnl+popdef([ac_compile])dnl+popdef([ac_cpp])dnl+popdef([ac_cv_host_os])dnl+popdef([ac_cv_host_vendor])dnl+popdef([ac_cv_host_cpu])dnl+popdef([ac_cv_host_alias])dnl+popdef([ac_cv_host])dnl+popdef([host_os])dnl+popdef([host_vendor])dnl+popdef([host_cpu])dnl+popdef([host_alias])dnl+popdef([host])dnl+popdef([LDFLAGS])dnl+popdef([CPPFLAGS])dnl+popdef([CFLAGS])dnl+popdef([CPP])dnl+popdef([CC])dnl+popdef([ac_objext])dnl+popdef([ac_exeext])dnl+popdef([ac_cv_objext])dnl+popdef([ac_cv_exeext])dnl+popdef([ac_cv_prog_cc_g])dnl+popdef([ac_cv_prog_cc_cross])dnl+popdef([ac_cv_prog_cc_works])dnl+popdef([ac_cv_prog_gcc])dnl+popdef([ac_cv_prog_CPP])dnl++dnl Finally, set Makefile variables+dnl+BUILD_EXEEXT=$ac_build_exeext+BUILD_OBJEXT=$ac_build_objext+AC_SUBST(BUILD_EXEEXT)dnl+AC_SUBST(BUILD_OBJEXT)dnl+AC_SUBST([CFLAGS_FOR_BUILD])dnl+AC_SUBST([CPPFLAGS_FOR_BUILD])dnl+AC_SUBST([LDFLAGS_FOR_BUILD])dnl+])
+ secp256k1/build-aux/m4/bitcoin_secp.m4 view
@@ -0,0 +1,69 @@+dnl libsecp25k1 helper checks+AC_DEFUN([SECP_INT128_CHECK],[+has_int128=$ac_cv_type___int128+])++dnl escape "$0x" below using the m4 quadrigaph @S|@, and escape it again with a \ for the shell.+AC_DEFUN([SECP_64BIT_ASM_CHECK],[+AC_MSG_CHECKING(for x86_64 assembly availability)+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[+  #include <stdint.h>]],[[+  uint64_t a = 11, tmp;+  __asm__ __volatile__("movq \@S|@0x100000000,%1; mulq %%rsi" : "+a"(a) : "S"(tmp) : "cc", "%rdx");+  ]])],[has_64bit_asm=yes],[has_64bit_asm=no])+AC_MSG_RESULT([$has_64bit_asm])+])++dnl+AC_DEFUN([SECP_OPENSSL_CHECK],[+  has_libcrypto=no+  m4_ifdef([PKG_CHECK_MODULES],[+    PKG_CHECK_MODULES([CRYPTO], [libcrypto], [has_libcrypto=yes],[has_libcrypto=no])+    if test x"$has_libcrypto" = x"yes"; then+      TEMP_LIBS="$LIBS"+      LIBS="$LIBS $CRYPTO_LIBS"+      AC_CHECK_LIB(crypto, main,[AC_DEFINE(HAVE_LIBCRYPTO,1,[Define this symbol if libcrypto is installed])],[has_libcrypto=no])+      LIBS="$TEMP_LIBS"+    fi+  ])+  if test x$has_libcrypto = xno; then+    AC_CHECK_HEADER(openssl/crypto.h,[+      AC_CHECK_LIB(crypto, main,[+        has_libcrypto=yes+        CRYPTO_LIBS=-lcrypto+        AC_DEFINE(HAVE_LIBCRYPTO,1,[Define this symbol if libcrypto is installed])+      ])+    ])+    LIBS=+  fi+if test x"$has_libcrypto" = x"yes" && test x"$has_openssl_ec" = x; then+  AC_MSG_CHECKING(for EC functions in libcrypto)+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[+    #include <openssl/ec.h>+    #include <openssl/ecdsa.h>+    #include <openssl/obj_mac.h>]],[[+    EC_KEY *eckey = EC_KEY_new_by_curve_name(NID_secp256k1);+    ECDSA_sign(0, NULL, 0, NULL, NULL, eckey);+    ECDSA_verify(0, NULL, 0, NULL, 0, eckey);+    EC_KEY_free(eckey);+    ECDSA_SIG *sig_openssl;+    sig_openssl = ECDSA_SIG_new();+    (void)sig_openssl->r;+    ECDSA_SIG_free(sig_openssl);+  ]])],[has_openssl_ec=yes],[has_openssl_ec=no])+  AC_MSG_RESULT([$has_openssl_ec])+fi+])++dnl+AC_DEFUN([SECP_GMP_CHECK],[+if test x"$has_gmp" != x"yes"; then+  CPPFLAGS_TEMP="$CPPFLAGS"+  CPPFLAGS="$GMP_CPPFLAGS $CPPFLAGS"+  LIBS_TEMP="$LIBS"+  LIBS="$GMP_LIBS $LIBS"+  AC_CHECK_HEADER(gmp.h,[AC_CHECK_LIB(gmp, __gmpz_init,[has_gmp=yes; GMP_LIBS="$GMP_LIBS -lgmp"; AC_DEFINE(HAVE_LIBGMP,1,[Define this symbol if libgmp is installed])])])+  CPPFLAGS="$CPPFLAGS_TEMP"+  LIBS="$LIBS_TEMP"+fi+])